/[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 799 by vpihour, Wed Nov 21 17:34:18 2012 UTC revision 907 by nhaye, Thu Nov 29 15:24:25 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
# Line 20  class demande extends demande_gen { Line 27  class demande extends demande_gen {
27          }          }
28      }      }
29            
30        /**
31         * Méthode de verification du contenu
32         */
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      * Ajout du fielset
45      * Add fieldset      * Add fieldset
# Line 28  class demande extends demande_gen { Line 48  class demande extends demande_gen {
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 col_9");              $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_8");
52                  $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_9");              
53                                    $form->setFieldset('dossier_autorisation_type_detaille','D'
54                      $form->setFieldset('dossier_autorisation_type_detaille','D',_('Type de dossier/demande'));                                     ,_('Type de dossier/demande'));
55                      $form->setFieldset('demande_type','F','');                  $form->setFieldset('demande_type','F','');
56                                
57                  $form->setBloc('demande_type','F');              $form->setBloc('demande_type','F');
58                                
59                  $form->setBloc('date_demande','D',"","col_3");              $form->setBloc('date_demande','D',"","col_4 demande_hidden_bloc");
60                      $form->setFieldset('date_demande','D',_('Date de la demande'));                  $form->setFieldset('date_demande','D',_('Date de la demande'));
61                      $form->setFieldset('date_demande','F','');                  $form->setFieldset('date_demande','F','');
                 $form->setBloc('date_demande','F');  
