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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3239 - (hide annotations)
Mon Jan 12 15:31:00 2015 UTC (10 years ago) by nmeucci
File size: 81995 byte(s)
Modification de la récupération des post et get avec les méthodes appropriées

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 nhaye 1333 var $autreDossierEnCour;
17    
18 nhaye 2976 var $cerfa = null;
19    
20 vpihour 632 function demande($id,&$db,$debug) {
21     $this->constructeur($id,$db,$debug);
22     }// fin constructeur
23 fmichon 1005
24     function setValF($val) {
25     parent::setValF($val);
26     // Récupération des id demandeurs postés
27     $this->getPostedValues();
28 nhaye 1020 //$this->valIdDemandeur=$this->postedIdDemandeur;
29 fmichon 1005 }
30    
31     /**
32     * Méthode permettant de récupérer les valeurs du dossier d'autorisation
33 vpihour 1058 * correspondant à la nouvelle demande
34 fmichon 1005 */
35 nhaye 1039 function getValFromDossier($dossier_autorisation) {
36 fmichon 1005 include "../sql/pgsql/demande.form.inc.php";
37     $sql=str_replace("<idx>",$this->getParameter("idx_dossier"),
38 nhaye 1053 $sql_infos_dossier);
39 fmichon 1005 $res = $this->db->query($sql);
40 vpihour 1777 $this->f->addToLog("getValFromDossier(): db->query(\"".$sql."\")", VERBOSE_MODE);
41     if ( database::isError($res)){
42     die();
43     }
44 fmichon 1005 $row = & $res->fetchRow(DB_FETCHMODE_ASSOC);
45     return $row;
46     }
47 vpihour 651
48 vpihour 799 /*
49     * La date du jour par défaut dans le champs date_demande
50     * Put the date of the day by default into the field date_demande
51     */
52 vpihour 635 function setVal(&$form, $maj, $validation, &$db) {
53     if($maj == 0) {
54 fmichon 1005 $form->setVal("date_demande",date('d/m/Y'));
55    
56     // Récupération des valeurs du dossier d'autorisation correspondant
57     if($this->getParameter("idx_dossier") != "") {
58 nhaye 1039 $val_autorisation = $this->getValFromDossier(
59 fmichon 1005 $this->getParameter("idx_dossier"));
60     foreach($val_autorisation as $champ => $value) {
61     $form->setVal($champ,$value);
62     }
63     }
64 vpihour 635 }
65     }
66 nhaye 1404 function getDataSubmit() {
67    
68     $datasubmit = parent::getDataSubmit();
69     if($this->getParameter("idx_dossier") != "") {
70     $datasubmit .= "&idx_dossier=".$this->getParameter("idx_dossier");
71     }
72     return $datasubmit;
73     }
74 vpihour 635
75 nhaye 838 /**
76     * Méthode de verification du contenu
77     */
78     function verifier($val, &$db, $DEBUG) {
79     parent::verifier($val, $db, $DEBUG);
80 vpihour 2606
81 nhaye 838 if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
82 vpihour 2606 empty($this->postedIdDemandeur["petitionnaire_principal"]) AND
83     !is_null($this->form)) {
84 nhaye 838 $this->correct = false;
85 fmichon 1725 $this->addToMessage(_("La saisie d'un petitionnaire principal est obligatoire."));
86 nhaye 838 }
87     }
88 nhaye 1333
89     /**
90     * Configuration des select
91     */
92     function setSelect(&$form, $maj,&$db,$debug) {
93    
94 fmichon 3172 if(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php"))
95     include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php");
96     elseif(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc"))
97     include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc");
98 softime 2503
99 softime 3054 // Méthode de récupération des valeurs du select "demande_type"
100     if ($maj < 2
101 nmeucci 3239 && (($this->f->get_submitted_get_value('obj') !== null && $this->f->get_submitted_get_value('obj') != "demande")
102     OR ($this->f->get_submitted_get_value('obj') === null))) {
103 softime 3054 // demande_type
104 nhaye 3039 $form->setSelect('demande_type', $this->loadSelectDemandeType($form, $maj, $db, $debug, "dossier_autorisation_type_detaille"));
105     } else {
106     // demande_type
107     $this->init_select($form, $db, $maj, $debug, "demande_type",
108     $sql_demande_type, $sql_demande_type_by_id, false);
109     }
110 atreal 2730 // arrondissement
111     $this->init_select($form, $db, $maj, $debug, "arrondissement",
112     $sql_arrondissement, $sql_arrondissement_by_id, false);
113    
114     // dossier_autorisation_type_detaille
115     $this->init_select($form, $db, $maj, $debug, "dossier_autorisation_type_detaille",
116     $sql_dossier_autorisation_type_detaille, $sql_dossier_autorisation_type_detaille_by_id, false);
117    
118 softime 2503 }
119 nhaye 1333
120 softime 2503 /**
121     * Charge le select du champ type de demande
122     * @param object $form Formulaire
123     * @param int $maj Mode d'insertion
124     * @param object $db Database
125     * @param bool $debug Debug active ou pas
126     * @param string $champ champ activant le filtre
127     * @return array Contenu du select
128     */
129     function loadSelectDemandeType(&$form, $maj, &$db, $debug, $champ) {
130 nhaye 1333
131 softime 2503 //
132 fmichon 3172 if(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php"))
133     include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc.php");
134     elseif(file_exists ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc"))
135     include ("../sql/".OM_DB_PHPTYPE."/".$this->table.".form.inc");
136 nhaye 1333
137 softime 2503 // Contenu de la liste à choix
138     $contenu=array();
139     $contenu[0][0]='';
140     $contenu[1][0]=_('choisir')."&nbsp;"._("demande_type");
141 nhaye 1857
142 softime 2503 //Récupère l'id du type de dossier d'autorisation détaillé
143     $id_dossier_autorisation_type_detaille = "";
144 nmeucci 3239 if ($this->f->get_submitted_post_value($champ) !== null) {
145     $id_dossier_autorisation_type_detaille = $this->f->get_submitted_post_value($champ);
146 softime 2503 } elseif($this->getParameter($champ) != "") {
147     $id_dossier_autorisation_type_detaille = $this->getParameter($champ);
148     } elseif(isset($form->val[$champ])) {
149     $id_dossier_autorisation_type_detaille = $form->val[$champ];
150     }
151 nhaye 1580
152 softime 2503 // Récupération de paramètre pour le rechargement ajax du select
153     $idx_dossier = $this->getParameter("idx_dossier");
154 softime 1997
155 softime 2503 // Récupère l'id de la nature de la demande
156     $id_demande_nature = "1";
157     if (isset($idx_dossier) AND $idx_dossier != "") {
158     $id_demande_nature = '2';
159     }
160 nhaye 1333
161 softime 2503 // Ajout de condition pour la requête
162     $ajout_condition_requête = "";
163     if ($id_demande_nature == '2') {
164 vpihour 3015
165     //On récupère le dossier d'autorisation
166     $sql = "SELECT dossier_autorisation
167     FROM ".DB_PREFIXE."dossier
168     WHERE dossier = '".$idx_dossier."'";
169     $dossier_autorisation = $this->db->getOne($sql);
170    
171     $this->f->addToLog(
172     "loadSelectDemandeType() : db->getone(\"".$sql."\");",
173     VERBOSE_MODE
174     );
175     if ( database::isError($dossier_autorisation)){
176     return false;
177     }
178    
179     //On récupère l'état du dernier dossier d'instruction
180     $sql = "SELECT etat
181     FROM ".DB_PREFIXE."dossier
182     WHERE dossier_autorisation = '".$dossier_autorisation."' AND
183     version = (SELECT max(version) FROM ".DB_PREFIXE."dossier
184     WHERE dossier_autorisation = '".$dossier_autorisation."' )";
185     $etatDernierDi = $this->db->getOne($sql);
186     $this->f->addToLog(
187     "loadSelectDemandeType() : db->getone(\"".$sql."\");",
188     VERBOSE_MODE
189     );
190     if ( database::isError($etatDernierDi)){
191     return false;
192     }
193    
194     $ajout_condition_requête = " AND etat.etat = '".$etatDernierDi."'";
195 softime 2503 }
196 nhaye 1333
197 softime 2503 //
198     if ($id_dossier_autorisation_type_detaille != "") {
199     //Si l'id du type de dossier d'autorisation détaillé est renseigné
200     $sql_demande_type_by_dossier_autorisation_type_detaille = str_replace('<idx_dossier_autorisation_type_detaille>', $id_dossier_autorisation_type_detaille, $sql_demande_type_by_dossier_autorisation_type_detaille);
201     // Ajoute une condition sur la nature de la demande
202     $sql_demande_type_by_dossier_autorisation_type_detaille = str_replace('<idx_demande_nature>', $id_demande_nature, $sql_demande_type_by_dossier_autorisation_type_detaille);
203     // Permet d'ajouter une condition
204     $sql_demande_type_by_dossier_autorisation_type_detaille = str_replace('<ajout_condition_requête>', $ajout_condition_requête, $sql_demande_type_by_dossier_autorisation_type_detaille);
205     $res = $this->db->query($sql_demande_type_by_dossier_autorisation_type_detaille);
206     $this->addToLog("db->query(\"".$sql_demande_type_by_dossier_autorisation_type_detaille."\");", VERBOSE_MODE);
207     $this->f->isDatabaseError($res);
208     //Les résultats de la requête sont stocké dans le tableau contenu
209 softime 1997 $k=1;
210 softime 2503 while ($row=& $res->fetchRow()){
211     $contenu[0][$k]=$row[0];
212     $contenu[1][$k]=$row[1];
213 softime 1997 $k++;
214 softime 2503 }
215     }
216 softime 1997
217 softime 2503 // Retourne le contenu de la liste
218     return $contenu;
219 nhaye 1333 }
220 softime 2503
221 vpihour 799 /*
222     * Ajout du fielset
223     * Add fieldset
224     */
225 vpihour 635 function setLayout(&$form, $maj){
226     if ( $maj < 2 OR $maj == 3 ) {
227    
228 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 1 */
229 nhaye 807 $form->setBloc('dossier_autorisation_type_detaille','D',"","dossier_type col_8");
230 vpihour 1058
231 nhaye 807 $form->setFieldset('dossier_autorisation_type_detaille','D'
232     ,_('Type de dossier/demande'));
233     $form->setFieldset('demande_type','F','');
234    
235     $form->setBloc('demande_type','F');
236 vpihour 1058 /*Fin bloc 1*/
237 softime 3006
238     // Affichage de l'état du dossier d'instruction
239     $form->setBloc('etat','D',"","col_4 demande_etat_hidden_bloc");
240     $form->setFieldset('etat','D',_('etat du dossier_instruction'));
241     $form->setFieldset('etat','F','');
242     $form->setBloc('etat','F');
243 nhaye 807
244 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 2 */
245 nhaye 807 $form->setBloc('date_demande','D',"","col_4 demande_hidden_bloc");
246     $form->setFieldset('date_demande','D',_('Date de la demande'));
247     $form->setFieldset('date_demande','F','');
248 vpihour 635 $form->setBloc('date_demande','F');
249 vpihour 1058 /*Fin bloc 2*/
250 vpihour 635
251 vpihour 1058 /*Champ sur lequel s'ouvre le bloc 3 */
252 nhaye 807 $form->setBloc('terrain_references_cadastrales','D',"",
253     "localisation col_12 demande_hidden_bloc");
254 vpihour 693 $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
255     $form->setFieldset('terrain_superficie','F','');
256 vpihour 635 $form->setBloc('terrain_superficie','F');
257 vpihour 1058 /*Fin bloc 4*/
258 vpihour 676
259 vpihour 635 }
260     }
261 vpihour 641
262 vpihour 799 /*
263     * Ajoute des actions sur les deux premiers select
264     * Add actions on the two first select
265     */
266 vpihour 641 function setOnchange(&$form,$maj){
267     parent::setOnchange($form,$maj);
268 softime 1997
269 vpihour 641 $form->setOnchange("dossier_autorisation_type_detaille","changeDemandeType();");
270     $form->setOnchange("demande_type","showFormsDemande();");
271     }
272 nhaye 1442
273     function setLib(&$form,$maj) {
274     parent::setLib($form,$maj);
275     //libelle des champs
276    
277 softime 2061 $form->setLib('terrain_adresse_voie',_('terrain_adresse'));
278 nhaye 1442 }
279 vpihour 799 /*
280     * Cache le champ terrain_references_cadastrales
281     * Hide the fiels terrain_references_cadastrales
282     */
283 vpihour 651 function setType(&$form,$maj) {
284     parent::setType($form,$maj);
285    
286 vpihour 689 $form->setType('dossier_instruction', 'hidden');
287     $form->setType('dossier_autorisation', 'hidden');
288 fmichon 1005
289     $form->setType('instruction_recepisse', 'hidden');
290     $form->setType('arrondissement', 'hidden');
291    
292 softime 3006 $form->setType('etat', 'hidden');
293    
294 fmichon 1005 // Si il s'agit d'une demande sur dossier existant on desactive tous les champs
295     // sauf demande_type
296 nhaye 1100 if(($maj == 0 AND $this-> getParameter("idx_dossier"))) {
297 nhaye 1053 $form->setType('dossier_autorisation_type_detaille', 'selecthiddenstatic');
298 softime 3006 $form->setType('etat', 'hiddenstatic');
299 nhaye 1676 $form->setType('terrain_references_cadastrales', 'hiddenstatic');
300 nhaye 1053 $form->setType('terrain_adresse_voie_numero', 'hiddenstatic');
301 softime 2061 $form->setType('terrain_adresse_voie', 'hiddenstatic');
302 nhaye 1053 $form->setType('terrain_adresse_lieu_dit', 'hiddenstatic');
303     $form->setType('terrain_adresse_localite', 'hiddenstatic');
304     $form->setType('terrain_adresse_code_postal', 'hiddenstatic');
305     $form->setType('terrain_adresse_bp', 'hiddenstatic');
306     $form->setType('terrain_adresse_cedex', 'hiddenstatic');
307     $form->setType('terrain_superficie', 'hiddenstatic');
308 fmichon 1005 }
309 nhaye 1100 if($maj == 1) {
310     $form->setType('dossier_autorisation_type_detaille', 'selecthiddenstatic');
311 nhaye 1095 $form->setType('demande_type', 'selecthiddenstatic');
312     }
313 nhaye 1100 if($maj == 3) {
314 nhaye 1101 $form->setType('terrain_references_cadastrales', 'referencescadastralesstatic');
315 nhaye 1100 }
316    
317 vpihour 651 }
318 vpihour 676
319 nhaye 807 /**
320 nhaye 2976 * Permet de recupérer l'identifiant du cerfa du DATD séléctionné
321     * par l'utilisateur.
322     *
323     * @return integer identifiant du cerfa
324 nhaye 920 */
325 nhaye 2976 function getIdCerfa() {
326     if($this->cerfa != null) {
327     return $this->cerfa;
328     }
329     // Récupération du cerfa pour le type d'instruction sélectionnée et valide
330     $sql = "SELECT
331     dossier_autorisation_type_detaille.cerfa
332     FROM
333     ".DB_PREFIXE."dossier_autorisation_type_detaille
334     JOIN
335     ".DB_PREFIXE."cerfa
336     ON
337     dossier_autorisation_type_detaille.cerfa = cerfa.cerfa
338     WHERE
339     now()<=om_validite_fin
340     AND now()>=om_validite_debut
341     AND dossier_autorisation_type_detaille=".
342     $this->valF['dossier_autorisation_type_detaille'];
343     $this->cerfa = $this->db->getOne($sql);
344     $this->f->addToLog(
345     "ajoutDossierInstruction() : db->getone(\"".$sql."\");",
346     VERBOSE_MODE
347     );
348     if ( database::isError($this->cerfa)){
349     return false;
350     }
351     return $this->cerfa;
352     }
353    
354    
355     /**
356     * Méthode permettant d'ajouter un dossier d'autorisation.
357     *
358     * @param integer $id identifiant de la demande
359     * @param database &$db handler de la base de donnée
360     * @param array $val tableau de valeurs postées via le formulaire
361     * @param boolean $DEBUG debug
362     *
363     * @return boolean false si erreur
364     */
365     function ajoutDossierAutorisation($id, &$db, $val, $DEBUG) {
366 nhaye 920 require_once '../obj/dossier_autorisation.class.php';
367 nhaye 2976 $dossier_autorisation = new dossier_autorisation("]", $db, $DEBUG);
368     $id_etat_initial_da =
369     $this->f->getParameter('id_etat_initial_dossier_autorisation');
370 nhaye 1619
371 nhaye 2976 // Vérification de l'existance d'un état initial des DA dans la table
372     // om_parametre afin d'éviter d'eventuelle erreur de base de données
373 nhaye 1606 if(isset($id_etat_initial_da)) {
374     $sql = "SELECT count(*) FROM ".DB_PREFIXE."etat_dossier_autorisation
375     WHERE etat_dossier_autorisation = ".$id_etat_initial_da;
376     $count = $this->db->getOne($sql);
377 nhaye 2976 $this->f->addToLog(
378     "ajoutDossierAutorisation() : db->getOne(\"".$sql."\")",
379     VERBOSE_MODE
380     );
381 vpihour 1777 if ( database::isError($count)){
382 nhaye 2976 return false;
383 vpihour 1777 }
384 nhaye 1606 if($count != 1) {
385 nhaye 2976 return false;
386 nhaye 1606 } else {
387 nhaye 1619 // La méthode ajouter prend en paramètre un tableau associatif
388     // contenant toutes les champs de la classe instanciée,
389 nhaye 2976 // d'où l'initialisation du tableau en bouclant sur la liste des
390     // champs du DA
391 nhaye 1606 foreach($dossier_autorisation->champs as $value) {
392 nhaye 2976 $valAuto[$value] = null;
393 nhaye 1606 }
394 nhaye 1619 // Définition des valeurs à insérer
395 nhaye 1606 $valAuto['dossier_autorisation']="";
396 nhaye 2976 $valAuto['exercice']=null;
397 softime 2986 $valAuto['insee']= $this->f->getParameter("insee");
398 vpihour 3095 $valAuto['arrondissement']=
399     $this->getArrondissement($this->valF['terrain_adresse_code_postal']);
400 nhaye 2976 $valAuto['etat_dossier_autorisation']=
401     $this->f->getParameter('id_etat_initial_dossier_autorisation');
402     $valAuto['erp_numero_batiment']=null;
403     $valAuto['erp_ouvert']=null;
404     $valAuto['erp_arrete_decision']=null;
405     $valAuto['dossier_autorisation_type_detaille']=
406     $this->valF['dossier_autorisation_type_detaille'];
407     $valAuto['depot_initial']=
408     $this->dateDBToForm($this->valF['date_demande']);
409     $valAuto['terrain_references_cadastrales']=
410     $this->valF['terrain_references_cadastrales'];
411     $valAuto['terrain_adresse_voie_numero']=
412     $this->valF['terrain_adresse_voie_numero'];
413 softime 2061 $valAuto['terrain_adresse_voie']=$this->valF['terrain_adresse_voie'];
414 nhaye 2976 $valAuto['terrain_adresse_lieu_dit']=
415     $this->valF['terrain_adresse_lieu_dit'];
416     $valAuto['terrain_adresse_localite']=
417     $this->valF['terrain_adresse_localite'];
418     $valAuto['terrain_adresse_code_postal']=
419     $this->valF['terrain_adresse_code_postal'];
420 nhaye 1606 $valAuto['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
421     $valAuto['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
422     $valAuto['terrain_superficie']=$this->valF['terrain_superficie'];
423     $valAuto['numero_version']=-1;
424     // Ajout du dossier dans la base
425 nhaye 2976 if($dossier_autorisation->ajouter($valAuto, $db, $DEBUG) === false) {
426     return false;
427     }
428 nhaye 1606 // Liaison du dossier ajouter à la demande
429 nhaye 2976 $this->valF['dossier_autorisation'] =
430     $dossier_autorisation->valF['dossier_autorisation'];
431 nhaye 1606 }
432     } else {
433 nhaye 2976 return false;
434 nhaye 920 }
435 nhaye 1606
436 nhaye 920 }
437    
438     /**
439 nhaye 2976 * Méthode permettant d'ajouter un dossier d'instruction.
440     *
441     * @param integer $id identifiant de la demande
442     * @param database &$db handler de la base de donnée
443     * @param array $val tableau de valeurs postées via
444     * le formulaire
445     * @param boolean $DEBUG debug
446     * @param integer $dossier_instruction_type identifiant du DI type
447     *
448     * @return boolean false si erreur
449 nhaye 920 */
450 nhaye 2976 function ajoutDossierInstruction($id, &$db, $val, $DEBUG, $dossier_instruction_type) {
451 nhaye 920 require_once '../obj/dossier.class.php';
452 nhaye 2976 $dossier = new dossier("]", $db, $DEBUG);
453 nhaye 920 foreach($dossier->champs as $value) {
454 nhaye 2976 $valInstr[$value] = null;
455 nhaye 920 }
456     require_once '../obj/dossier_autorisation_type_detaille.class.php';
457     $datd = new dossier_autorisation_type_detaille(
458 nhaye 2976 $this->valF['dossier_autorisation_type_detaille'],
459     $db,
460     $DEBUG
461     );
462 fmichon 1005
463     /*Ajout de la variable dossier_instruction_type à l'objet dossier pour le
464     * versionning
465     */
466     $dossier->setDossierInstructionType($dossier_instruction_type);
467    
468 nhaye 920 // Définition des valeurs à entrée dans la table
469 nhaye 1186 $valInstr['dossier_instruction_type']=$dossier_instruction_type;
470 nhaye 920 $valInstr['date_depot']=$this->dateDBToForm($this->valF['date_demande']);
471 nhaye 1571 $valInstr['date_dernier_depot']=$this->dateDBToForm($this->valF['date_demande']);
472 nhaye 1037 $valInstr['date_demande']=$this->dateDBToForm($this->valF['date_demande']);
473 nhaye 920 $valInstr['depot_initial']=$this->dateDBToForm($this->valF['date_demande']);
474 nhaye 2976 $valInstr['terrain_references_cadastrales']=
475     $this->valF['terrain_references_cadastrales'];
476     $valInstr['terrain_adresse_voie_numero']=
477     $this->valF['terrain_adresse_voie_numero'];
478 softime 2061 $valInstr['terrain_adresse_voie']=$this->valF['terrain_adresse_voie'];
479 nhaye 920 $valInstr['terrain_adresse_lieu_dit']=$this->valF['terrain_adresse_lieu_dit'];
480     $valInstr['terrain_adresse_localite']=$this->valF['terrain_adresse_localite'];
481 nhaye 2976 $valInstr['terrain_adresse_code_postal']=
482     $this->valF['terrain_adresse_code_postal'];
483 nhaye 920 $valInstr['terrain_adresse_bp']=$this->valF['terrain_adresse_bp'];
484     $valInstr['terrain_adresse_cedex']=$this->valF['terrain_adresse_cedex'];
485     $valInstr['terrain_superficie']=$this->valF['terrain_superficie'];
486     $valInstr['description']="";
487 fmichon 927 $valInstr['dossier_autorisation']=$this->valF['dossier_autorisation'];
488 nhaye 1262
489 vpihour 1273 /*
490     * Gestion de la qualification
491     * */
492 softime 2363 // Initialise le champ à false
493     $valInstr['a_qualifier'] = false;
494    
495     // Récupère l'information depuis le type de la demande
496     $qualification = $this->get_qualification($val['demande_type']);
497    
498     // Si le dossier doit être à qualifier
499     if ($qualification === 't') {
500     // Met le champ à true
501     $valInstr['a_qualifier'] = true;
502 vpihour 1273 }
503    
504 nhaye 2976 if($dossier->ajouter($valInstr, $db, $DEBUG) === false) {
505     return false;
506 vpihour 1777 }
507 vpihour 2302
508     //Affichage de message à l'utilisateur concernant un problème lors de
509 vpihour 2303 //l'affectation de l'instructeur au dossier d'instruction
510 vpihour 2302 if ($dossier->valF['dossier_autorisation'] === '' &&
511 nhaye 2976 $dossier->valF['instructeur'] === null){
512     $this->addToMessage(
513     _("Aucun instructeur compatible avec ce dossier, contactez votre administrateur afin d'en assigner un a ce dossier.")
514     );
515 vpihour 2302 }
516 nhaye 2976 elseif ( $dossier->valF['instructeur'] === null ){
517 vpihour 2302 if ($this->f->isAccredited("dossier_modifier_instructeur")) {
518 nhaye 2976 $this->addToMessage("<br/> ".
519     _("Pensez a assigner un instructeur a ce dossier.")
520     );
521 vpihour 2302 } else {
522 nhaye 2976 $this->addToMessage(
523     _("Aucun instructeur compatible avec ce dossier, contactez votre administrateur afin d'en assigner un a ce dossier.")
524     );
525 vpihour 2302 }
526     }
527    
528 nhaye 920 // Liaison du dossier ajouter à la demande
529     $this->valF['dossier_instruction'] = $dossier->valF['dossier'];
530     }
531    
532     /**
533 nhaye 2976 * Méthode permettant d'ajouter les données techniques d'un DA.
534     *
535     * @param integer $id identifiant de la demande
536     * @param database &$db handler de la base de donnée
537     * @param array $val tableau de valeurs postées via le formulaire
538     * @param boolean $DEBUG debug
539     *
540     * @return boolean false si erreur
541 vpihour 1374 */
542 nhaye 2976 function ajoutDonneesTechniquesDA($id, &$db, $val, $DEBUG) {
543 vpihour 1374
544     require_once '../obj/donnees_techniques.class.php';
545 nhaye 2976 $this->DTDA = new donnees_techniques("]", $db, $DEBUG);
546 vpihour 1374
547 nhaye 2976 // Champs tous à NULL car seul le champ concernant le dossier
548     // d'autorisation sera rempli
549     foreach($this->DTDA->champs as $value) {
550     $val[$value] = null;
551 vpihour 1374 }
552     // Ajout du numéro de dossier d'instruction
553 nhaye 2110 $val['dossier_autorisation']=$this->valF['dossier_autorisation'];
554 nhaye 2976 // Identifiant du cerfa
555     $val['cerfa'] = $this->getIdCerfa();
556 vpihour 3005
557     //On vérifie que ce type détaille de dossier d'autorisation a un CERFA
558     if ( $val['cerfa'] !== "" && is_numeric($val['cerfa'])){
559     // Ajout des données techniques
560     if($this->DTDA->ajouter($val, $db, $DEBUG) === false) {
561     return false;
562     }
563 nhaye 2976 }
564 vpihour 3005 else {
565     //On indique que le dossier d'autorisation n'a pas de données techniques
566     $this->DTDA = null;
567     //Aucun CERFA n'est paramétré pour ce type détaillé de dossier d'autorisation
568     return -1;
569     }
570 vpihour 1374 }
571    
572     /**
573 nhaye 2976 * Méthode permettant d'ajouter les données techniques d'un DI.
574     *
575     * @param integer $id identifiant de la demande
576     * @param database &$db handler de la base de donnée
577     * @param array $val tableau de valeurs postées via le formulaire
578     * @param boolean $DEBUG debug
579     *
580     * @return boolean false si erreur
581 nhaye 2110 */
582 nhaye 2976 function ajoutDonneesTechniquesDI($id, &$db, $val, $DEBUG) {
583    
584 vpihour 3005 //Si le dossier d'autorisation a des données techniques
585     if ( !is_null($this->DTDA) && $this->DTDA !== "" ){
586     require_once '../obj/donnees_techniques.class.php';
587     $this->DTDI = new donnees_techniques(']', $db, $DEBUG);
588     // Ajout du numéro de dossier d'instruction
589     $this->DTDA->valF['dossier_instruction'] = $this->valF['dossier_instruction'];
590     // Suppression du numéro de dossier d'autorisation
591     $this->DTDA->valF['dossier_autorisation'] = null;
592     // Identifiant du cerfa
593     $this->DTDA->valF['cerfa'] = $this->getIdCerfa();
594     // Ajout des données techniques
595     if($this->DTDI->ajouter($this->DTDA->valF, $db, $DEBUG) === false) {
596     return false;
597     }
598 nhaye 2976 }
599 vpihour 3005 else {
600     //Le dossier d'autorisation n'a pas de données techniques
601     return -1;
602     }
603 nhaye 2110 }
604    
605     /**
606 vpihour 2038 * Ajout des liens demandeurs / dossier d'autorisation s'ils n'y sont pas déjà
607 nhaye 907 **/
608 nhaye 920 function ajoutLiensDossierAutorisation($id, &$db, $val, $DEBUG) {
609     // Création des liens entre le dossier autorisation et les demandeurs
610 nhaye 907 include '../sql/pgsql/demande.form.inc.php';
611 nhaye 920 require_once '../obj/lien_dossier_autorisation_demandeur.class.php';
612     $ldad = new lien_dossier_autorisation_demandeur("]",$db,$DEBUG);
613     // Recupération des demandeurs liés à la demande
614 vpihour 2038 $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur.
615     " AND lien_demande_demandeur.demandeur NOT IN (
616     SELECT lien_dossier_autorisation_demandeur.demandeur
617     FROM ".DB_PREFIXE."lien_dossier_autorisation_demandeur
618     WHERE lien_dossier_autorisation_demandeur.dossier_autorisation =
619     '".$this->valF['dossier_autorisation']."'
620     )");
621 nhaye 920 $res = $db->query($sql);
622 vpihour 1777 $this->f->addToLog("ajoutLiensDossierAutorisation() : db->query(\"".$sql."\");", VERBOSE_MODE);
623     if ( database::isError($res)){
624     die();
625     }
626 nhaye 920 while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
627     $row['lien_dossier_autorisation_demandeur'] = NULL;
628     $row['dossier_autorisation'] = $this->valF['dossier_autorisation'];
629     $ldad->ajouter($row, $db, $DEBUG);
630     }
631     }
632    
633     /**
634     * Ajout des liens demandeurs / dossier d'autorisation
635     **/
636     function ajoutLiensDossierInstruction($id, &$db, $val, $DEBUG) {
637     // Création des liens entre le dossier instruction et les demandeurs
638     include '../sql/pgsql/demande.form.inc.php';
639     require_once '../obj/lien_dossier_demandeur.class.php';
640     $ldd = new lien_dossier_demandeur("]",$db,$DEBUG);
641     // Recupération des demandeurs liés à la demande
642     $sql = str_replace("<demande>",$this->valF['demande'],$sql_lien_demande_demandeur);
643     $res = $db->query($sql);
644 vpihour 1777 $this->f->addToLog("ajoutLiensDossierInstruction() : db->query(\"".$sql."\");", VERBOSE_MODE);
645     if ( database::isError($res)){
646     die();
647     }
648 nhaye 920 while($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
649     $row['lien_dossier_demandeur'] = NULL;
650     $row['dossier'] = $this->valF['dossier_instruction'];
651     $ldd->ajouter($row, $db, $DEBUG);
652     }
653     }
654    
655 fmichon 1005 /*
656     * Récupère l'identifiant d'un arrondissement à partir d'un code postal
657     */
658     function getArrondissement($terrain_adresse_code_postal){
659    
660     $arrondissement = NULL;
661    
662     $sql = "SELECT
663     arrondissement
664     FROM
665     ".DB_PREFIXE."arrondissement
666     WHERE
667     code_postal = '$terrain_adresse_code_postal' ";
668     $this->addToLog("demande.class.php : ".$sql." execute <br>", EXTRA_VERBOSE_MODE);
669    
670     $res = $this->db->query($sql);
671 vpihour 1777 $this->f->addToLog("getArrondissement() : db->query(\"".$sql."\")", VERBOSE_MODE);
672     if ( database::isError($res)){
673     die();
674     }
675 fmichon 1005
676     if( $res->numrows() > 0 ) {
677    
678     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
679     $arrondissement = $row['arrondissement'];
680     }
681    
682     return $arrondissement;
683     }
684    
685     /*
686     * Récupère l'évènement lié à un type de demande
687     */
688     function getEvenement($demande_type){
689    
690 nhaye 2977 $evenement = null;
691 fmichon 1005
692     $sql =
693     "SELECT
694     evenement
695     FROM
696     ".DB_PREFIXE."demande_type
697     WHERE
698     demande_type = $demande_type";
699    
700     $res = $this->db->query($sql);
701 vpihour 1777 $this->f->addToLog("getEvenement() : db->query(\"".$sql."\")", VERBOSE_MODE);
702     if ( database::isError($res)){
703     die();
704     }
705 fmichon 1005
706     if ( $res->numrows() > 0 ){
707    
708     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
709     $evenement = $row['evenement'];
710     }
711    
712     return $evenement;
713     }
714    
715 vpihour 2450
716 softime 2112
717     /**
718     * Retourne le libellé du dossier d'autorisation
719     * @param string $dossier_autorisation Identifiant du dossier d'autorisation
720     * @return string Libellé dossier d'autorisation
721     */
722     function get_dossier_autorisation_libelle($dossier_autorisation) {
723    
724     $dossier_autorisation_libelle = "";
725    
726     // Requête SQL
727     $sql = "SELECT
728     dossier_autorisation_libelle
729     FROM
730     ".DB_PREFIXE."dossier_autorisation
731     WHERE
732     dossier_autorisation = '$dossier_autorisation'";
733    
734     $dossier_autorisation_libelle = $this->db->getOne($sql);
735     $this->addToLog("get_dossier_autorisation_libelle(): db->getOne(\"".$sql."\")", VERBOSE_MODE);
736     database::isError($dossier_autorisation_libelle);
737    
738     // Retourne le résultat
739     return $dossier_autorisation_libelle;
740     }
741    
742     /**
743 nhaye 2977 * Retourne le libellé du dossier d'autorisation.
744     * @param string $dossier Identifiant du dossier d'autorisation
745     *
746 softime 2112 * @return string Libellé dossier d'autorisation
747     */
748     function get_dossier_libelle($dossier) {
749    
750     $dossier_libelle = "";
751    
752     // Requête SQL
753     $sql = "SELECT
754     dossier_libelle
755     FROM
756     ".DB_PREFIXE."dossier
757     WHERE
758     dossier = '$dossier'";
759    
760 nhaye 2977 $dossier_libelle = $this->db->getOne($sql);
761 softime 2112 $this->addToLog("get_dossier_libelle(): db->getOne(\"".$sql."\")", VERBOSE_MODE);
762     database::isError($dossier_libelle);
763    
764     // Retourne le résultat
765     return $dossier_libelle;
766     }
767 fmichon 1005
768 nhaye 920 /**
769     * Ajout des dossiers
770     **/
771     function triggerAjouter($id, &$db, $val, $DEBUG){
772 softime 2071
773 nhaye 920 include '../sql/pgsql/demande.form.inc.php';
774 softime 2071
775 nhaye 2976 if($this->valF["demande_type"] != null) {
776     $res = $db->query(
777     str_replace(
778     '<idx>',
779     $this->valF['demande_type'],
780     $sql_demande_type_details_by_id
781     )
782     );
783     $this->f->addToLog(
784     "triggerAjouter() : db->query(\"".
785     str_replace(
786     '<idx>',
787     $this->valF['demande_type'],
788     $sql_demande_type_details_by_id
789     )."\")",
790     VERBOSE_MODE
791     );
792 vpihour 1777 if ( database::isError($res)){
793     die();
794     }
795 nhaye 1808 // Attribut permettant de définir si un dossier a été créé
796 nhaye 2976 $this->ajoutDI = false;
797 nhaye 920 $dossier_type = $res->fetchRow(DB_FETCHMODE_ASSOC);
798 nhaye 907 // Création du dossier_autorisation
799 nhaye 1054 if($this->valF['dossier_autorisation'] == "") {
800 nhaye 2976 if($this->ajoutDossierAutorisation($id, $db, $val, $DEBUG) === false) {
801     $this -> addToMessage(
802     _("Erreur lors de l'enregistrement de la demande.")." ".
803     _("Contactez votre administrateur.")
804     );
805     $this->correct = false;
806     return false;
807     }
808     $this -> addToMessage(
809     _("Creation du dossier d'autorisation no").
810     $this->get_dossier_autorisation_libelle(
811     $this->valF['dossier_autorisation']
812     )
813     );
814 nhaye 2110 //Ajout des données techniques au dossier d'autorisation
815 nhaye 2976 if($this->ajoutDonneesTechniquesDA($id, $db, $val, $DEBUG) === false) {
816     $this -> addToMessage(
817     _("Erreur lors de l'enregistrement de la demande.")." ".
818     _("Contactez votre administrateur.")
819     );
820     $this->correct = false;
821     return false;
822     }
823 nhaye 2977 } else {
824     $sqlIdDTDA = "SELECT donnees_techniques
825     FROM ".DB_PREFIXE."donnees_techniques
826     WHERE dossier_autorisation='".
827     $this->valF['dossier_autorisation']."'";
828     $idDTDA = $this->db->getOne($sqlIdDTDA);
829     $this->addToLog(
830     "triggerAjouter(): db->getOne(\"".$sqlIdDTDA."\")",
831     VERBOSE_MODE
832     );
833     database::isError($idDTDA);
834 vpihour 3005
835     $this->DTDA = null;
836 vpihour 3088 if ($idDTDA!=="" && is_numeric($idDTDA)){
837 vpihour 3005 require_once '../obj/donnees_techniques.class.php';
838     $this->DTDA = new donnees_techniques(
839     $idDTDA,
840     $db,
841     $DEBUG
842     );
843     $this->DTDA->setValFFromVal();
844     }
845 nhaye 907 }
846 nhaye 2976 // Enregistrement du numéro dossier existant
847     // (il sera écrasé si un DI est créé)
848 nhaye 1808 if ($this->getParameter("idx_dossier") != "") {
849     $this->valF['dossier_instruction'] = $this->getParameter("idx_dossier");
850     }
851 nhaye 920 // Création du dossier d'instruction
852 nhaye 2976 if($dossier_type['dossier_instruction_type'] != null) {
853     if($this->ajoutDossierInstruction(
854     $id,
855     $db,
856     $val,
857     $DEBUG,
858     $dossier_type['dossier_instruction_type']
859     ) === false ) {
860     $this -> addToMessage(
861     _("Erreur lors de l'enregistrement de la demande.")." ".
862     _("Contactez votre administrateur.")
863     );
864     $this->correct = false;
865     return false;
866     }
867     $this -> addToMessage(
868     _("Creation du dossier d'instruction no").
869     $this->get_dossier_libelle($this->valF['dossier_instruction'])
870     );
871 nhaye 1808 // Attribut permettant de définir si un dossier a été créé.
872 nhaye 2976 $this->ajoutDI = true;
873 vpihour 1374
874     //Ajout des données techniques au dossier d'instruction
875 nhaye 2976 if($this->ajoutDonneesTechniquesDI($id, $db, $val, $DEBUG) === false){
876    
877     $this -> addToMessage(
878     _("Erreur lors de l'enregistrement de la demande.")." ".
879     _("Contactez votre administrateur.")
880     );
881     $this->correct = false;
882     return false;
883    
884     }
885 nhaye 907 }
886 softime 2071
887     // Si le dossier_instruction existe
888     if (isset($this->valF['dossier_instruction']) && $this->valF['dossier_instruction'] !== "" ) {
889 softime 2369
890 softime 2071 // Récupère les informations nécessaire pour créer le répertoire de numérisation
891     $getInfosForFoldername = $this->getInfosForFoldername($this->valF['dossier_instruction']);
892 softime 2369
893 softime 2071 // Création du répertoire pour la numérisation
894 softime 2369 $createFolder = $this->createFolder($getInfosForFoldername['dossier_autorisation'], $getInfosForFoldername['code'], $getInfosForFoldername['version']);
895    
896     // Si la création a échouée
897     if ($createFolder === false) {
898    
899     // Annule la validation
900 softime 2071 $this->correct = false;
901     // arrête le traitement entier
902     return false;
903 softime 2369
904     //
905     } else {
906    
907     //
908     $this->addToLog("createFolder() : Success", VERBOSE_MODE);
909 softime 2071 }
910     }
911 fmichon 1005
912     /*Ajout de l'arrondissement à partir du code postal*/
913     if ( !is_null($this->valF["terrain_adresse_code_postal"]) && is_numeric($this->valF["terrain_adresse_code_postal"]) ){
914    
915     $this->valF["arrondissement"] = $this->getArrondissement($this->valF["terrain_adresse_code_postal"]);
916     }
917 nhaye 907 }
918     }
919    
920     /**
921 nhaye 828 * Ajout des délégataires et pétitionnaires
922 nhaye 807 **/
923 nhaye 828 function triggerAjouterApres($id, &$db, $val, $DEBUG){
924 softime 2071
925 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
926 fmichon 1005
927 nhaye 920 // Ajout des lliens entre dossier_autorisation et demandeur
928 vpihour 2038 if(!empty($this->valF['dossier_autorisation'])) {
929 nhaye 920 $this->ajoutLiensDossierAutorisation($id, $db, $val, $DEBUG);
930     }
931     // Ajout des lliens entre dossier et demandeur
932 nhaye 1808 if($this->ajoutDI === TRUE) {
933 nhaye 920 $this->ajoutLiensDossierInstruction($id, $db, $val, $DEBUG);
934     }
935 nhaye 1246
936 nhaye 2110 // Duplication des lots (et leurs données techniques) et
937     // liaison au nouveau dossier_d'instruction
938 nhaye 1246 if(!empty($this->valF['dossier_autorisation']) AND $val['dossier_autorisation'] != "" ) {
939     $this->lienLotDossierInstruction($id, $db, $val, $DEBUG);
940     }
941 nmeucci 2889
942     /*Création du lien de téléchargement de récépissé de demande*/
943     if ( $this->valF['demande_type'] != "" && is_numeric($this->valF['demande_type'])
944     && isset($this->valF['dossier_instruction']) && $this->valF['dossier_instruction'] !== "" ){
945    
946     /*Récupérer l'événement lié à ce type de demande*/
947     $evenement = $this->getEvenement($this->valF['demande_type']);
948    
949     /*Récupération de la lettre type de l'événement*/
950     $lettretype = $this->f->getLettreType($evenement);
951    
952     /*Création d'une nouvelle instruction avec cet événement*/
953     /*Données*/
954     $valInstr['instruction']=NULL;
955    
956     $valInstr['destinataire']=$this->valF['dossier_instruction'];
957     $valInstr['dossier']=$this->valF['dossier_instruction'];
958     // Récupère la date de la demande
959     $valInstr['date_evenement']=$this->dateDBToForm($this->valF['date_demande']);
960     $valInstr['evenement']=$evenement;
961     $valInstr['lettretype']=$lettretype;
962     $valInstr['complement_om_html']="";
963     $valInstr['complement2_om_html']="";
964    
965     $valInstr['action']="initialisation";
966     $valInstr['delai']="2";
967     $valInstr['etat']="notifier";
968     $valInstr['accord_tacite']="Oui";
969     $valInstr['delai_notification']="1";
970     $valInstr['archive_delai']="0";
971     $valInstr['archive_date_complet']=NULL;
972     $valInstr['archive_date_dernier_depot']=NULL;
973     $valInstr['archive_date_rejet']=NULL;
974     $valInstr['archive_date_limite']=NULL;
975     $valInstr['archive_date_notification_delai']=NULL;
976     $valInstr['archive_accord_tacite']="Non";
977     $valInstr['archive_etat']="initialiser";
978     $valInstr['archive_date_decision']=NULL;
979     $valInstr['archive_avis']="";
980     $valInstr['archive_date_validite']=NULL;
981     $valInstr['archive_date_achevement']=NULL;
982     $valInstr['archive_date_chantier']=NULL;
983     $valInstr['archive_date_conformite']=NULL;
984     $valInstr['archive_incompletude']=NULL;
985 nhaye 3059 $valInstr['archive_incomplet_notifie']=NULL;
986 nmeucci 2889 $valInstr['archive_evenement_suivant_tacite']="";
987     $valInstr['archive_evenement_suivant_tacite_incompletude']=NULL;
988     $valInstr['archive_etat_pendant_incompletude']=NULL;
989     $valInstr['archive_date_limite_incompletude']=NULL;
990     $valInstr['archive_delai_incompletude']=NULL;
991     $valInstr['archive_autorite_competente']=NULL;
992     $valInstr['complement3_om_html']="";
993     $valInstr['complement4_om_html']="";
994     $valInstr['complement5_om_html']="";
995     $valInstr['complement6_om_html']="";
996     $valInstr['complement7_om_html']="";
997     $valInstr['complement8_om_html']="";
998     $valInstr['complement9_om_html']="";
999     $valInstr['complement10_om_html']="";
1000     $valInstr['complement11_om_html']="";
1001     $valInstr['complement12_om_html']="";
1002     $valInstr['complement13_om_html']="";
1003     $valInstr['complement14_om_html']="";
1004     $valInstr['complement15_om_html']="";
1005     $valInstr['avis_decision']=NULL;
1006     $valInstr['date_finalisation_courrier']=NULL;
1007     $valInstr['date_envoi_signature']=NULL;
1008     $valInstr['date_retour_signature']=NULL;
1009     $valInstr['date_envoi_rar']=NULL;
1010     $valInstr['date_retour_rar']=NULL;
1011     $valInstr['date_envoi_controle_legalite']=NULL;
1012     $valInstr['date_retour_controle_legalite']=NULL;
1013     $valInstr['signataire_arrete']=NULL;
1014     $valInstr['numero_arrete']=NULL;
1015     $valInstr['code_barres']=NULL;
1016     $valInstr['om_fichier_instruction']=NULL;
1017     $valInstr['om_final_instruction']=NULL;
1018     $valInstr['document_numerise']=NULL;
1019     $valInstr['autorite_competente']=NULL;
1020     $valInstr['duree_validite_parametrage']="0";
1021     $valInstr['duree_validite']="0";
1022    
1023     //Récupération des champs archive si cette demande a créée un dossier
1024     //d'instruction mais pas un P0
1025     if (!is_null($this->valF['dossier_instruction']) &&
1026     $this->valF['dossier_instruction'] !== "" ){
1027    
1028     //Requête
1029     $sql = "SELECT dossier_instruction_type.code
1030     FROM ".DB_PREFIXE."demande_type
1031     LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
1032     ON demande_type.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
1033     WHERE demande_type.demande_type = ".$this->valF['demande_type'];
1034     $res = $db->getOne($sql);
1035     $this->addToLog("triggerajouter(): db->getOne(\"".$sql."\");", VERBOSE_MODE);
1036     if (database::isError($res)) {
1037     die($res->getMessage());
1038     }
1039    
1040     //On vérifie que ce n'est pas un P0
1041     if ( strcmp($res, "P") !== 0 ){
1042    
1043     $res = $this->getArchiveInstruction($this->valF['dossier_instruction']);
1044    
1045     if (isset($res['archive_delai'])) {
1046     $valInstr['archive_delai']=$res["archive_delai"];
1047     }
1048     if (isset($res['archive_date_complet'])) {
1049     $valInstr['archive_date_complet']=$res["archive_date_complet"];
1050     }
1051     if (isset($res['archive_date_dernier_depot'])) {
1052     $valInstr['archive_date_dernier_depot']=$res["archive_date_dernier_depot"];
1053     }
1054     if (isset($res['archive_date_rejet'])) {
1055     $valInstr['archive_date_rejet']=$res["archive_date_rejet"];
1056     }
1057     if (isset($res['archive_date_limite'])) {
1058     $valInstr['archive_date_limite']=$res["archive_date_limite"];
1059     }
1060     if (isset($res['archive_date_notification_delai'])) {
1061     $valInstr['archive_date_notification_delai']=$res["archive_date_notification_delai"];
1062     }
1063     if (isset($res['archive_accord_tacite'])) {
1064     $valInstr['archive_accord_tacite']=$res["archive_accord_tacite"];
1065     }
1066     if (isset($res['archive_etat'])) {
1067     $valInstr['archive_etat']=$res["archive_etat"];
1068     }
1069     if (isset($res['archive_date_decision'])) {
1070     $valInstr['archive_date_decision']=$res["archive_date_decision"];
1071     }
1072     if (isset($res['archive_avis'])) {
1073     $valInstr['archive_avis']=$res["archive_avis"];
1074     }
1075     if (isset($res['archive_date_validite'])) {
1076     $valInstr['archive_date_validite']=$res["archive_date_validite"];
1077     }
1078     if (isset($res['archive_date_achevement'])) {
1079     $valInstr['archive_date_achevement']=$res["archive_date_achevement"];
1080     }
1081     if (isset($res['archive_date_chantier'])) {
1082     $valInstr['archive_date_chantier']=$res["archive_date_chantier"];
1083     }
1084     if (isset($res['archive_date_conformite'])) {
1085     $valInstr['archive_date_conformite']=$res["archive_date_conformite"];
1086     }
1087     if (isset($res['archive_incompletude'])) {
1088     $valInstr['archive_incompletude']=$res["archive_incompletude"];
1089     }
1090 nhaye 3059 if (isset($res['archive_incomplet_notifie'])) {
1091     $valInstr['archive_incomplet_notifie']=$res["archive_incomplet_notifie"];
1092     }
1093 nmeucci 2889 if (isset($res['archive_evenement_suivant_tacite'])) {
1094     $valInstr['archive_evenement_suivant_tacite']=$res["archive_evenement_suivant_tacite"];
1095     }
1096     if (isset($res['archive_evenement_suivant_tacite_incompletude'])) {
1097     $valInstr['archive_evenement_suivant_tacite_incompletude']=$res["archive_evenement_suivant_tacite_incompletude"];
1098     }
1099     if (isset($res['archive_etat_pendant_incompletude'])) {
1100     $valInstr['archive_etat_pendant_incompletude']=$res["archive_etat_pendant_incompletude"];
1101     }
1102     if (isset($res['archive_date_limite_incompletude'])) {
1103     $valInstr['archive_date_limite_incompletude']=$res["archive_date_limite_incompletude"];
1104     }
1105     if (isset($res['archive_delai_incompletude'])) {
1106     $valInstr['archive_delai_incompletude']=$res["archive_delai_incompletude"];
1107     }
1108     if (isset($res['archive_autorite_competente'])) {
1109     $valInstr['archive_autorite_competente']=$res["archive_autorite_competente"];
1110     }
1111     }
1112     }
1113    
1114     /*Fichier requis*/
1115     require_once '../obj/instruction.class.php';
1116    
1117     /*Création d'un nouveau dossier*/
1118     $instruction = new instruction("]",$db,$DEBUG);
1119     $instruction->valF = "";
1120     $instruction->ajouter($valInstr, $db, $DEBUG);
1121    
1122     //Finalisation du document
1123     $_GET['obj']='instruction';
1124     $_GET['idx']=$instruction->valF[$instruction->clePrimaire];
1125     $instruction_final = new instruction($_GET['idx'],$db,$DEBUG);
1126     if($instruction_final->getVal('lettretype') != "") {
1127     $res = $instruction_final->finaliser('', 1, '', '');
1128     }
1129    
1130     /*Si la création de l'instruction a réussie*/
1131     if ( $instruction->valF['instruction'] != "" ){
1132 softime 3054
1133     // Mise à jour de la demande
1134     $this->valF['instruction_recepisse'] = $instruction->valF['instruction'];
1135     $this->valF['date_demande'] = $this->dateDBToForm($this->valF['date_demande']);
1136     $demande_instance = new demande($this->valF['demande'], $db, $DEBUG);
1137     $demande_instance->modifier($this->valF, $db, $DEBUG);
1138 nmeucci 2889
1139     /*Affichage du récépissé de la demande*/
1140     $this -> addToMessage("<br/><a
1141     class='lien'
1142     href='"
1143     .((isset($res['pdf'])&&$instruction->valF['om_final_instruction'])?$res['pdf']:
1144     "../pdf/pdflettretype.php?obj=".$lettretype."&amp;idx=".$instruction->valF['instruction'])."'
1145     target='_blank'>
1146     <span
1147     class=\"om-icon om-icon-16 om-icon-fix pdf-16\"
1148     title=\""._("Telecharger le recepisse de la demande")."\">".
1149     _("Telecharger le recepisse de la demande").
1150     "</span>
1151     &nbsp;&nbsp;&nbsp;&nbsp;".
1152     _("Telecharger le recepisse de la demande")."
1153     </a><br/>");
1154     }
1155     /*Sinon affiche un message d'erreur*/
1156     else {
1157    
1158     $this -> addToMessage(_("Une erreur s'est produite lors de la creation du recepisse"));
1159     }
1160     }
1161 nhaye 828 }
1162 vpihour 1058
1163     /*Ajout du lien demande / demandeur(s)*/
1164 nhaye 828 function triggerModifierApres($id, &$db, $val, $DEBUG){
1165 nhaye 1039 $this->listeDemandeur("demande",$this->val[array_search('demande', $this->champs)]);
1166 nhaye 828 $this->insertLinkDemandeDemandeur($db, $DEBUG);
1167 nhaye 838 $this->valIdDemandeur=$this->postedIdDemandeur;
1168 nhaye 828
1169     }
1170    
1171     /**
1172 nhaye 1246 * Gestion des liens entre les lots du DA et le nouveau dossier
1173     **/
1174     function lienLotDossierInstruction($id, $db, $val, $DEBUG) {
1175     require_once ("../obj/lot.class.php");
1176     $lot = new lot("]", $db, $DEBUG);
1177     require_once ("../obj/lien_lot_demandeur.class.php");
1178     $lld = new lien_lot_demandeur("]", $db, $DEBUG);
1179    
1180    
1181     $sqlLots = "SELECT * FROM ".DB_PREFIXE."lot
1182     WHERE dossier_autorisation = '".$this->valF['dossier_autorisation']."'";
1183     $resLot = $db -> query($sqlLots);
1184     $this->f->addToLog("db->query(\"".$sqlLots."\");", VERBOSE_MODE);
1185     $this->f->isDatabaseError($resLot);
1186     while ($rowLot=& $resLot->fetchRow(DB_FETCHMODE_ASSOC)){
1187     // Insertion du nouveau lot
1188     $valLot['lot'] = "";
1189     $valLot['libelle'] = $rowLot['libelle'];
1190 nhaye 2976 $valLot['dossier_autorisation'] = null;
1191 nhaye 2082 $valLot['dossier'] = $this->valF['dossier_instruction'];
1192 nhaye 1246 $lot -> ajouter($valLot, $db, $DEBUG);
1193 nhaye 1247
1194 nhaye 1246 //Insertion des liens entre dossier et les lots
1195     $sqlDemandeurs = "SELECT * FROM ".DB_PREFIXE."lien_lot_demandeur
1196     WHERE lot = ".$rowLot['lot'];
1197     $res = $db -> query($sqlDemandeurs);
1198 nhaye 2976 $this->f->addToLog(
1199     "lienLotDossierInstruction() : db->query(\"".$sqlDemandeurs."\");",
1200     VERBOSE_MODE
1201     );
1202 vpihour 1777 if ( database::isError($res)){
1203     die();
1204     }
1205 nhaye 1246
1206     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1207     $valLld["lien_lot_demandeur"] = "";
1208     $valLld["lot"]=$lot->valF['lot'];
1209     $valLld["demandeur"] = $row['demandeur'];
1210     $valLld["petitionnaire_principal"] = $row['petitionnaire_principal'];
1211     $lld->ajouter($valLld, $db, $DEBUG);
1212     }
1213 nhaye 2110
1214     // Récupération des données techniques du nouveau lots
1215 nhaye 2976 if($this->ajoutDonneesTechniquesLots(
1216     $id,
1217     $db,
1218     $val,
1219     $DEBUG,
1220     $rowLot['lot'],
1221     $lot->valF['lot']) === false) {
1222     $this -> addToMessage(
1223     _("Erreur lors de l'enregistrement de la demande.")." ".
1224     _("Contactez votre administrateur.")
1225     );
1226     $this->correct = false;
1227     return false;
1228     }
1229 nhaye 2110
1230 nhaye 1246 }
1231     }
1232    
1233 nhaye 2110
1234 nhaye 1246 /**
1235 nhaye 2976 * Méthode permettant d'ajouter les données techniques d'un lot.
1236     *
1237     * @param integer $id identifiant de la demande
1238     * @param database &$db handler de la base de donnée
1239     * @param array $val tableau de valeurs postées via le formulaire
1240     * @param boolean $DEBUG debug
1241     * @param integer $lotInit identifiant de lot initial
1242     * @param integer $lotDest identifiant du lot qui va recevoir les données
1243     *
1244     * @return boolean false si erreur
1245 nhaye 2110 */
1246 nhaye 2976 function ajoutDonneesTechniquesLots($id, &$db, $val, $DEBUG, $lotInit, $lotDest) {
1247     // Requete permettant de recupérer les données techniques du lot passé
1248     // en paramètre ($lotInit)
1249     $sql_get_dt = "
1250     SELECT donnees_techniques
1251     FROM ".DB_PREFIXE."donnees_techniques
1252     WHERE lot=".$lotInit;
1253 nhaye 2110 $id_dt = $this->f->db->getOne($sql_get_dt);
1254 nhaye 2976 // Si des données techniques sont liées au lots on les "copie" et
1255     // on les lies au lot passé en paramètre (lotDest)
1256     if(isset($id_dt) and !empty($id_dt)) {
1257     $this->f->addToLog(
1258     "ajoutDonneesTechniquesLots() : db->getone(\"".$sql_get_dt."\");",
1259     VERBOSE_MODE
1260     );
1261 nhaye 2110 if ( database::isError($id_dt)){
1262     // Appel de la methode de recuperation des erreurs
1263     $this->erreur_db($id_dt->getDebugInfo(), $id_dt->getMessage(), '');
1264     return false;
1265     }
1266     require_once '../obj/donnees_techniques.class.php';
1267 nhaye 2976 $donnees_techniques = new donnees_techniques($id_dt, $db, $DEBUG);
1268 nhaye 2110
1269     // Récupération des données dans le tableau des valeurs à insérer
1270     foreach($donnees_techniques->champs as $value) {
1271     $val[$value] = $donnees_techniques->getVal($value);
1272     }
1273     // Modification du lien vers le nouveau lot
1274     $val["lot"] = $lotDest;
1275 nhaye 2976 // Identifiant du cerfa
1276     $val['cerfa'] = $this->getIdCerfa();
1277 nhaye 2110 // Ajout des données techniques
1278 nhaye 2976 if($donnees_techniques->ajouter($val, $db, $DEBUG) === false) {
1279     return false;
1280     }
1281 nhaye 2110 }
1282     }
1283    
1284     /**
1285 vpihour 1058 * Gestion des liens entre la demande et les demandeurs recemment ajoutés
1286 nhaye 828 **/
1287     function insertLinkDemandeDemandeur($db, $DEBUG) {
1288     //
1289     require_once "../obj/lien_demande_demandeur.class.php";
1290 nhaye 838 // Comparaison de l'id petitionnaire principal
1291     if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
1292     !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
1293     $this->valIdDemandeur['petitionnaire_principal'] !=
1294     $this->postedIdDemandeur['petitionnaire_principal']) {
1295     // Ajout du nouveau lien
1296     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
1297     if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
1298     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
1299 nhaye 807 }
1300 nhaye 828 }
1301 nhaye 838
1302     // Comparaison du delegataire
1303     if(isset($this->postedIdDemandeur['delegataire']) AND
1304     !empty($this->postedIdDemandeur['delegataire']) AND
1305     $this->valIdDemandeur['delegataire'] !=
1306     $this->postedIdDemandeur['delegataire']) {
1307     // Ajout du nouveau lien
1308     $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
1309     if(!empty($this->valIdDemandeur['delegataire'])) {
1310     $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
1311     }
1312     }
1313    
1314     // Comparaison des different petitionnaires
1315     if(isset($this->postedIdDemandeur['petitionnaire'])) {
1316     // Suppression des liens non valides
1317     foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
1318     if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
1319     $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
1320     }
1321     }
1322     // Ajout des nouveaux liens
1323     foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
1324     if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
1325     $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
1326     }
1327     }
1328     }
1329     }
1330    
1331    
1332     /**
1333     * Fonction permettant d'ajouter un lien
1334     * entre la table demande et demandeur
1335     **/
1336     function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
1337     $lienAjout = new lien_demande_demandeur(
1338     "]",
1339     $db,
1340     $DEBUG);
1341     $lien = array('lien_demande_demandeur' => "",
1342     'petitionnaire_principal' => (($principal)?"t":"f"),
1343     'demande' => $this->valF['demande'],
1344     'demandeur' => $id);
1345     $lienAjout->ajouter($lien, $db, $DEBUG);
1346     $lienAjout->__destruct();
1347     }
1348    
1349     /**
1350     * Fonction permettant de supprimer un lien
1351     * entre la table demande et demandeur
1352     **/
1353     function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
1354     // Suppression
1355     $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
1356     "WHERE demande=".$this->valF['demande'].
1357     " AND demandeur=".$id;
1358     // Execution de la requete de suppression de l'objet
1359     $res = $db->query($sql);
1360     // Logger
1361 vpihour 1777 $this->f->addToLog("deleteLinkDemandeDemandeur(): db->query(\"".$sql."\");", VERBOSE_MODE);
1362     if ( database::isError($res)){
1363     die();
1364     }
1365 nhaye 838
1366     }
1367    
1368 vpihour 1058 /*
1369     * Teste si le lien entre une demande et un demandeur existe
1370     * */
1371 nhaye 838 function isLinkDemandeDemandeurExist($idDemandeur) {
1372     $sql = "SELECT count(*)
1373     FROM ".DB_PREFIXE."lien_demande_demandeur
1374     WHERE demande = ".$this->valF['demande'].
1375     "AND demandeur = ".$idDemandeur;
1376     $count = $this->f->db->getOne($sql);
1377 vpihour 1777 $this->f->addToLog("isLinkDemandeDemandeurExist() : db->getone(\"".$sql."\");", VERBOSE_MODE);
1378     if ( database::isError($count)){
1379     die();
1380     }
1381 nhaye 838 if ($count === 0) {
1382     return false;
1383 nhaye 828 } else {
1384 nhaye 838 return true;
1385 nhaye 828 }
1386 nhaye 838
1387 nhaye 828 }
1388    
1389     /**
1390     * Methode de recupération des valeurs postées
1391     **/
1392     function getPostedValues() {
1393     // Récupération des demandeurs dans POST
1394 nmeucci 3239 if ($this->f->get_submitted_post_value('petitionnaire_principal') !== null OR
1395     $this->f->get_submitted_post_value('delegataire') !== null OR
1396     $this->f->get_submitted_post_value('petitionnaire') !== null) {
1397     if ($this->f->get_submitted_post_value('petitionnaire_principal') !== null AND
1398     $this->f->get_submitted_post_value('petitionnaire_principal') != '') {
1399     $this->postedIdDemandeur['petitionnaire_principal'] = $this->f->get_submitted_post_value('petitionnaire_principal');
1400 nhaye 807 }
1401 nmeucci 3239 if ($this->f->get_submitted_post_value('delegataire') !== null AND
1402     $this->f->get_submitted_post_value('delegataire') != '') {
1403     $this->postedIdDemandeur['delegataire'] = $this->f->get_submitted_post_value('delegataire');
1404 nhaye 828 }
1405 nmeucci 3239 if ($this->f->get_submitted_post_value('petitionnaire') !== null AND
1406     $this->f->get_submitted_post_value('petitionnaire') != '') {
1407     $this->postedIdDemandeur['petitionnaire'] = $this->f->get_submitted_post_value('petitionnaire');
1408 nhaye 828 }
1409 nhaye 807 }
1410 vpihour 676 }
1411 fmichon 1713
1412 nhaye 828 /**
1413 fmichon 1713 * Méthode permettant de récupérer les id des demandeurs liés à la table
1414     * liée passée en paramètre
1415     *
1416     * @param string $from Table liée : "demande", "dossier", dossier_autorisation"
1417     * @param string $id Identifiant (clé primaire de la table liée en question)
1418     */
1419 nhaye 1039 function listeDemandeur($from, $id) {
1420 nhaye 828 // Récupération des demandeurs de la base
1421 fmichon 1723 $sql = "SELECT demandeur.demandeur,
1422     demandeur.type_demandeur,
1423     lien_".$from."_demandeur.petitionnaire_principal
1424     FROM ".DB_PREFIXE."lien_".$from."_demandeur
1425     INNER JOIN ".DB_PREFIXE."demandeur
1426     ON demandeur.demandeur=lien_".$from."_demandeur.demandeur
1427     WHERE ".$from." = '".$id."'";
1428     $res = $this->f->db->query($sql);
1429     $this->f->addToLog("listeDemandeur(): db->query(\"".$sql."\")", VERBOSE_MODE);
1430 vpihour 1777 if ( database::isError($res)){
1431     die();
1432     }
1433 fmichon 1723 // Stockage du résultat dans un tableau
1434     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1435     if ($row['petitionnaire_principal'] == 't' AND
1436     $row['type_demandeur']=="petitionnaire") {
1437     $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
1438     } elseif ($row['petitionnaire_principal'] == 'f' AND
1439     $row['type_demandeur']=="petitionnaire"){
1440     $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
1441     } elseif ($row['type_demandeur']=="delegataire"){
1442     $this->valIdDemandeur['delegataire']=$row['demandeur'];
1443 nhaye 828 }
1444     }
1445     }
1446 nhaye 807
1447 nhaye 1037
1448 nhaye 807 /**
1449 nhaye 1037 * Surcharge du bouton retour afin de retourner sur la recherche de dossiers
1450     * d'instruction existant
1451     */
1452     function retour($premier = 0, $recherche = "", $tricol = "") {
1453    
1454     echo "\n<a class=\"retour\" ";
1455     echo "href=\"";
1456     //
1457     if($this->getParameter("idx_dossier") != "") {
1458     echo "tab.php?";
1459     echo "obj=recherche_dossier";
1460    
1461     } else {
1462     if($this->getParameter("retour")=="form" AND !($this->getParameter("validation")>0 AND $this->getParameter("maj")==2 AND $this->correct)) {
1463     echo "form.php?";
1464     } else {
1465     echo "tab.php?";
1466     }
1467     echo "obj=".get_class($this);
1468     if($this->getParameter("retour")=="form") {
1469     echo "&amp;idx=".$this->getParameter("idx");
1470 softime 2093 echo "&amp;idz=".$this->getParameter("idz");
1471 nhaye 1037 echo "&amp;action=3";
1472     }
1473     }
1474     echo "&amp;premier=".$this->getParameter("premier");
1475     echo "&amp;tricol=".$this->getParameter("tricol");
1476     echo "&amp;recherche=".$this->getParameter("recherche");
1477     echo "&amp;selectioncol=".$this->getParameter("selectioncol");
1478     echo "&amp;advs_id=".$this->getParameter("advs_id");
1479     echo "&amp;valide=".$this->getParameter("valide");
1480     //
1481     echo "\"";
1482     echo ">";
1483     //
1484     echo _("Retour");
1485     //
1486     echo "</a>\n";
1487    
1488     }
1489    
1490    
1491     /**
1492 fmichon 1723 * Cette méthode permet d'afficher des informations spécifiques dans le
1493     * formulaire de l'objet
1494     *
1495     * @param integer $maj Mode de mise à jour
1496 nhaye 807 */
1497     function formSpecificContent($maj) {
1498 fmichon 1723
1499     /**
1500     * Gestion du bloc des demandeurs
1501     */
1502     // Si le mode est (modification ou suppression ou consultation) ET que
1503     // le formulaire n'est pas correct (c'est-à-dire que le formulaire est
1504     // actif)
1505     if (!$this->correct AND $maj != 0) {
1506     // Alors on récupère les demandeurs dans la table lien pour
1507     // affectation des résultats dans this->valIdDemandeur
1508 nhaye 1039 $this->listeDemandeur("demande", $this->val[array_search('demande', $this->champs)]);
1509 nhaye 838 }
1510 fmichon 1723
1511     // Si le mode est (ajout ou modification) ET que le formulaire n'est pas
1512     // correct (c'est-à-dire que le formulaire est actif)
1513     if ($maj < 2 AND !$this->correct) {
1514     // Alors on positionne le marqueur linkable a true qui permet
1515     // d'afficher ou non les actions de gestion des demandeurs
1516 nhaye 838 $linkable = true;
1517     } else {
1518 fmichon 1723 // Sinon on positionne le marqueur linkable a false qui permet
1519     // d'afficher ou non les actions de gestion des demandeurs
1520 nhaye 838 $linkable = false;
1521     }
1522 nhaye 1020
1523 fmichon 1723 // Affichage des demandeurs et des actions
1524 nhaye 807 // Conteneur de la listes des demandeurs
1525 nhaye 1097 echo "<div id=\"liste_demandeur\" class=\"demande_hidden_bloc col_12\">";
1526 nhaye 807 echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
1527     echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
1528     ._("Petitionnaire")."</legend>";
1529     // Si des demandeurs sont liés à la demande
1530 nhaye 828 require_once "../obj/petitionnaire.class.php";
1531     require_once "../obj/delegataire.class.php";
1532 nhaye 1097 // Affichage du bloc pétitionnaire principal / délégataire
1533     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1534 nhaye 1672 echo "<div id=\"petitionnaire_principal_delegataire\">";
1535 nhaye 1097 // Affichage de la synthèse
1536     if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
1537     !empty($this->valIdDemandeur["petitionnaire_principal"])) {
1538     $demandeur = new petitionnaire(
1539     $this->valIdDemandeur["petitionnaire_principal"],
1540     $this->f->db,false);
1541     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
1542     $demandeur -> __destruct();
1543     } elseif ( isset ($this->postedIdDemandeur["petitionnaire_principal"]) AND
1544     !empty($this->postedIdDemandeur["petitionnaire_principal"]) ) {
1545     $demandeur = new petitionnaire(
1546     $this->postedIdDemandeur["petitionnaire_principal"],
1547     $this->f->db,false);
1548     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
1549     $demandeur -> __destruct();
1550     }
1551     // Si en édition de formulaire
1552     if($maj < 2) {
1553     // Bouton d'ajout du pétitionnaire principal
1554     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1555     echo "<span id=\"add_petitionnaire_principal\"
1556     class=\"om-form-button add-16\">".
1557     _("Saisir le petitionnaire principal").
1558     "</span>";
1559     }
1560     // Bouton d'ajout du delegataire
1561     // L'ID DU DIV ET DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1562     echo "<div id=\"delegataire\">";
1563     // Affichage de la synthèse
1564     if (isset ($this->valIdDemandeur["delegataire"]) AND
1565     !empty($this->valIdDemandeur["delegataire"])) {
1566     $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
1567     $this->f->db,false);
1568     $demandeur -> afficherSynthese("delegataire", $linkable);
1569     $demandeur -> __destruct();
1570     } elseif ( isset ($this->postedIdDemandeur["delegataire"]) AND
1571     !empty($this->postedIdDemandeur["delegataire"]) ) {
1572 nhaye 807
1573 nhaye 1097 $demandeur = new delegataire($this->postedIdDemandeur["delegataire"],
1574     $this->f->db,false);
1575     $demandeur -> afficherSynthese("delegataire", $linkable);
1576     $demandeur -> __destruct();
1577     }
1578     if($maj < 2) {
1579     echo "<span id=\"add_delegataire\"
1580 vpihour 1075 class=\"om-form-button add-16\">".
1581 nmeucci 2846 _("Saisir un autre correspondant").
1582 vpihour 1051 "</span>";
1583 nhaye 1097 }
1584     echo "</div>";
1585 nhaye 1118 echo "<div class=\"both\"></div>";
1586 nhaye 1097 echo "</div>";
1587     // Bloc des pétitionnaires secondaires
1588     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1589 nhaye 1672 echo "<div id=\"listePetitionnaires\">";
1590 fmichon 1005
1591 nhaye 1097 // Affichage de la synthèse
1592     if (isset ($this->valIdDemandeur["petitionnaire"]) AND
1593     !empty($this->valIdDemandeur["petitionnaire"])) {
1594    
1595     foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
1596     $demandeur = new petitionnaire($petitionnaire,
1597     $this->f->db,false);
1598     $demandeur -> afficherSynthese("petitionnaire", $linkable);
1599 nhaye 1065 $demandeur -> __destruct();
1600     }
1601    
1602 nhaye 1097 } elseif ( isset ($this->postedIdDemandeur["petitionnaire"]) AND
1603     !empty($this->postedIdDemandeur["petitionnaire"]) ) {
1604     foreach ($this->postedIdDemandeur["petitionnaire"] as $petitionnaire) {
1605     $demandeur = new petitionnaire($petitionnaire,
1606     $this->f->db,false);
1607     $demandeur -> afficherSynthese("petitionnaire", $linkable);
1608     $demandeur -> __destruct();
1609 nhaye 828 }
1610 nhaye 1097 }
1611     if ($maj < 2) {
1612     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1613     echo "<span id=\"add_petitionnaire\"
1614     class=\"om-form-button add-16\">".
1615     _("Ajouter un petitionnaire")
1616     ."</span>";
1617     }
1618     echo "</div>";
1619 nhaye 807 echo "</fieldset>";
1620 softime 2313 // Champ flag permettant de récupérer la valeur de l'option sig pour
1621     // l'utiliser en javascript, notamment lors du chargement de l'interface
1622     // pour les références cadastrales
1623     // XXX Si un widget pour les références cadastrales existait, il n'y
1624     // aurait pas besoin de faire cela
1625     echo "<input id='option_sig' type='hidden' value='".$this->f->getParameter("option_sig")."' name='option_sig'>";
1626 vpihour 2364 echo "</div>";
1627 nhaye 807 }
1628    
1629 nhaye 1097 // {{{
1630    
1631     // getter
1632     function getValIdDemandeur() {
1633     return $this->valIdDemandeur;
1634     }
1635     // setter
1636     function setValIdDemandeur($valIdDemandeur) {
1637     $this->valIdDemandeur = $valIdDemandeur;
1638     }
1639 vpihour 1106
1640     //Supression du lien entre la demandeur et le(s) demandeur(s)
1641     function triggerSupprimer($id, &$db, $val, $DEBUG){
1642    
1643     //Création de la requête
1644     $sql = "DELETE FROM
1645     ".DB_PREFIXE."lien_demande_demandeur
1646     WHERE
1647     demande = $id";
1648    
1649     $res = $this->f->db->query($sql);
1650 vpihour 1777 $this->f->addToLog("triggerSupprimer() : db->query(\"".$sql."\")");
1651     if ( database::isError($res)){
1652     die();
1653     }
1654 vpihour 1106 }
1655    
1656 nhaye 1097 // }}}
1657 softime 2071
1658    
1659     /**
1660     * Cette fonction permet de récupérer les informations nécessaires
1661     * à la génération du nom du répertoire
1662     * @param string $dossier Identifiant du dossier
1663     * @return array Tableau des résultats
1664     */
1665     private function getInfosForFoldername($dossier) {
1666    
1667     //Requête SQL
1668 softime 2204 $sql = "SELECT dossier.dossier_autorisation, dossier_instruction_type.code, dossier.version
1669 softime 2071 FROM ".DB_PREFIXE."dossier
1670     LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
1671     ON dossier_instruction_type.dossier_instruction_type = dossier.dossier_instruction_type
1672     WHERE dossier.dossier = '".$dossier."'";
1673     $res = $this->f->db->query($sql);
1674     $this->addToLog("getInfosForFoldername() : db->query(".$sql.")", VERBOSE_MODE);
1675     database::isError($res);
1676    
1677     // tableau des résultats
1678     $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
1679 vpihour 2119
1680     //Formatage du numéro de version
1681 vpihour 2131 require_once '../obj/dossier.class.php';
1682     $dossier = new dossier($dossier,$this->db,DEBUG);
1683 softime 2204 $row['version'] = $dossier->getNumeroVersionDossierInstructionType($dossier->getVal('dossier_autorisation'), $dossier->getVal('dossier_instruction_type'), $row['version'], false);
1684 vpihour 2119
1685 softime 2071 // retourne le tableau des résultats
1686     return $row;
1687     }
1688    
1689     /**
1690     * Cette fonction permet la création du répertoire dans le dossier de numérisation
1691     * @param string $dossier_autorisation Identifiant dossier d'autorisation
1692     * @param string $code Type du dossier d'instruction
1693     * @param int $version Numéro de version du dossier
1694     * @return boolean Vrai ou Faux
1695     */
1696     private function createFolder($dossier_autorisation, $code, $version) {
1697    
1698 softime 2369 // Nom du répertoire
1699 softime 2071 $foldername = $dossier_autorisation.".".$code.$version;
1700    
1701 softime 2369 // Vérifie le paramètrage du répertoire de numérisation
1702 softime 2072 if (isset($this->f->config["path_scan"])) {
1703 softime 2369
1704     // Vérifie que le répertoire existe
1705     if (is_dir($this->f->config["path_scan"])) {
1706    
1707     // Répertoire des "à traiter"
1708     $dir = $this->f->config["path_scan"]."Todo/";
1709    
1710     // Si le répertore existe déjà le répertoire n'est pas crée
1711     if (file_exists($dir.$foldername)) {
1712    
1713     //
1714     return true;
1715     }
1716    
1717     // Vérifie que le répêrtoire des "à traiter" existe
1718     if (is_dir($dir)) {
1719    
1720     // Création du répertoire
1721     mkdir($dir.$foldername, 0777);
1722     //
1723     return true;
1724     }
1725    
1726     // Message d'erreur
1727     $this->msg = "";
1728     $this->addToErrors ('', _("Le repertoire Todo n'existe pas.") . " " . _("Veuillez contacter votre administrateur."), "createFolder() : Faillure");
1729     //
1730     return false;
1731    
1732 softime 2072 }
1733 softime 2369
1734     // Message d'erreur
1735     $this->msg = "";
1736     $this->addToErrors ('', _("Le repertoire de numerisation configure n'existe pas.") . " " . _("Veuillez contacter votre administrateur."), "createFolder() : Faillure");
1737     //
1738     return false;
1739    
1740 softime 2071 }
1741    
1742 softime 2369 // Message d'erreur
1743     $this->msg = "";
1744     $this->addToErrors ('', _("Le repertoire de numerisation n'a pas ete configure.") . " " . _("Veuillez contacter votre administrateur."), "createFolder() : Faillure");
1745     //
1746 softime 2071 return false;
1747     }
1748    
1749 softime 2363 /**
1750     * Récupère le champ "qualification" du type de la demande
1751     * @param integer $demande_type Identifiant du type de la demande
1752     * @return boolean
1753     */
1754     function get_qualification($demande_type) {
1755    
1756     // Initialise le résultat
1757     $qualification = "";
1758    
1759     // Si la condition existe
1760 softime 2365 if (is_numeric($demande_type)) {
1761 softime 2363
1762     // Requête SQL
1763     $sql = "SELECT qualification
1764     FROM ".DB_PREFIXE."demande_type
1765     WHERE demande_type = $demande_type";
1766     $qualification = $this->db->getOne($sql);
1767 softime 2365 $this->f->addToLog("get_qualification() : db->getOne(\"".$sql."\")",
1768     VERBOSE_MODE);
1769 softime 2363 $this->f->isDatabaseError($qualification);
1770     }
1771    
1772     // Retourne le résultat
1773     return $qualification;
1774     }
1775    
1776 vpihour 2643 /**
1777     * Récupère les champs archive_* d'une instruction
1778     * @param string $dossier L'identifiant du dossier d'instruction
1779     */
1780     public function getArchiveInstruction($dossierID){
1781    
1782     //On récupère les données du dernier DI accordé
1783     $sql = "SELECT dossier.delai, dossier.accord_tacite, dossier.etat,
1784     dossier.avis_decision,
1785     to_char(dossier.date_complet, 'DD/MM/YYYY') as date_complet,
1786     to_char(dossier.date_dernier_depot, 'DD/MM/YYYY') as date_dernier_depot,
1787     to_char(dossier.date_rejet, 'DD/MM/YYYY') as date_rejet,
1788     to_char(dossier.date_limite, 'DD/MM/YYYY') as date_limite,
1789     to_char(dossier.date_notification_delai, 'DD/MM/YYYY') as date_notification_delai,
1790     to_char(dossier.date_decision, 'DD/MM/YYYY') as date_decision,
1791     to_char(dossier.date_validite, 'DD/MM/YYYY') as date_validite,
1792     to_char(dossier.date_achevement, 'DD/MM/YYYY') as date_achevement,
1793     to_char(dossier.date_chantier, 'DD/MM/YYYY') as date_chantier,
1794     to_char(dossier.date_conformite, 'DD/MM/YYYY') as date_conformite,
1795     dossier.incompletude,
1796     dossier.evenement_suivant_tacite, dossier.evenement_suivant_tacite_incompletude,
1797     dossier.etat_pendant_incompletude,
1798     to_char(dossier.date_limite_incompletude, 'DD/MM/YYYY') as date_limite_incompletude,
1799     dossier.delai_incompletude, dossier.autorite_competente, dossier.duree_validite
1800 nhaye 3059 ,dossier.dossier, dossier.incomplet_notifie
1801 vpihour 2643 FROM ".DB_PREFIXE."dossier
1802     LEFT JOIN ".DB_PREFIXE."avis_decision
1803     ON dossier.avis_decision = avis_decision.avis_decision
1804     WHERE dossier.avis_decision IS NOT NULL AND avis_decision.typeavis = 'F'
1805     AND dossier.dossier_autorisation = (
1806     SELECT dossier_autorisation.dossier_autorisation
1807     FROM ".DB_PREFIXE."dossier_autorisation
1808     LEFT JOIN ".DB_PREFIXE."dossier
1809     ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation
1810     WHERE dossier = '".$dossierID."')
1811     ORDER BY dossier.version DESC";
1812    
1813     $res = $this->db->query($sql);
1814     $this->addToLog("updateArchiveInstruction(): db->query(\"".$sql."\");", VERBOSE_MODE);
1815     if (database::isError($res)) {
1816     die($res->getMessage());
1817     }
1818    
1819     //Un des dosssiers d'instruction a été accordé, on récupère ses données
1820     if ( $res->numrows() != 0 ){
1821    
1822     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
1823     require_once "../obj/instruction.class.php";
1824     $instruction = new instruction("]",$this->db,DEBUG);
1825    
1826     $instruction->setParameter("maj", 1);
1827     $instruction->updateArchiveData($row);
1828     return $instruction->valF;
1829     }
1830     //Sinon, on prend les données du P0, si ce n'est pas un P0
1831     else {
1832     $sql = "SELECT dossier.delai, dossier.accord_tacite, dossier.etat,
1833     dossier.avis_decision, dossier.date_complet, dossier.date_dernier_depot,
1834     dossier.date_rejet, dossier.date_limite, dossier.date_notification_delai,
1835     dossier.date_decision, dossier.date_validite, dossier.date_achevement,
1836     dossier.date_chantier, dossier.date_conformite, dossier.incompletude,
1837     dossier.evenement_suivant_tacite, dossier.evenement_suivant_tacite_incompletude,
1838     dossier.etat_pendant_incompletude, dossier.date_limite_incompletude,
1839 nhaye 3059 dossier.delai_incompletude, dossier.autorite_competente, dossier.duree_validite,
1840     dossier.dossier, dossier.incomplet_notifie
1841 vpihour 2643 FROM ".DB_PREFIXE."dossier
1842     LEFT JOIN ".DB_PREFIXE."dossier_instruction_type
1843     ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
1844     WHERE dossier.dossier_autorisation = (
1845     SELECT dossier_autorisation.dossier_autorisation
1846     FROM ".DB_PREFIXE."dossier_autorisation
1847     LEFT JOIN ".DB_PREFIXE."dossier
1848     ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation
1849 softime 2653 WHERE dossier = '".$dossierID."')
1850 vpihour 2643 AND dossier_instruction_type.code = 'P'
1851     ORDER BY dossier.version DESC";
1852     $res = $this->db->query($sql);
1853     $this->addToLog("updateArchiveInstruction(): db->query(\"".$sql."\");", VERBOSE_MODE);
1854     if (database::isError($res)) {
1855     die($res->getMessage());
1856     }
1857    
1858     //On est pas dans le cas d'un dépôt d'un P0
1859     if ( $res->numrows() != 0 ){
1860     $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
1861 softime 2653 require_once "../obj/instruction.class.php";
1862 vpihour 2643 $instruction = new instruction("]",$this->db,DEBUG);
1863     $instruction->setParameter("maj", 1);
1864     $instruction->updateArchiveData($row);
1865     return $instruction->valF;
1866     }
1867     }
1868     }
1869 vpihour 632 }// fin classe
1870 fmichon 1005 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26