/[openfoncier]/trunk/obj/demande.class.php
ViewVC logotype

Diff of /trunk/obj/demande.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 688 by vpihour, Wed Nov 14 13:31:14 2012 UTC revision 838 by nhaye, Tue Nov 27 12:03:05 2012 UTC
# Line 6  require_once ("../gen/obj/demande.class. Line 6  require_once ("../gen/obj/demande.class.
6    
7  class demande extends demande_gen {  class demande extends demande_gen {
8    
9        var $valIdDemandeur = array("petitionnaire_principal" => "",
10                                    "delegataire" => "",
11                                    "petitionnaire" => array());
12        var $postedIdDemandeur = array("petitionnaire_principal" => "",
13                                    "delegataire" => "",
14                                    "petitionnaire" => array());
15    
16      function demande($id,&$db,$debug) {      function demande($id,&$db,$debug) {
17          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
18      }// fin constructeur      }// fin constructeur
19            
20       // =============================================       /*
21      // La date du jour par défaut dans le champs date_demande      * La date du jour par défaut dans le champs date_demande
22      // Put the date of the day by default into the field date_demande      * Put the date of the day by default into the field date_demande
23      // =============================================      */
24      function setVal(&$form, $maj, $validation, &$db) {      function setVal(&$form, $maj, $validation, &$db) {
25          if($maj == 0) {          if($maj == 0) {
26               $form->setVal("date_demande",date('d/m/Y'));               $form->setVal("date_demande",date('d/m/Y'));
27          }          }
28      }      }
29            
30      // =============================================      /**
31      // Ajout du fielset       * Méthode de verification du contenu
32      // Add fieldset       */
33      // =============================================      function verifier($val, &$db, $DEBUG) {
34            parent::verifier($val, $db, $DEBUG);
35            $this->getPostedValues();
36            if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
37               empty($this->postedIdDemandeur["petitionnaire_principal"])) {
38                $this->correct = false;
39                $this->addToMessage("La saisie d'un petitionnaire principal est obligatoire.");
40                $this->valIdDemandeur=$this->postedIdDemandeur;
41            }
42        }
43        /*
44        * Ajout du fielset
45        * Add fieldset
46        */
47      function setLayout(&$form, $maj){      function setLayout(&$form, $maj){
48          if ( $maj < 2 OR $maj == 3 ) {          if ( $maj < 2 OR $maj == 3 ) {
49                            
50              //Champs sur lequel s'ouvre le fieldset              //Champs sur lequel s'ouvre le fieldset
51              $form->setBloc('dossier_autorisation_type_detaille','D',"", "dossier_type_demande_date");              $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_8");
             $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type");  
             $form->setFieldset('dossier_autorisation_type_detaille','D',_('Type de dossier/demande'));  
   
             //Champs sur lequel se ferme le fieldset  
             $form->setFieldset('demande_type','F','');  
             $form->setBloc('demande_type','F');  
52                            
53              //Champs sur lequel s'ouvre le fieldset                  $form->setFieldset('dossier_autorisation_type_detaille','D'
54              $form->setBloc('date_demande','D',"","demande_date");                                     ,_('Type de dossier/demande'));
55              $form->setFieldset('date_demande','D',_('Date de la demande'));                  $form->setFieldset('demande_type','F','');
56                            
57              //Champs sur lequel se ferme le fieldset              $form->setBloc('demande_type','F');
             $form->setFieldset('date_demande','F','');  
             $form->setBloc('date_demande','F');  
             $form->setBloc('date_demande','F');  
58                            
59              //Champs sur lequel s'ouvre le fieldset              $form->setBloc('date_demande','D',"","col_4 demande_hidden_bloc");
60              $form->setBloc('terrain_references_cadastrales','D',"", "localisation");                  $form->setFieldset('date_demande','D',_('Date de la demande'));
61              $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));                  $form->setFieldset('date_demande','F','');
62                $form->setBloc('date_demande','F');
             //Champs sur lequel se ferme le fieldset  
             $form->setFieldset('terrain_superficie','F','');  
63                            
64                $form->setBloc('terrain_references_cadastrales','D',"",
65                               "localisation col_12 demande_hidden_bloc");
66                    $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
67                    $form->setFieldset('terrain_superficie','F','');
68              $form->setBloc('terrain_superficie','F');              $form->setBloc('terrain_superficie','F');
69                            
70              $form->setBloc('nombre_lots','D',"","lots");              $form->setBloc('nombre_lots','D',"","lots col_12 demande_hidden_bloc");
71                                $form->setFieldset('nombre_lots','D',_('Nombre de lots'));
72              $form->setFieldset('nombre_lots','D',_('Nombre de lots'));                  $form->setFieldset('nombre_lots','F','');
             $form->setFieldset('nombre_lots','F','');  
               
73              $form->setBloc('nombre_lots','F');              $form->setBloc('nombre_lots','F');
74          }          }
75      }      }
76    
77       // =============================================      /*
78      // Ajoute des actions sur les deux premiers select      * Ajoute des actions sur les deux premiers select
79      // Add actions on the two first select      * Add actions on the two first select
80      // =============================================      */
81      function setOnchange(&$form,$maj){      function setOnchange(&$form,$maj){
82          parent::setOnchange($form,$maj);          parent::setOnchange($form,$maj);
83          $form->setOnchange("dossier_autorisation_type_detaille","changeDemandeType();");          $form->setOnchange("dossier_autorisation_type_detaille","changeDemandeType();");
84          $form->setOnchange("demande_type","showFormsDemande();");          $form->setOnchange("demande_type","showFormsDemande();");
85      }      }
86            
87       // =============================================      /*
88      // Cache le champ terrain_references_cadastrales      * Cache le champ terrain_references_cadastrales
89      // Hide the fiels terrain_references_cadastrales      * Hide the fiels terrain_references_cadastrales
90      // =============================================      */
91      function setType(&$form,$maj) {      function setType(&$form,$maj) {
92          parent::setType($form,$maj);          parent::setType($form,$maj);
93                    
94          //$form->setType('terrain_references_cadastrales', 'hidden');          $form->setType('dossier_instruction', 'hidden');
95            $form->setType('dossier_autorisation', 'hidden');
96      }      }
       
     // =============================================  
     // Sous formulaire pour le pétitionnaire  
     // Sub form for the 'petitionnaire'  
     // =============================================  
     function sousformulaire($enteteTab, $validation, $maj, &$db, $postVar, $premiersf,  
                 $DEBUG, $idx, $idxformulaire, $retourformulaire, $typeformulaire,  
                 $objsf, $tricolsf, $retour= "", $actions = array()){  
97    
98          parent::setType($form,$maj);      /**
99         * Ajout des délégataires et pétitionnaires
100         **/
101        function triggerAjouterApres($id, &$db, $val, $DEBUG){
102            $this->listeDemandeur();
103            $this->insertLinkDemandeDemandeur($db, $DEBUG);
104            $this->valIdDemandeur=$this->postedIdDemandeur;
105    
106        }
107        function triggerModifierApres($id, &$db, $val, $DEBUG){
108            $this->listeDemandeur();
109            $this->insertLinkDemandeDemandeur($db, $DEBUG);
110            $this->valIdDemandeur=$this->postedIdDemandeur;
111    
112        }
113    
114        /**
115         * Gestion des liens entre la demande et les demendeurs recement ajoutés
116         **/
117        function insertLinkDemandeDemandeur($db, $DEBUG) {
118            //
119            require_once "../obj/lien_demande_demandeur.class.php";
120    
121            // Comparaison de l'id petitionnaire principal
122            if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
123               !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
124               $this->valIdDemandeur['petitionnaire_principal'] !=
125                            $this->postedIdDemandeur['petitionnaire_principal']) {
126                // Ajout du nouveau lien
127                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
128                if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
129                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
130                }
131            }
132    
133            // Comparaison du delegataire
134            if(isset($this->postedIdDemandeur['delegataire']) AND
135               !empty($this->postedIdDemandeur['delegataire']) AND
136               $this->valIdDemandeur['delegataire'] !=
137                            $this->postedIdDemandeur['delegataire']) {
138                // Ajout du nouveau lien
139                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
140                if(!empty($this->valIdDemandeur['delegataire'])) {
141                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
142                }
143            }
144    
145            // Comparaison des different petitionnaires
146            if(isset($this->postedIdDemandeur['petitionnaire'])) {
147                // Suppression des liens non valides
148                foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
149                    if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
150                        $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
151                    }
152                }
153                // Ajout des nouveaux liens
154                foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
155                    if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
156                        $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
157                    }
158                }
159            }
160        }
161    
162    
163        /**
164         * Fonction permettant d'ajouter un lien
165         * entre la table demande et demandeur
166         **/
167        function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
168            $lienAjout = new lien_demande_demandeur(
169                                            "]",
170                                            $db,
171                                            $DEBUG);
172            $lien = array('lien_demande_demandeur' => "",
173                               'petitionnaire_principal' => (($principal)?"t":"f"),
174                               'demande' => $this->valF['demande'],
175                               'demandeur' => $id);
176            $lienAjout->ajouter($lien, $db, $DEBUG);
177            $lienAjout->__destruct();
178        }
179    
180        /**
181         * Fonction permettant de supprimer un lien
182         * entre la table demande et demandeur
183         **/
184        function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
185            // Suppression
186            $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
187                    "WHERE demande=".$this->valF['demande'].
188                    " AND demandeur=".$id;
189            // Execution de la requete de suppression de l'objet
190            $res = $db->query($sql);
191            // Logger
192            $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
193            $this->f->isDatabaseError();
194    
195        }
196    
197        function isLinkDemandeDemandeurExist($idDemandeur) {
198            $sql = "SELECT count(*)
199                    FROM ".DB_PREFIXE."lien_demande_demandeur
200                    WHERE demande = ".$this->valF['demande'].
201                    "AND demandeur = ".$idDemandeur;
202            $count = $this->f->db->getOne($sql);
203            $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
204            $this->f->isDatabaseError($count);
205            if ($count === 0) {
206                return false;
207            } else {
208                return true;
209            }
210    
211        }
212    
213        /**
214         * Methode de recupération des valeurs postées
215         **/
216        function getPostedValues() {
217            // Récupération des demandeurs dans POST
218            if (isset($_POST['petitionnaire_principal']) OR
219                    isset($_POST['delegataire']) OR
220                        isset($_POST['petitionnaire'])) {
221                if( isset($_POST['petitionnaire_principal']) AND
222                        !empty($_POST['petitionnaire_principal'])) {
223                    $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
224                }
225                if( isset($_POST['delegataire']) AND
226                        !empty($_POST['delegataire'])) {
227                    $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
228                }
229                if( isset($_POST['petitionnaire']) AND
230                        !empty($_POST['petitionnaire'])) {
231                    $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
232                }
233            }
234        }
235        /**
236         * Méthode permettant de récupérer les id des demandeur lié à la demande
237         **/
238        function listeDemandeur() {
239            // Récupération des demandeurs de la base
240            $sql = "SELECT demandeur.demandeur,
241                            demandeur.type_demandeur,
242                            lien_demande_demandeur.petitionnaire_principal
243                FROM ".DB_PREFIXE."lien_demande_demandeur
244                INNER JOIN ".DB_PREFIXE."demandeur
245                ON demandeur.demandeur=lien_demande_demandeur.demandeur
246                WHERE demande = ".$this->val[array_search('demande', $this->champs)];
247            $res = $this->f->db->query($sql);
248            $this->f->addToLog("listeDemandeur() : ".$sql);
249            $this->f->isDatabaseError($res);
250            // Stoquage du résultat dans un tableau
251            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
252                if ($row['petitionnaire_principal'] == 't' AND
253                    $row['type_demandeur']=="petitionnaire") {
254                    $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
255                } elseif ($row['petitionnaire_principal'] == 'f' AND
256                    $row['type_demandeur']=="petitionnaire"){
257                    $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
258                } elseif ($row['type_demandeur']=="delegataire"){
259                    $this->valIdDemandeur['delegataire']=$row['demandeur'];
260                }
261            }
262        }
263    
264        /**
265         * Ajout de la liste des demandeurs
266         */
267        function formSpecificContent($maj) {
268            if(!$this->correct) {
269                $this->listeDemandeur();
270            }
271            if($maj < 2 AND !$this->correct) {
272                $linkable = true;
273            } else {
274                $linkable = false;
275            }
276            // Conteneur de la listes des demandeurs
277            echo "<div class=\"demande_hidden_bloc col_12\">";
278            echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
279            echo "  <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
280                    ._("Petitionnaire")."</legend>";
281            // Si des demandeurs sont liés à la demande
282            require_once "../obj/petitionnaire.class.php";
283            require_once "../obj/delegataire.class.php";
284    
285            // Affichage du bloc pétitionnaire principal / délégataire
286            // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
287            echo "<div id=\"petitionnaire_principal_delegataire\">";
288            // Affichage de la synthèse
289            if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
290                !empty($this->valIdDemandeur["petitionnaire_principal"])) {
291                $demandeur = new petitionnaire(
292                                    $this->valIdDemandeur["petitionnaire_principal"],
293                                    $this->f->db,false);
294                $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
295                $demandeur -> __destruct();
296            }
297            // Si en édition de formulaire
298            if($maj < 2 AND $this->correct != true) {
299                // Bouton d'ajout du pétitionnaire principal
300                // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
301                echo "<input id=\"add_petitionnaire_principal\"
302                    class=\"ui-button ui-widget ui-state-default ui-corner-all\"
303                    type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
304                echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
305                // Bouton d'ajout du delegataire
306                // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
307                echo "<input id=\"add_delegataire\"
308                    class=\"ui-button ui-widget ui-state-default ui-corner-all\"
309                    type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
310            }
311            // Affichage de la synthèse
312            if (isset ($this->valIdDemandeur["delegataire"]) AND
313                !empty($this->valIdDemandeur["delegataire"])) {
314                $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
315                                           $this->f->db,false);
316                $demandeur -> afficherSynthese("delegataire", $linkable);
317                $demandeur -> __destruct();
318            }
319                    
320          //$form->setType('terrain_references_cadastrales', 'hidden');          echo "</div>";
321    
322            // Bloc des pétitionnaires secondaires
323            // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
324            echo "<div id=\"listePetitionnaires\">";
325    
326             // Affichage de la synthèse
327            if (isset ($this->valIdDemandeur["petitionnaire"]) AND
328                !empty($this->valIdDemandeur["petitionnaire"])) {
329                
330                foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
331                    $demandeur = new petitionnaire($petitionnaire,
332                                           $this->f->db,false);
333                    $demandeur -> afficherSynthese("petitionnaire", $linkable);
334                    $demandeur -> __destruct();
335                }
336                
337            }
338            if ($maj < 2 AND !$this->correct) {
339                // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
340                echo "<input id=\"add_petitionnaire\"
341                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
342                        type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
343            }
344            echo "</div>";
345            echo "</fieldset>";
346            echo "</div>";
347      }      }
348    
349  }// fin classe  }// fin classe
350  ?>  ?>

Legend:
Removed from v.688  
changed lines
  Added in v.838

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26