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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1318 - (hide annotations)
Wed Mar 6 14:18:30 2013 UTC (11 years, 10 months ago) by vpihour
File size: 40450 byte(s)
Ajout de l'affichage de l'état dans la visualisation du dossier d'autorisation
Correction d'une faute d'orthographe dans la visualisation du dossier d'autorisation
Correction de la requête d'affiche du tableau des dossiers d'autorisation

1 vpihour 632 <?php
2     //$Id$
3     //gen openMairie le 08/11/2012 14:00
4    
5     require_once ("../gen/obj/demande.class.php");
6    
7     class demande extends demande_gen {
8    
9 nhaye 838 var $valIdDemandeur = array("petitionnaire_principal" => "",
10     "delegataire" => "",
11     "petitionnaire" => array());
12     var $postedIdDemandeur = array("petitionnaire_principal" => "",
13     "delegataire" => "",
14     "petitionnaire" => array());
15 nhaye 807
16 vpihour 632 function demande($id,&$db,$debug) {
17     $this->constructeur($id,$db,$debug);
18     }// fin constructeur
19 fmichon 1005
20     function setValF($val) {
21     parent::setValF($val);
22     // Récupération des id demandeurs postés
23     $this->getPostedValues();
24 nhaye 1020 //$this->valIdDemandeur=$this->postedIdDemandeur;
25 fmichon 1005 }
26    
27     /**
28     * Méthode permettant de récupérer les valeurs du dossier d'autorisation
29 vpihour 1058 * correspondant à la nouvelle demande
30 fmichon 1005 */
31 nhaye 1039 function getValFromDossier($dossier_autorisation) {
32 fmichon 1005 include "../sql/pgsql/demande.form.inc.php";
33     $sql=str_replace("<idx>",$this->getParameter("idx_dossier"),
34 nhaye 1053 $sql_infos_dossier);
35 fmichon 1005 $res = $this->db->query($sql);
36 nhaye 1039 $this->addToLog("demande -> getValFromDossier() : ".$sql);
37 fmichon 1005 $this->f->isDatabaseError();
38     $row = & $res->fetchRow(DB_FETCHMODE_ASSOC);
39     return $row;
40     }
41 vpihour 651
42 vpihour 799 /*
43     * La date du jour par défaut dans le champs date_demande
44     * Put the date of the day by default into the field date_demande
45     */
46 vpihour 635 function setVal(&$form, $maj, $validation, &$db) {
47     if($maj == 0) {
48 fmichon 1005 $form->setVal("date_demande",date('d/m/Y'));
49    
50     // Récupération des valeurs du dossier d'autorisation correspondant
51     if($this->getParameter("idx_dossier") != "") {
52 nhaye 1039 $val_autorisation = $this->getValFromDossier(
53 fmichon 1005 $this->getParameter("idx_dossier"));
54     foreach($val_autorisation as $champ => $value) {
55     $form->setVal($champ,$value);
56     }
57     }
58 vpihour 635 }
59     }
60    
61 nhaye 838 /**
62     * Méthode de verification du contenu
63     */
64     function verifier($val, &$db, $DEBUG) {
65     parent::verifier($val, $db, $DEBUG);
66     if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
67     empty($this->postedIdDemandeur["petitionnaire_principal"])) {
68     $this->correct = false;
69     $this->addToMessage("La saisie d'un petitionnaire principal est obligatoire.");
70     }
71     }
72 vpihour 799 /*
73     * Ajout du fielset
74     * Add fieldset
75     */
76 vpihour 635 function setLayout(&$form, $maj){
77     if ( $maj < 2 OR $maj == 3 ) {
78    
79 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 1 */
80 nhaye 807 $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_8");
81 vpihour 1058
82 nhaye 807 $form->setFieldset('dossier_autorisation_type_detaille','D'
83     ,_('Type de dossier/demande'));
84     $form->setFieldset('demande_type','F','');
85    
86     $form->setBloc('demande_type','F');
87 vpihour 1058 /*Fin bloc 1*/
88 nhaye 807
89 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 2 */
90 nhaye 807 $form->setBloc('date_demande','D',"","col_4 demande_hidden_bloc");
91     $form->setFieldset('date_demande','D',_('Date de la demande'));
92     $form->setFieldset('date_demande','F','');
93 vpihour 635 $form->setBloc('date_demande','F');
94 vpihour 1058 /*Fin bloc 2*/
95 vpihour 635
96 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 3 */
97 nhaye 807 $form->setBloc('terrain_references_cadastrales','D',"",
98     "localisation col_12 demande_hidden_bloc");
99 vpihour 693 $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
100     $form->setFieldset('terrain_superficie','F','');
101 vpihour 635 $form->setBloc('terrain_superficie','F');
102 vpihour 1058 /*Fin bloc 4*/
103 vpihour 676
104 vpihour 635 }
105     }
106 vpihour 641
107 vpihour 799 /*
108     * Ajoute des actions sur les deux premiers select
109     * Add actions on the two first select
110     */
111 vpihour 641 function setOnchange(&$form,$maj){
112     parent::setOnchange($form,$maj);
113     $form->setOnchange("dossier_autorisation_type_detaille","changeDemandeType();");
114     $form->setOnchange("demande_type","showFormsDemande();");
115     }
116 vpihour 635
117 vpihour 799 /*
118     * Cache le champ terrain_references_cadastrales
119     * Hide the fiels terrain_references_cadastrales
120     */
121 vpihour 651 function setType(&$form,$maj) {
122     parent::setType($form,$maj);
123    
124 vpihour 689 $form->setType('dossier_instruction', 'hidden');
125     $form->setType('dossier_autorisation', 'hidden');
126 fmichon 1005
127     $form->setType('instruction_recepisse', 'hidden');
128     $form->setType('arrondissement', 'hidden');
129    
130     // Si il s'agit d'une demande sur dossier existant on desactive tous les champs
131     // sauf demande_type
132 nhaye 1100 if(($maj == 0 AND $this-> getParameter("idx_dossier"))) {
133 nhaye 1053 $form->setType('dossier_autorisation_type_detaille', 'selecthiddenstatic');
134     $form->setType('terrain_references_cadastrales', 'hiddenstatic');
135     $form->setType('terrain_adresse_voie_numero', 'hiddenstatic');
136     $form->setType('complement', 'hiddenstatic');
137     $form->setType('terrain_adresse_lieu_dit', 'hiddenstatic');
138     $form->setType('terrain_adresse_localite', 'hiddenstatic');
139     $form->setType('terrain_adresse_code_postal', 'hiddenstatic');
140     $form->setType('terrain_adresse_bp', 'hiddenstatic');
141     $form->setType('terrain_adresse_cedex', 'hiddenstatic');
142     $form->setType('terrain_superficie', 'hiddenstatic');
143 fmichon 1005 }
144 nhaye 1100 if($maj == 1) {
145     $form->setType('dossier_autorisation_type_detaille', 'selecthiddenstatic');
146 nhaye 1095 $form->setType('demande_type', 'selecthiddenstatic');
147     }
148 nhaye 1100 if($maj == 3) {
149 nhaye 1101 $form->setType('terrain_references_cadastrales', 'referencescadastralesstatic');
150 nhaye 1100 }
151    
152 vpihour 651 }
153 vpihour 676
154 nhaye 807 /**
155 nhaye 920 * Méthode permettant d'ajouter un dossier d'autorisation
156     */
157     function ajoutDossierAutorisation($id, &$db, $val, $DEBUG){
158     require_once '../obj/dossier_autorisation.class.php';
159     $dossier_autorisation = new dossier_autorisation("]",$db,$DEBUG);
160     // Création du dossier
161     foreach($dossier_autorisation->champs as $value) {
162     $valAuto[$value] = NULL;
163     }
164     $valAuto['dossier_autorisation']=NULL;
165     $valAuto['exercice']=NULL;
166     $valAuto['insee']=NULL;
167     $valAuto['arrondissement']=NULL;
168 vpihour 1318 $valAuto['etat_dossier_autorisation']=1;
169 nhaye 920 $valAuto['erp_numero_batiment']=NULL;
170     $valAuto['erp_ouvert']=NULL;
171     $valAuto['erp_arrete_decision']=NULL;
172     $valAuto['dossier_autorisation_type_detaille']=$this->valF['dossier_autorisation_type_detaille'];
173 vpihour 1318 $valAuto['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);
174 nhaye 920 $valAuto['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
175     $valAuto['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
176     $valAuto['complement']=$this->valF['complement'];
177     $valAuto['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
178     $valAuto['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
179     $valAuto['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
180     $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
181     $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
182     $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];
183 fmichon 1005 $valAuto['numero_version']=-1;
184 nhaye 920 // Ajout du dossier dans la base
185     $dossier_autorisation->ajouter($valAuto, $db, $DEBUG);
186     // Liaison du dossier ajouter à la demande
187     $this->valF['dossier_autorisation'] = $dossier_autorisation->valF['dossier_autorisation'];
188     }
189    
190 vpihour 1273 function getCodeDemandeType($demande_type){
191    
192     $sql = "SELECT
193     code
194     FROM
195     ".DB_PREFIXE."demande_type
196     WHERE
197     demande_type = ".$demande_type;
198     $codeDemandeType = $this->db->getOne($sql);
199     $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
200    
201     return $codeDemandeType;
202     }
203    
204 nhaye 920 /**
205     * Méthode permettant d'ajouter un dossier d'instruction
206     */
207 fmichon 1005 function ajoutDossierInstruction($id, &$db, $val, $DEBUG, $dossier_instruction_type){
208 nhaye 920 require_once '../obj/dossier.class.php';
209     $dossier = new dossier("]",$db,$DEBUG);
210     foreach($dossier->champs as $value) {
211     $valInstr[$value] = NULL;
212     }
213     require_once '../obj/dossier_autorisation_type_detaille.class.php';
214     $datd = new dossier_autorisation_type_detaille(
215     $this->valF['dossier_autorisation_type_detaille'],$db,$DEBUG);
216 fmichon 1005
217     /*Ajout de la variable dossier_instruction_type à l'objet dossier pour le
218     * versionning
219     */
220     $dossier->setDossierInstructionType($dossier_instruction_type);
221    
222 nhaye 920 // Définition des valeurs à entrée dans la table
223 nhaye 1186 $valInstr['dossier_instruction_type']=$dossier_instruction_type;
224 nhaye 920 $valInstr['date_depot']=$this->dateDBToForm($this->valF['date_demande']);
225 nhaye 1037 $valInstr['date_demande']=$this->dateDBToForm($this->valF['date_demande']);
226 nhaye 920 $valInstr['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);
227     $valInstr['terrain_references_cadastrales']=$this->valF['terrain_references_cadastrales'];
228     $valInstr['terrain_adresse_voie_numero']=$this->valF['terrain_adresse_voie_numero'];
229     $valInstr['complement']=$this->valF['complement'];
230     $valInstr['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
231     $valInstr['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
232     $valInstr['terrain_adresse_code_postal']=$this->valF['terrain_adresse_code_postal'];
233     $valInstr['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
234     $valInstr['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
235     $valInstr['terrain_superficie']=$this->valF['terrain_superficie'];
236     $valInstr['description']="";
237 fmichon 927 $valInstr['dossier_autorisation']=$this->valF['dossier_autorisation'];
238 nhaye 1262
239 vpihour 1273 /*
240     * Gestion de la qualification
241     * */
242     //Récupérer le code du type de la demande
243     $codeDemandeType = $this->getCodeDemandeType($val['demande_type']);
244    
245     //Marque le dossier comme à qualifier selon le type de dossier d'instruction
246     if ( strcasecmp($codeDemandeType, "DI") == 0 ||
247     strcasecmp($codeDemandeType, "DT") == 0 ||
248     strcasecmp($codeDemandeType, "DM") == 0 ||
249     strcasecmp($codeDemandeType, "DP") == 0 ||
250     strcasecmp($codeDemandeType, "DTP") == 0 ||
251 vpihour 1307 strcasecmp($codeDemandeType, "DAACT") == 0 ||
252 vpihour 1273 strcasecmp($codeDemandeType, "DOC") == 0 ){
253    
254     $valInstr['a_qualifier'] = TRUE;
255     }
256    
257 nhaye 1262 // Récupération du cerfa pour le type d'instruction sélectionnée et valide
258 vpihour 1273 $sql = "SELECT
259     dossier_instruction_type.cerfa
260     FROM
261     ".DB_PREFIXE."dossier_instruction_type
262     JOIN
263     ".DB_PREFIXE."cerfa
264     ON
265     dossier_instruction_type.cerfa = cerfa.cerfa
266     WHERE
267     now()<=om_validite_fin
268     AND now()>=om_validite_debut
269     AND dossier_instruction_type=".$dossier_instruction_type;
270 nhaye 1262 $valInstr['cerfa'] = $db->getOne($sql);
271     $this->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
272    
273 nhaye 920 $dossier->ajouter($valInstr, $db, $DEBUG);
274     $this->f->isDatabaseError();
275     // Liaison du dossier ajouter à la demande
276     $this->valF['dossier_instruction'] = $dossier->valF['dossier'];
277     }
278    
279     /**
280     * Ajout des liens demandeurs / dossier d'autorisation
281 nhaye 907 **/
282 nhaye 920 function ajoutLiensDossierAutorisation($id, &$db, $val, $DEBUG) {
283     // Création des liens entre le dossier autorisation et les demandeurs
284 nhaye 907 include '../sql/pgsql/demande.form.inc.php';
285 nhaye 920 require_once '../obj/lien_dossier_autorisation_demandeur.class.php';
286     $ldad = new lien_dossier_autorisation_demandeur("]",$db,$DEBUG);
287     // Recupération des demandeurs liés à la demande
288     $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur);
289     $res = $db->query($sql);
290     $this->f->addToLog("demande.class.php: db->query(\"".$sql."\");", VERBOSE_MODE);
291     $this->f->isDatabaseError();
292     while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
293     $row['lien_dossier_autorisation_demandeur'] = NULL;
294     $row['dossier_autorisation'] = $this->valF['dossier_autorisation'];
295     $ldad->ajouter($row, $db, $DEBUG);
296     }
297     }
298    
299     /**
300     * Ajout des liens demandeurs / dossier d'autorisation
301     **/
302     function ajoutLiensDossierInstruction($id, &$db, $val, $DEBUG) {
303     // Création des liens entre le dossier instruction et les demandeurs
304     include '../sql/pgsql/demande.form.inc.php';
305     require_once '../obj/lien_dossier_demandeur.class.php';
306     $ldd = new lien_dossier_demandeur("]",$db,$DEBUG);
307     // Recupération des demandeurs liés à la demande
308     $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur);
309     $res = $db->query($sql);
310     $this->f->addToLog("demande.class.php: db->query(\"".$sql."\");", VERBOSE_MODE);
311     $this->f->isDatabaseError();
312     while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
313     $row['lien_dossier_demandeur'] = NULL;
314     $row['dossier'] = $this->valF['dossier_instruction'];
315     $ldd->ajouter($row, $db, $DEBUG);
316     }
317     }
318    
319 fmichon 1005 /*
320     * Récupère l'identifiant d'un arrondissement à partir d'un code postal
321     */
322     function getArrondissement($terrain_adresse_code_postal){
323    
324     $arrondissement = NULL;
325    
326     $sql = "SELECT
327     arrondissement
328     FROM
329     ".DB_PREFIXE."arrondissement
330     WHERE
331     code_postal = '$terrain_adresse_code_postal' ";
332     $this->addToLog("demande.class.php : ".$sql." execute <br>", EXTRA_VERBOSE_MODE);
333    
334     $res = $this->db->query($sql);
335     $this->f->isDatabaseError($res);
336    
337     if( $res->numrows() > 0 ) {
338    
339     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
340     $arrondissement = $row['arrondissement'];
341     }
342    
343     return $arrondissement;
344     }
345    
346     /*
347     * Récupère l'évènement lié à un type de demande
348     */
349     function getEvenement($demande_type){
350    
351     $evenement = NULL;
352    
353     $sql =
354     "SELECT
355     evenement
356     FROM
357     ".DB_PREFIXE."demande_type
358     WHERE
359     demande_type = $demande_type";
360    
361     $res = $this->db->query($sql);
362     $this->f->isDatabaseError($res);
363    
364     if ( $res->numrows() > 0 ){
365    
366     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
367     $evenement = $row['evenement'];
368     }
369    
370     return $evenement;
371     }
372    
373     /*
374     * Récupère la lettre type lié à un événement
375     */
376     function getLettreType($evenement){
377    
378     $lettretype = NULL;
379    
380     $sql =
381     "SELECT
382     lettretype
383     FROM
384     ".DB_PREFIXE."evenement
385     WHERE
386     evenement = $evenement";
387    
388     $res = $this->db->query($sql);
389     $this->f->isDatabaseError($res);
390    
391     if ( $res->numrows() > 0 ){
392    
393     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
394     $lettretype = $row['lettretype'];
395     }
396    
397     return $lettretype;
398     }
399    
400 nhaye 920 /**
401     * Ajout des dossiers
402     **/
403     function triggerAjouter($id, &$db, $val, $DEBUG){
404     include '../sql/pgsql/demande.form.inc.php';
405 nhaye 907 if($this->valF["demande_type"] != NULL) {
406     $res = $db->query(str_replace('<idx>', $this->valF['demande_type'], $sql_demande_type_details_by_id));
407     $this->f->isDatabaseError();
408 nhaye 920 $dossier_type = $res->fetchRow(DB_FETCHMODE_ASSOC);
409 nhaye 907 // Création du dossier_autorisation
410 nhaye 1054 if($this->valF['dossier_autorisation'] == "") {
411 nhaye 920 $this->ajoutDossierAutorisation($id, $db, $val, $DEBUG);
412 nhaye 907 $this -> addToMessage(_("Creation du dossier d'autorisation no").$this->valF['dossier_autorisation']);
413     }
414 nhaye 920 // Création du dossier d'instruction
415     if($dossier_type['dossier_instruction_type'] != NULL) {
416 fmichon 1005 $this->ajoutDossierInstruction($id, $db, $val, $DEBUG, $dossier_type['dossier_instruction_type']);
417 nhaye 945 $this -> addToMessage(_("Creation du dossier d'instruction no").$this->valF['dossier_instruction']);
418 nhaye 907 }
419 vpihour 930
420     /*Création du lien de téléchargement de récépissé de demande*/
421     if ( $this->valF['demande_type'] != "" && is_numeric($this->valF['demande_type'])
422     && isset($this->valF['dossier_instruction']) && $this->valF['dossier_instruction'] !== "" ){
423    
424     /*Récupérer l'événement lié à ce type de demande*/
425 fmichon 1005 $evenement = $this->getEvenement($this->valF['demande_type']);
426    
427 vpihour 930 /*Récupération de la lettre type de l'événement*/
428 fmichon 1005 $lettretype = $this->getLettreType($evenement);
429 vpihour 930
430     /*Création d'une nouvelle instruction avec cet événement*/
431     /*Données*/
432     $valInstr['instruction']=NULL;
433    
434     $valInstr['destinataire']=$this->valF['dossier_instruction'];
435     $valInstr['dossier']=$this->valF['dossier_instruction'];
436    
437 vpihour 1127 $valInstr['date_evenement']=date("d/m/Y");
438 fmichon 1005 $valInstr['evenement']=$evenement;
439     $valInstr['lettretype']=$lettretype;
440 vpihour 930 $valInstr['complement']="";
441     $valInstr['complement2']="";
442    
443     $valInstr['action']="initialisation";
444     $valInstr['delai']="2";
445     $valInstr['etat']="notifier";
446     $valInstr['accord_tacite']="Oui";
447     $valInstr['delai_notification']="1";
448     $valInstr['archive_delai']="0";
449     $valInstr['archive_date_complet']=NULL;
450     $valInstr['archive_date_rejet']=NULL;
451     $valInstr['archive_date_limite']=NULL;
452     $valInstr['archive_date_notification_delai']=NULL;
453     $valInstr['archive_accord_tacite']="Non";
454     $valInstr['archive_etat']="initialiser";
455     $valInstr['archive_date_decision']=NULL;
456     $valInstr['archive_avis']="";
457     $valInstr['archive_date_validite']=NULL;
458     $valInstr['archive_date_achevement']=NULL;
459     $valInstr['archive_date_chantier']=NULL;
460     $valInstr['archive_date_conformite']=NULL;
461     $valInstr['complement3']="";
462     $valInstr['complement4']="";
463     $valInstr['complement5']="";
464     $valInstr['complement6']="";
465     $valInstr['complement7']="";
466     $valInstr['complement8']="";
467     $valInstr['complement9']="";
468     $valInstr['complement10']="";
469     $valInstr['complement11']="";
470     $valInstr['complement12']="";
471     $valInstr['complement13']="";
472     $valInstr['complement14']="";
473     $valInstr['complement15']="";
474     $valInstr['avis_decision']=NULL;
475 vpihour 1136 $valInstr['date_finalisation_courrier']=NULL;
476     $valInstr['date_envoi_signature']=NULL;
477     $valInstr['date_retour_signature']=NULL;
478     $valInstr['date_envoi_rar']=NULL;
479     $valInstr['date_retour_rar']=NULL;
480     $valInstr['date_envoi_controle_legalite']=NULL;
481     $valInstr['date_retour_controle_legalite']=NULL;
482 nhaye 1246 $valInstr['signataire_arrete']=NULL;
483 vpihour 1307 $valInstr['numero_arrete']=NULL;
484 vpihour 930
485     /*Fichier requis*/
486     require_once '../obj/instruction.class.php';
487    
488     /*Création d'un nouveau dossier*/
489     $instruction = new instruction("]",$db,$DEBUG);
490     $instruction->valF = "";
491     $instruction->ajouter($valInstr, $db, $DEBUG);
492 vpihour 1058
493     /*Si la création a réussie*/
494 vpihour 930 if ( $instruction->valF['instruction'] != "" ){
495    
496 vpihour 1058 /*Affichage du récépissé de la demande*/
497 fmichon 1005 $this->valF['instruction_recepisse'] = $instruction->valF['instruction'];
498 vpihour 930 $this -> addToMessage("<br/><a
499     class='lien'
500 vpihour 1084 href='../pdf/pdflettretype.php?obj=".$lettretype."&amp;idx=".$this->valF['dossier_instruction']."'
501     target='_blank'>
502 vpihour 930 <span
503     class=\"om-icon om-icon-16 om-icon-fix pdf-16\"
504     title=\""._("Telecharger le recepisse de la demande")."\">".
505     _("Telecharger le recepisse de la demande").
506     "</span>
507     &nbsp;&nbsp;&nbsp;&nbsp;".
508     _("Telecharger le recepisse de la demande")."
509 vpihour 1093 </a><br/>");
510 vpihour 930 }
511 vpihour 1058 /*Sinon affiche un message d'erreur*/
512 vpihour 930 else {
513    
514 fmichon 1012 $this -> addToMessage(_("Une erreur s'est produite lors de la creation du recepisse"));
515 vpihour 930 }
516     }
517 fmichon 1005
518     /*Ajout de l'arrondissement à partir du code postal*/
519     if ( !is_null($this->valF["terrain_adresse_code_postal"]) && is_numeric($this->valF["terrain_adresse_code_postal"]) ){
520    
521     $this->valF["arrondissement"] = $this->getArrondissement($this->valF["terrain_adresse_code_postal"]);
522     }
523 nhaye 907 }
524     }
525    
526     /**
527 nhaye 828 * Ajout des délégataires et pétitionnaires
528 nhaye 807 **/
529 nhaye 828 function triggerAjouterApres($id, &$db, $val, $DEBUG){
530     $this->insertLinkDemandeDemandeur($db, $DEBUG);
531 fmichon 1005
532 nhaye 920 // Ajout des lliens entre dossier_autorisation et demandeur
533 vpihour 1070 if(!empty($this->valF['dossier_autorisation']) AND $val['dossier_autorisation'] == "" ) {
534 nhaye 920 $this->ajoutLiensDossierAutorisation($id, $db, $val, $DEBUG);
535     }
536     // Ajout des lliens entre dossier et demandeur
537     if(!empty($this->valF['dossier_instruction'])) {
538     $this->ajoutLiensDossierInstruction($id, $db, $val, $DEBUG);
539     }
540 nhaye 1246
541     // Duplication des lots et liaison au nouveau dossier_d'instruction
542     if(!empty($this->valF['dossier_autorisation']) AND $val['dossier_autorisation'] != "" ) {
543     $this->lienLotDossierInstruction($id, $db, $val, $DEBUG);
544     }
545 nhaye 828 }
546 vpihour 1058
547     /*Ajout du lien demande / demandeur(s)*/
548 nhaye 828 function triggerModifierApres($id, &$db, $val, $DEBUG){
549 nhaye 1039 $this->listeDemandeur("demande",$this->val[array_search('demande', $this->champs)]);
550 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
551 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
552 nhaye 828
553     }
554    
555     /**
556 nhaye 1246 * Gestion des liens entre les lots du DA et le nouveau dossier
557     **/
558     function lienLotDossierInstruction($id, $db, $val, $DEBUG) {
559     require_once ("../obj/lot.class.php");
560     $lot = new lot("]", $db, $DEBUG);
561     require_once ("../obj/lien_dossier_lot.class.php");
562     $ldl = new lien_dossier_lot("]", $db, $DEBUG);
563     require_once ("../obj/lien_lot_demandeur.class.php");
564     $lld = new lien_lot_demandeur("]", $db, $DEBUG);
565    
566    
567     $sqlLots = "SELECT * FROM ".DB_PREFIXE."lot
568     WHERE dossier_autorisation = '".$this->valF['dossier_autorisation']."'";
569     $resLot = $db -> query($sqlLots);
570     $this->f->addToLog("db->query(\"".$sqlLots."\");", VERBOSE_MODE);
571     $this->f->isDatabaseError($resLot);
572     while ($rowLot=& $resLot->fetchRow(DB_FETCHMODE_ASSOC)){
573     // Insertion du nouveau lot
574     $valLot['lot'] = "";
575     $valLot['libelle'] = $rowLot['libelle'];
576     $valLot['dossier_autorisation'] = NULL;
577     $lot -> ajouter($valLot, $db, $DEBUG);
578 nhaye 1247
579 nhaye 1246 //Insertion du lien entre le lot et le dossier d'instruction
580     $valLdl['lien_dossier_lot'] = "";
581     $valLdl['dossier'] = $this->valF['dossier_instruction'];
582     $valLdl['lot'] = $lot->valF['lot'];
583     $ldl->ajouter($valLdl, $db, $DEBUG);
584    
585     //Insertion des liens entre dossier et les lots
586     $sqlDemandeurs = "SELECT * FROM ".DB_PREFIXE."lien_lot_demandeur
587     WHERE lot = ".$rowLot['lot'];
588     $res = $db -> query($sqlDemandeurs);
589     $this->f->addToLog("db->query(\"".$sqlDemandeurs."\");", VERBOSE_MODE);
590     $this->f->isDatabaseError($res);
591    
592     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
593     $valLld["lien_lot_demandeur"] = "";
594     $valLld["lot"]=$lot->valF['lot'];
595     $valLld["demandeur"] = $row['demandeur'];
596     $valLld["petitionnaire_principal"] = $row['petitionnaire_principal'];
597     $lld->ajouter($valLld, $db, $DEBUG);
598     }
599     }
600     }
601    
602     /**
603 vpihour 1058 * Gestion des liens entre la demande et les demandeurs recemment ajoutés
604 nhaye 828 **/
605     function insertLinkDemandeDemandeur($db, $DEBUG) {
606     //
607     require_once "../obj/lien_demande_demandeur.class.php";
608 nhaye 838 // Comparaison de l'id petitionnaire principal
609     if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
610     !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
611     $this->valIdDemandeur['petitionnaire_principal'] !=
612     $this->postedIdDemandeur['petitionnaire_principal']) {
613     // Ajout du nouveau lien
614     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
615     if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
616     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
617 nhaye 807 }
618 nhaye 828 }
619 nhaye 838
620     // Comparaison du delegataire
621     if(isset($this->postedIdDemandeur['delegataire']) AND
622     !empty($this->postedIdDemandeur['delegataire']) AND
623     $this->valIdDemandeur['delegataire'] !=
624     $this->postedIdDemandeur['delegataire']) {
625     // Ajout du nouveau lien
626     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
627     if(!empty($this->valIdDemandeur['delegataire'])) {
628     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
629     }
630     }
631    
632     // Comparaison des different petitionnaires
633     if(isset($this->postedIdDemandeur['petitionnaire'])) {
634     // Suppression des liens non valides
635     foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
636     if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
637     $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
638     }
639     }
640     // Ajout des nouveaux liens
641     foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
642     if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
643     $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
644     }
645     }
646     }
647     }
648    
649    
650     /**
651     * Fonction permettant d'ajouter un lien
652     * entre la table demande et demandeur
653     **/
654     function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
655     $lienAjout = new lien_demande_demandeur(
656     "]",
657     $db,
658     $DEBUG);
659     $lien = array('lien_demande_demandeur' => "",
660     'petitionnaire_principal' => (($principal)?"t":"f"),
661     'demande' => $this->valF['demande'],
662     'demandeur' => $id);
663     $lienAjout->ajouter($lien, $db, $DEBUG);
664     $lienAjout->__destruct();
665     }
666    
667     /**
668     * Fonction permettant de supprimer un lien
669     * entre la table demande et demandeur
670     **/
671     function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
672     // Suppression
673     $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
674     "WHERE demande=".$this->valF['demande'].
675     " AND demandeur=".$id;
676     // Execution de la requete de suppression de l'objet
677     $res = $db->query($sql);
678     // Logger
679     $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
680     $this->f->isDatabaseError();
681    
682     }
683    
684 vpihour 1058 /*
685     * Teste si le lien entre une demande et un demandeur existe
686     * */
687 nhaye 838 function isLinkDemandeDemandeurExist($idDemandeur) {
688     $sql = "SELECT count(*)
689     FROM ".DB_PREFIXE."lien_demande_demandeur
690     WHERE demande = ".$this->valF['demande'].
691     "AND demandeur = ".$idDemandeur;
692     $count = $this->f->db->getOne($sql);
693     $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
694     $this->f->isDatabaseError($count);
695     if ($count === 0) {
696     return false;
697 nhaye 828 } else {
698 nhaye 838 return true;
699 nhaye 828 }
700 nhaye 838
701 nhaye 828 }
702    
703     /**
704     * Methode de recupération des valeurs postées
705     **/
706     function getPostedValues() {
707     // Récupération des demandeurs dans POST
708     if (isset($_POST['petitionnaire_principal']) OR
709     isset($_POST['delegataire']) OR
710     isset($_POST['petitionnaire'])) {
711     if( isset($_POST['petitionnaire_principal']) AND
712     !empty($_POST['petitionnaire_principal'])) {
713 nhaye 838 $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
714 nhaye 807 }
715 nhaye 828 if( isset($_POST['delegataire']) AND
716     !empty($_POST['delegataire'])) {
717 nhaye 838 $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
718 nhaye 828 }
719     if( isset($_POST['petitionnaire']) AND
720     !empty($_POST['petitionnaire'])) {
721 nhaye 838 $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
722 nhaye 828 }
723 nhaye 807 }
724 vpihour 676 }
725 nhaye 828 /**
726 nhaye 1039 * Méthode permettant de récupérer les id des demandeur liés à la demande ou
727     * liés au dossier d'autorisation
728 nhaye 828 **/
729 nhaye 1039 function listeDemandeur($from, $id) {
730 nhaye 828 // Récupération des demandeurs de la base
731     $sql = "SELECT demandeur.demandeur,
732     demandeur.type_demandeur,
733 nhaye 1039 lien_".$from."_demandeur.petitionnaire_principal
734     FROM ".DB_PREFIXE."lien_".$from."_demandeur
735 nhaye 828 INNER JOIN ".DB_PREFIXE."demandeur
736 nhaye 1039 ON demandeur.demandeur=lien_".$from."_demandeur.demandeur
737     WHERE ".$from." = '".$id."'";
738 nhaye 828 $res = $this->f->db->query($sql);
739 nhaye 838 $this->f->addToLog("listeDemandeur() : ".$sql);
740 nhaye 828 $this->f->isDatabaseError($res);
741     // Stoquage du résultat dans un tableau
742     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
743     if ($row['petitionnaire_principal'] == 't' AND
744     $row['type_demandeur']=="petitionnaire") {
745     $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
746     } elseif ($row['petitionnaire_principal'] == 'f' AND
747     $row['type_demandeur']=="petitionnaire"){
748     $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
749     } elseif ($row['type_demandeur']=="delegataire"){
750     $this->valIdDemandeur['delegataire']=$row['demandeur'];
751     }
752     }
753     }
754 nhaye 807
755 nhaye 1037
756 nhaye 807 /**
757 nhaye 1037 * Surcharge du bouton retour afin de retourner sur la recherche de dossiers
758     * d'instruction existant
759     */
760     function retour($premier = 0, $recherche = "", $tricol = "") {
761    
762     echo "\n<a class=\"retour\" ";
763     echo "href=\"";
764     //
765     if($this->getParameter("idx_dossier") != "") {
766     echo "tab.php?";
767     echo "obj=recherche_dossier";
768    
769     } else {
770     if($this->getParameter("retour")=="form" AND !($this->getParameter("validation")>0 AND $this->getParameter("maj")==2 AND $this->correct)) {
771     echo "form.php?";
772     } else {
773     echo "tab.php?";
774     }
775     echo "obj=".get_class($this);
776     if($this->getParameter("retour")=="form") {
777     echo "&amp;idx=".$this->getParameter("idx");
778     echo "&amp;action=3";
779     }
780     }
781     echo "&amp;premier=".$this->getParameter("premier");
782     echo "&amp;tricol=".$this->getParameter("tricol");
783     echo "&amp;recherche=".$this->getParameter("recherche");
784     echo "&amp;selectioncol=".$this->getParameter("selectioncol");
785     echo "&amp;advs_id=".$this->getParameter("advs_id");
786     echo "&amp;valide=".$this->getParameter("valide");
787     //
788     echo "\"";
789     echo ">";
790     //
791     echo _("Retour");
792     //
793     echo "</a>\n";
794    
795     }
796    
797    
798     /**
799 nhaye 807 * Ajout de la liste des demandeurs
800     */
801     function formSpecificContent($maj) {
802 nhaye 842 if(!$this->correct AND $maj != 0) {
803 nhaye 1039 $this->listeDemandeur("demande", $this->val[array_search('demande', $this->champs)]);
804 nhaye 838 }
805 nhaye 1039 // Si le paramètre idx_dossier est défini on récupère les demandeurs liés au dossier d'instruction
806     if($this->getParameter("idx_dossier") != "") {
807     $this->listeDemandeur("dossier", $this->getParameter("idx_dossier"));
808     }
809 nhaye 838 if($maj < 2 AND !$this->correct) {
810     $linkable = true;
811     } else {
812     $linkable = false;
813     }
814 nhaye 1020
815 nhaye 807 // Conteneur de la listes des demandeurs
816 nhaye 1097 echo "<div id=\"liste_demandeur\" class=\"demande_hidden_bloc col_12\">";
817 nhaye 807 echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
818     echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
819     ._("Petitionnaire")."</legend>";
820     // Si des demandeurs sont liés à la demande
821 nhaye 828 require_once "../obj/petitionnaire.class.php";
822     require_once "../obj/delegataire.class.php";
823 nhaye 1097 // Affichage du bloc pétitionnaire principal / délégataire
824     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
825 nhaye 1118 echo "<div id=\"petitionnaire_principal_delegataire col_12\">";
826 nhaye 1097 // Affichage de la synthèse
827     if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
828     !empty($this->valIdDemandeur["petitionnaire_principal"])) {
829     $demandeur = new petitionnaire(
830     $this->valIdDemandeur["petitionnaire_principal"],
831     $this->f->db,false);
832     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
833     $demandeur -> __destruct();
834     } elseif ( isset ($this->postedIdDemandeur["petitionnaire_principal"]) AND
835     !empty($this->postedIdDemandeur["petitionnaire_principal"]) ) {
836     $demandeur = new petitionnaire(
837     $this->postedIdDemandeur["petitionnaire_principal"],
838     $this->f->db,false);
839     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
840     $demandeur -> __destruct();
841     }
842     // Si en édition de formulaire
843     if($maj < 2) {
844     // Bouton d'ajout du pétitionnaire principal
845     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
846     echo "<span id=\"add_petitionnaire_principal\"
847     class=\"om-form-button add-16\">".
848     _("Saisir le petitionnaire principal").
849     "</span>";
850     }
851     // Bouton d'ajout du delegataire
852     // L'ID DU DIV ET DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
853     echo "<div id=\"delegataire\">";
854     // Affichage de la synthèse
855     if (isset ($this->valIdDemandeur["delegataire"]) AND
856     !empty($this->valIdDemandeur["delegataire"])) {
857     $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
858     $this->f->db,false);
859     $demandeur -> afficherSynthese("delegataire", $linkable);
860     $demandeur -> __destruct();
861     } elseif ( isset ($this->postedIdDemandeur["delegataire"]) AND
862     !empty($this->postedIdDemandeur["delegataire"]) ) {
863 nhaye 807
864 nhaye 1097 $demandeur = new delegataire($this->postedIdDemandeur["delegataire"],
865     $this->f->db,false);
866     $demandeur -> afficherSynthese("delegataire", $linkable);
867     $demandeur -> __destruct();
868     }
869     if($maj < 2) {
870     echo "<span id=\"add_delegataire\"
871 vpihour 1075 class=\"om-form-button add-16\">".
872 nhaye 1097 _("Saisir le delegataire").
873 vpihour 1051 "</span>";
874 nhaye 1097 }
875     echo "</div>";
876 nhaye 1118 echo "<div class=\"both\"></div>";
877 nhaye 1097 echo "</div>";
878     // Bloc des pétitionnaires secondaires
879     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
880 nhaye 1118 echo "<div id=\"listePetitionnaires col_12\">";
881 fmichon 1005
882 nhaye 1097 // Affichage de la synthèse
883     if (isset ($this->valIdDemandeur["petitionnaire"]) AND
884     !empty($this->valIdDemandeur["petitionnaire"])) {
885    
886     foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
887     $demandeur = new petitionnaire($petitionnaire,
888     $this->f->db,false);
889     $demandeur -> afficherSynthese("petitionnaire", $linkable);
890 nhaye 1065 $demandeur -> __destruct();
891     }
892    
893 nhaye 1097 } elseif ( isset ($this->postedIdDemandeur["petitionnaire"]) AND
894     !empty($this->postedIdDemandeur["petitionnaire"]) ) {
895     foreach ($this->postedIdDemandeur["petitionnaire"] as $petitionnaire) {
896     $demandeur = new petitionnaire($petitionnaire,
897     $this->f->db,false);
898     $demandeur -> afficherSynthese("petitionnaire", $linkable);
899     $demandeur -> __destruct();
900 nhaye 828 }
901 nhaye 1097 }
902     if ($maj < 2) {
903     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
904     echo "<span id=\"add_petitionnaire\"
905     class=\"om-form-button add-16\">".
906     _("Ajouter un petitionnaire")
907     ."</span>";
908     }
909     echo "</div>";
910 nhaye 807 echo "</fieldset>";
911     echo "</div>";
912     }
913    
914 nhaye 1097 // {{{
915    
916     // getter
917     function getValIdDemandeur() {
918     return $this->valIdDemandeur;
919     }
920     // setter
921     function setValIdDemandeur($valIdDemandeur) {
922     $this->valIdDemandeur = $valIdDemandeur;
923     }
924 vpihour 1106
925     //Supression du lien entre la demandeur et le(s) demandeur(s)
926     function triggerSupprimer($id, &$db, $val, $DEBUG){
927    
928     //Création de la requête
929     $sql = "DELETE FROM
930     ".DB_PREFIXE."lien_demande_demandeur
931     WHERE
932     demande = $id";
933    
934     $res = $this->f->db->query($sql);
935     $this->f->addToLog("triggerSupprimer() : ".$sql);
936     $this->f->isDatabaseError($res);
937     }
938    
939 nhaye 1097 // }}}
940 vpihour 632 }// fin classe
941 fmichon 1005 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26