/[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 842 by nhaye, Tue Nov 27 14:50:59 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          //$form->setType('terrain_references_cadastrales', 'hidden');       **/
101        function triggerAjouterApres($id, &$db, $val, $DEBUG){
102            $this->insertLinkDemandeDemandeur($db, $DEBUG);
103            $this->valIdDemandeur=$this->postedIdDemandeur;
104    
105        }
106        function triggerModifierApres($id, &$db, $val, $DEBUG){
107            $this->listeDemandeur();
108            $this->insertLinkDemandeDemandeur($db, $DEBUG);
109            $this->valIdDemandeur=$this->postedIdDemandeur;
110    
111        }
112    
113        /**
114         * Gestion des liens entre la demande et les demendeurs recement ajoutés
115         **/
116        function insertLinkDemandeDemandeur($db, $DEBUG) {
117            //
118            require_once "../obj/lien_demande_demandeur.class.php";
119    
120            // Comparaison de l'id petitionnaire principal
121            if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
122               !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
123               $this->valIdDemandeur['petitionnaire_principal'] !=
124                            $this->postedIdDemandeur['petitionnaire_principal']) {
125                // Ajout du nouveau lien
126                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
127                if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
128                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
129                }
130            }
131    
132            // Comparaison du delegataire
133            if(isset($this->postedIdDemandeur['delegataire']) AND
134               !empty($this->postedIdDemandeur['delegataire']) AND
135               $this->valIdDemandeur['delegataire'] !=
136                            $this->postedIdDemandeur['delegataire']) {
137                // Ajout du nouveau lien
138                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
139                if(!empty($this->valIdDemandeur['delegataire'])) {
140                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
141                }
142            }
143    
144            // Comparaison des different petitionnaires
145            if(isset($this->postedIdDemandeur['petitionnaire'])) {
146                // Suppression des liens non valides
147                foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
148                    if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
149                        $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
150                    }
151                }
152                // Ajout des nouveaux liens
153                foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
154                    if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
155                        $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
156                    }
157                }
158            }
159        }
160    
161    
162        /**
163         * Fonction permettant d'ajouter un lien
164         * entre la table demande et demandeur
165         **/
166        function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
167            $lienAjout = new lien_demande_demandeur(
168                                            "]",
169                                            $db,
170                                            $DEBUG);
171            $lien = array('lien_demande_demandeur' => "",
172                               'petitionnaire_principal' => (($principal)?"t":"f"),
173                               'demande' => $this->valF['demande'],
174                               'demandeur' => $id);
175            $lienAjout->ajouter($lien, $db, $DEBUG);
176            $lienAjout->__destruct();
177        }
178    
179        /**
180         * Fonction permettant de supprimer un lien
181         * entre la table demande et demandeur
182         **/
183        function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
184            // Suppression
185            $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
186                    "WHERE demande=".$this->valF['demande'].
187                    " AND demandeur=".$id;
188            // Execution de la requete de suppression de l'objet
189            $res = $db->query($sql);
190            // Logger
191            $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
192            $this->f->isDatabaseError();
193    
194        }
195    
196        function isLinkDemandeDemandeurExist($idDemandeur) {
197            $sql = "SELECT count(*)
198                    FROM ".DB_PREFIXE."lien_demande_demandeur
199                    WHERE demande = ".$this->valF['demande'].
200                    "AND demandeur = ".$idDemandeur;
201            $count = $this->f->db->getOne($sql);
202            $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
203            $this->f->isDatabaseError($count);
204            if ($count === 0) {
205                return false;
206            } else {
207                return true;
208            }
209    
210        }
211    
212        /**
213         * Methode de recupération des valeurs postées
214         **/
215        function getPostedValues() {
216            // Récupération des demandeurs dans POST
217            if (isset($_POST['petitionnaire_principal']) OR
218                    isset($_POST['delegataire']) OR
219                        isset($_POST['petitionnaire'])) {
220                if( isset($_POST['petitionnaire_principal']) AND
221                        !empty($_POST['petitionnaire_principal'])) {
222                    $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
223                }
224                if( isset($_POST['delegataire']) AND
225                        !empty($_POST['delegataire'])) {
226                    $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
227                }
228                if( isset($_POST['petitionnaire']) AND
229                        !empty($_POST['petitionnaire'])) {
230                    $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
231                }
232            }
233        }
234        /**
235         * Méthode permettant de récupérer les id des demandeur lié à la demande
236         **/
237        function listeDemandeur() {
238            // Récupération des demandeurs de la base
239            $sql = "SELECT demandeur.demandeur,
240                            demandeur.type_demandeur,
241                            lien_demande_demandeur.petitionnaire_principal
242                FROM ".DB_PREFIXE."lien_demande_demandeur
243                INNER JOIN ".DB_PREFIXE."demandeur
244                ON demandeur.demandeur=lien_demande_demandeur.demandeur
245                WHERE demande = ".$this->val[array_search('demande', $this->champs)];
246            $res = $this->f->db->query($sql);
247            $this->f->addToLog("listeDemandeur() : ".$sql);
248            $this->f->isDatabaseError($res);
249            // Stoquage du résultat dans un tableau
250            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
251                if ($row['petitionnaire_principal'] == 't' AND
252                    $row['type_demandeur']=="petitionnaire") {
253                    $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
254                } elseif ($row['petitionnaire_principal'] == 'f' AND
255                    $row['type_demandeur']=="petitionnaire"){
256                    $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
257                } elseif ($row['type_demandeur']=="delegataire"){
258                    $this->valIdDemandeur['delegataire']=$row['demandeur'];
259                }
260            }
261      }      }
262    
263        /**
264         * Ajout de la liste des demandeurs
265         */
266        function formSpecificContent($maj) {
267            if(!$this->correct AND $maj != 0) {
268                $this->listeDemandeur();
269            }
270            if($maj < 2 AND !$this->correct) {
271                $linkable = true;
272            } else {
273                $linkable = false;
274            }
275            // Conteneur de la listes des demandeurs
276            echo "<div class=\"demande_hidden_bloc col_12\">";
277            echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
278            echo "  <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
279                    ._("Petitionnaire")."</legend>";
280            // Si des demandeurs sont liés à la demande
281            require_once "../obj/petitionnaire.class.php";
282            require_once "../obj/delegataire.class.php";
283    
284                // Affichage du bloc pétitionnaire principal / délégataire
285                // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
286                echo "<div id=\"petitionnaire_principal_delegataire\">";
287                // Affichage de la synthèse
288                if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
289                    !empty($this->valIdDemandeur["petitionnaire_principal"])) {
290                    $demandeur = new petitionnaire(
291                                        $this->valIdDemandeur["petitionnaire_principal"],
292                                        $this->f->db,false);
293                    $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
294                    $demandeur -> __destruct();
295                }
296                // Si en édition de formulaire
297                if($maj < 2 AND $this->correct != true) {
298                    // Bouton d'ajout du pétitionnaire principal
299                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
300                    echo "<input id=\"add_petitionnaire_principal\"
301                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
302                        type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
303                    echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
304                    // Bouton d'ajout du delegataire
305                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
306                    echo "<input id=\"add_delegataire\"
307                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
308                        type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
309                }
310                // Affichage de la synthèse
311                if (isset ($this->valIdDemandeur["delegataire"]) AND
312                    !empty($this->valIdDemandeur["delegataire"])) {
313                    $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
314                                               $this->f->db,false);
315                    $demandeur -> afficherSynthese("delegataire", $linkable);
316                    $demandeur -> __destruct();
317                }
318                
319                echo "</div>";
320    
321                // Bloc des pétitionnaires secondaires
322                // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
323                echo "<div id=\"listePetitionnaires\">";
324    
325                 // Affichage de la synthèse
326                if (isset ($this->valIdDemandeur["petitionnaire"]) AND
327                    !empty($this->valIdDemandeur["petitionnaire"])) {
328                    
329                    foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
330                        $demandeur = new petitionnaire($petitionnaire,
331                                               $this->f->db,false);
332                        $demandeur -> afficherSynthese("petitionnaire", $linkable);
333                        $demandeur -> __destruct();
334                    }
335                    
336                }
337                if ($maj < 2 AND !$this->correct) {
338                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
339                    echo "<input id=\"add_petitionnaire\"
340                            class=\"ui-button ui-widget ui-state-default ui-corner-all\"
341                            type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
342                }
343                echo "</div>";
344            echo "</fieldset>";
345            echo "</div>";
346        }
347    
348  }// fin classe  }// fin classe
349  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26