62              $form->setBloc('date_demande','F');              $form->setBloc('date_demande','F');
63                            
64              $form->setBloc('terrain_references_cadastrales','D',"", "localisation col_12");              $form->setBloc('terrain_references_cadastrales','D',"",
65                               "localisation col_12 demande_hidden_bloc");
66                  $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));                  $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
67                  $form->setFieldset('terrain_superficie','F','');                  $form->setFieldset('terrain_superficie','F','');
68              $form->setBloc('terrain_superficie','F');              $form->setBloc('terrain_superficie','F');
69                            
70              $form->setBloc('nombre_lots','D',"","lots col_12");              $form->setBloc('nombre_lots','D',"","lots col_12 demande_hidden_bloc");
71                  $form->setFieldset('nombre_lots','D',_('Nombre de lots'));                  $form->setFieldset('nombre_lots','D',_('Nombre de lots'));
72                  $form->setFieldset('nombre_lots','F','');                  $form->setFieldset('nombre_lots','F','');
73              $form->setBloc('nombre_lots','F');              $form->setBloc('nombre_lots','F');
# Line 74  class demande extends demande_gen { Line 94  class demande extends demande_gen {
94          $form->setType('dossier_instruction', 'hidden');          $form->setType('dossier_instruction', 'hidden');
95          $form->setType('dossier_autorisation', 'hidden');          $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                 * Méthode permettant la création de dossiers
100          //$form->setType('terrain_references_cadastrales', 'hidden');       **/
101        function triggerAjoutDossier($id, &$db, $val, $DEBUG){
102            include '../sql/pgsql/demande.form.inc.php';
103            if($this->valF["demande_type"] != NULL) {
104                $res = $db->query(str_replace('<idx>', $this->valF['demande_type'], $sql_demande_type_details_by_id));
105                $this->f->isDatabaseError();
106                $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
107                // Création du dossier_autorisation
108                if($row ['dossier_autorisation_type_detaille'] != NULL) {
109                    // Création du dossier
110                    $valAuto['dossier_autorisation']=NULL;
111                    $valAuto['nature']=NULL;
112                    $valAuto['exercice']=NULL;
113                    $valAuto['insee']=NULL;
114                    $valAuto['arrondissement']=NULL;
115                    $valAuto['etat']=NULL;
116                    $valAuto['erp_numero_batiment']=NULL;
117                    $valAuto['erp_ouvert']=NULL;
118                    $valAuto['erp_arrete_decision']=NULL;
119                    $valAuto['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
120                    $valAuto['depot_initial']=$this->valF['date_demande'];
121                    $valAuto['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
122                    $valAuto['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
123                    $valAuto['complement']=$this->valF['complement'];
124                    $valAuto['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
125                    $valAuto['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
126                    $valAuto['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
127                    $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
128                    $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
129                    $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];
130                    require_once '../obj/dossier_autorisation.class.php';
131                    $dossier_autorisation = new dossier_autorisation("]",$db,$DEBUG);
132                    $dossier_autorisation->ajouter($valAuto, $db, $DEBUG);
133                    $this->valF['dossier_autorisation'] = $dossier_autorisation->valF['dossier_autorisation'];
134                    // Création des liens entre le dossier et les demandeurs
135                    require_once '../obj/lien_dossier_autorisation_demandeur.class.php';
136                    $ldad = new lien_dossier_autorisation_demandeur("]",$db,$DEBUG);
137                    $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur);
138                    $res = $db->query($sql);
139                    $this->f->addToLog("demande.class.php: db->query(\"".$sql."\");", VERBOSE_MODE);
140                    $this->f->isDatabaseError();
141                    print_r($sql);
142                    while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
143                        $row['lien_dossier_autorisation_demandeur'] = NULL;
144                        $row['dossier_autorisation'] = $this->valF['dossier_autorisation'];
145                        $ldad->ajouter($row, $db, $DEBUG);
146                    }
147                    $this -> addToMessage(_("Creation du dossier d'autorisation no").$this->valF['dossier_autorisation']);
148                }
149                /*
150                if($row ['dossier_instruction_type'] != NULL) {
151                    $valInstr['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
152                    
153                    $valInstr['depot_initial']=$this->valF['date_demande'];
154                    $valInstr['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
155                    $valInstr['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
156                    $valInstr['complement']=$this->valF['complement'];
157                    $valInstr['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
158                    $valInstr['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
159                    $valInstr['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
160                    $valInstr['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
161                    $valInstr['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
162                    $valInstr['terrain_superficie']=$this->valF['terrain_superficie'];
163    
164                    require_once '../obj/dossier.class.php';
165                    $dossier_instruction = new dossier("]",$db,$DEBUG);
166                    $dossier_instruction->ajouter($valInstr, $db, $DEBUG);
167                    $this->valF['dossier_instruction'] = $dossier_instruction->valF['dossier'];
168                }
169                */
170            }
171        }
172    
173        /**
174         * Ajout des délégataires et pétitionnaires
175         **/
176        function triggerAjouterApres($id, &$db, $val, $DEBUG){
177            $this->insertLinkDemandeDemandeur($db, $DEBUG);
178            $this->valIdDemandeur=$this->postedIdDemandeur;
179            $this->triggerAjoutDossier($id, $db, $val, $DEBUG);
180        }
181        function triggerModifierApres($id, &$db, $val, $DEBUG){
182            $this->listeDemandeur();
183            $this->insertLinkDemandeDemandeur($db, $DEBUG);
184            $this->valIdDemandeur=$this->postedIdDemandeur;
185    
186      }      }
187    
188        /**
189         * Gestion des liens entre la demande et les demendeurs recement ajoutés
190         **/
191        function insertLinkDemandeDemandeur($db, $DEBUG) {
192            //
193            require_once "../obj/lien_demande_demandeur.class.php";
194    
195            // Comparaison de l'id petitionnaire principal
196            if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
197               !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
198               $this->valIdDemandeur['petitionnaire_principal'] !=
199                            $this->postedIdDemandeur['petitionnaire_principal']) {
200                // Ajout du nouveau lien
201                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
202                if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
203                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
204                }
205            }
206    
207            // Comparaison du delegataire
208            if(isset($this->postedIdDemandeur['delegataire']) AND
209               !empty($this->postedIdDemandeur['delegataire']) AND
210               $this->valIdDemandeur['delegataire'] !=
211                            $this->postedIdDemandeur['delegataire']) {
212                // Ajout du nouveau lien
213                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
214                if(!empty($this->valIdDemandeur['delegataire'])) {
215                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
216                }
217            }
218    
219            // Comparaison des different petitionnaires
220            if(isset($this->postedIdDemandeur['petitionnaire'])) {
221                // Suppression des liens non valides
222                foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
223                    if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
224                        $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
225                    }
226                }
227                // Ajout des nouveaux liens
228                foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
229                    if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
230                        $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
231                    }
232                }
233            }
234        }
235    
236    
237        /**
238         * Fonction permettant d'ajouter un lien
239         * entre la table demande et demandeur
240         **/
241        function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
242            $lienAjout = new lien_demande_demandeur(
243                                            "]",
244                                            $db,
245                                            $DEBUG);
246            $lien = array('lien_demande_demandeur' => "",
247                               'petitionnaire_principal' => (($principal)?"t":"f"),
248                               'demande' => $this->valF['demande'],
249                               'demandeur' => $id);
250            $lienAjout->ajouter($lien, $db, $DEBUG);
251            $lienAjout->__destruct();
252        }
253    
254        /**
255         * Fonction permettant de supprimer un lien
256         * entre la table demande et demandeur
257         **/
258        function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
259            // Suppression
260            $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
261                    "WHERE demande=".$this->valF['demande'].
262                    " AND demandeur=".$id;
263            // Execution de la requete de suppression de l'objet
264            $res = $db->query($sql);
265            // Logger
266            $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
267            $this->f->isDatabaseError();
268    
269        }
270    
271        function isLinkDemandeDemandeurExist($idDemandeur) {
272            $sql = "SELECT count(*)
273                    FROM ".DB_PREFIXE."lien_demande_demandeur
274                    WHERE demande = ".$this->valF['demande'].
275                    "AND demandeur = ".$idDemandeur;
276            $count = $this->f->db->getOne($sql);
277            $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
278            $this->f->isDatabaseError($count);
279            if ($count === 0) {
280                return false;
281            } else {
282                return true;
283            }
284    
285        }
286    
287        /**
288         * Methode de recupération des valeurs postées
289         **/
290        function getPostedValues() {
291            // Récupération des demandeurs dans POST
292            if (isset($_POST['petitionnaire_principal']) OR
293                    isset($_POST['delegataire']) OR
294                        isset($_POST['petitionnaire'])) {
295                if( isset($_POST['petitionnaire_principal']) AND
296                        !empty($_POST['petitionnaire_principal'])) {
297                    $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
298                }
299                if( isset($_POST['delegataire']) AND
300                        !empty($_POST['delegataire'])) {
301                    $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
302                }
303                if( isset($_POST['petitionnaire']) AND
304                        !empty($_POST['petitionnaire'])) {
305                    $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
306                }
307            }
308        }
309        /**
310         * Méthode permettant de récupérer les id des demandeur lié à la demande
311         **/
312        function listeDemandeur() {
313            // Récupération des demandeurs de la base
314            $sql = "SELECT demandeur.demandeur,
315                            demandeur.type_demandeur,
316                            lien_demande_demandeur.petitionnaire_principal
317                FROM ".DB_PREFIXE."lien_demande_demandeur
318                INNER JOIN ".DB_PREFIXE."demandeur
319                ON demandeur.demandeur=lien_demande_demandeur.demandeur
320                WHERE demande = ".$this->val[array_search('demande', $this->champs)];
321            $res = $this->f->db->query($sql);
322            $this->f->addToLog("listeDemandeur() : ".$sql);
323            $this->f->isDatabaseError($res);
324            // Stoquage du résultat dans un tableau
325            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
326                if ($row['petitionnaire_principal'] == 't' AND
327                    $row['type_demandeur']=="petitionnaire") {
328                    $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
329                } elseif ($row['petitionnaire_principal'] == 'f' AND
330                    $row['type_demandeur']=="petitionnaire"){
331                    $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
332                } elseif ($row['type_demandeur']=="delegataire"){
333                    $this->valIdDemandeur['delegataire']=$row['demandeur'];
334                }
335            }
336        }
337    
338        /**
339         * Ajout de la liste des demandeurs
340         */
341        function formSpecificContent($maj) {
342            if(!$this->correct AND $maj != 0) {
343                $this->listeDemandeur();
344            }
345            if($maj < 2 AND !$this->correct) {
346                $linkable = true;
347            } else {
348                $linkable = false;
349            }
350            // Conteneur de la listes des demandeurs
351            echo "<div class=\"demande_hidden_bloc col_12\">";
352            echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
353            echo "  <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
354                    ._("Petitionnaire")."</legend>";
355            // Si des demandeurs sont liés à la demande
356            require_once "../obj/petitionnaire.class.php";
357            require_once "../obj/delegataire.class.php";
358    
359                // Affichage du bloc pétitionnaire principal / délégataire
360                // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
361                echo "<div id=\"petitionnaire_principal_delegataire\">";
362                // Affichage de la synthèse
363                if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
364                    !empty($this->valIdDemandeur["petitionnaire_principal"])) {
365                    $demandeur = new petitionnaire(
366                                        $this->valIdDemandeur["petitionnaire_principal"],
367                                        $this->f->db,false);
368                    $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
369                    $demandeur -> __destruct();
370                }
371                // Si en édition de formulaire
372                if($maj < 2 AND $this->correct != true) {
373                    // Bouton d'ajout du pétitionnaire principal
374                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
375                    echo "<input id=\"add_petitionnaire_principal\"
376                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
377                        type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
378                    echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
379                    // Bouton d'ajout du delegataire
380                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
381                    echo "<input id=\"add_delegataire\"
382                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
383                        type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
384                }
385                // Affichage de la synthèse
386                if (isset ($this->valIdDemandeur["delegataire"]) AND
387                    !empty($this->valIdDemandeur["delegataire"])) {
388                    $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
389                                               $this->f->db,false);
390                    $demandeur -> afficherSynthese("delegataire", $linkable);
391                    $demandeur -> __destruct();
392                }
393                
394                echo "</div>";
395    
396                // Bloc des pétitionnaires secondaires
397                // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
398                echo "<div id=\"listePetitionnaires\">";
399    
400                 // Affichage de la synthèse
401                if (isset ($this->valIdDemandeur["petitionnaire"]) AND
402                    !empty($this->valIdDemandeur["petitionnaire"])) {
403                    
404                    foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
405                        $demandeur = new petitionnaire($petitionnaire,
406                                               $this->f->db,false);
407                        $demandeur -> afficherSynthese("petitionnaire", $linkable);
408                        $demandeur -> __destruct();
409                    }
410                    
411                }
412                if ($maj < 2 AND !$this->correct) {
413                    // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
414                    echo "<input id=\"add_petitionnaire\"
415                            class=\"ui-button ui-widget ui-state-default ui-corner-all\"
416                            type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
417                }
418                echo "</div>";
419            echo "</fieldset>";
420            echo "</div>";
421        }
422    
423  }// fin classe  }// fin classe
424  ?>  ?>

Legend:
Removed from v.799  
changed lines
  Added in v.907

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26