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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1978 - (hide annotations)
Mon Jun 3 16:53:37 2013 UTC (11 years, 8 months ago) by vpihour
File size: 67721 byte(s)
Les dossiers d'instructions, et les objets des onglets, dont le statut est 'clotués' ne sont plus modificables

1 fraynaud 3 <?php
2     //$Id$
3 nhaye 427 //gen openMairie le 10/02/2011 20:39
4    
5 fraynaud 3 require_once ("../gen/obj/dossier.class.php");
6 mlimic 835 require_once("../services/outgoing/messageenqueuer.php");
7 fraynaud 3
8     class dossier extends dossier_gen {
9    
10 fraynaud 20 var $maj;
11 fraynaud 128 var $sig;
12     var $servitude="";
13     var $auto_pos;
14     var $auto_servitude_surfacique;
15 fraynaud 142 var $auto_servitude_ligne;
16     var $auto_servitude_point;
17     var $auto_parcelle;
18     var $auto_parcelle_lot;
19 nhaye 467 var $aff_depot = "collapsible";
20     var $aff_travaux = "collapsible";
21     var $aff_instruction = "collapsible";
22     var $aff_demandeur = "startClosed";
23     var $aff_delegataire = "startClosed";
24     var $aff_terrain = "startClosed";
25     var $aff_localisation = "collapsible";
26     var $aff_description = "startClosed";
27     var $aff_amenagement = "startClosed";
28 fmichon 1005 var $dossier_instruction_type;
29 nhaye 1376 var $valIdDemandeur = array("petitionnaire_principal" => "",
30     "delegataire" => "",
31     "petitionnaire" => array());
32     var $postedIdDemandeur = array("petitionnaire_principal" => "",
33     "delegataire" => "",
34     "petitionnaire" => array());
35 nhaye 467
36 fmichon 943 function dossier($id,&$db,$DEBUG) {
37 nhaye 467 $this->constructeur($id,$db,$DEBUG);
38     } // fin constructeur
39 vpihour 1185
40 fmichon 1005 /*Mutateur pour ma variable dossier_instruction_type*/
41     public function getDossierInstructionType(){
42     return $this->dossier_instruction_type;
43     }
44     public function setDossierInstructionType($dossier_instruction_type){
45     $this->dossier_instruction_type = $dossier_instruction_type;
46     }
47    
48 fmichon 943 // {{{ Gestion de la confidentialité des données spécifiques
49    
50     /**
51     * Surcharge pour gérer les actions disponibles dans le portlet
52     */
53     function checkAccessibility() {
54     //
55     parent::checkAccessibility();
56     // Si l'utilisateur est un intructeur qui en correspond pas à la
57     // division du dossier
58     if ($this->f->isUserInstructeur()
59     && isset($this->f->om_utilisateur["division"])
60     && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()) {
61     //
62     $this->actions_sup = array();
63     $this->setParameter("actions", array());
64     }
65 vpihour 1978
66     //Si l'utilisateur est un instructeur et le dossier d'instruction est clôturé,
67     //il n'est plus possible de le modifier, on affiche pas le lien de modification du
68     //portlet
69     if ( $this->f->isUserInstructeur() && $this->getStatut() == "cloture" ){
70    
71     $this->parameters["actions"]["modifier"] = NULL;
72    
73     //Cache le lien du rapport d'instruction, si aucun n'est lié
74     if ( $this->getRapportInstruction() == '' ){
75    
76     $this->actions_sup['rapport_instruction'] = NULL;
77     }
78    
79     //Cache le lien des données techniques, si aucun n'est lié
80     if ( $this->getDonneesTechniques() == '' ){
81    
82     $this->actions_sup['donnees_techniques'] = NULL;
83     }
84     }
85 fmichon 943 }
86    
87     /**
88     * Cette methode est à surcharger elle permet de tester dans chaque classe
89     * des droits des droits spécifiques en fonction des données
90     */
91     function canAccess() {
92     // Si l'utilisateur est un intructeur qui ne correspond pas à la
93     // division du dossier
94     if ($this->f->isUserInstructeur()
95     && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
96     && $this->getParameter("maj") != 3) {
97     //
98     return false;
99     }
100 vpihour 1978 // Si l'utilisateur est un instructeur et que le dossier est cloturé
101     if ( $this->f->isUserInstructeur() && $this->getStatut() == "cloture"
102     && $this->getParameter("maj") != 3) {
103    
104     return false;
105     }
106 fmichon 943 //
107     return true;
108     }
109    
110     /**
111 fmichon 1908 * Cette variable permet de stocker le résultat de la méthode
112     * getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de
113     * ces appels.
114     * @var string Code de la division du dossier en cours
115 fmichon 943 */
116 fmichon 1908 var $_division_from_dossier = NULL;
117    
118     /**
119     * Cette méthode permet de récupérer le code de division correspondant
120     * au dossier sur lequel on se trouve.
121     *
122     * @return string Code de la division du dossier en cours
123     */
124 fmichon 943 function getDivisionFromDossier() {
125 fmichon 1908
126     // Cette méthode peut être appelée plusieurs fois lors d'une requête.
127     // Pour éviter de refaire le traitement de recherche de la division
128     // alors on vérifie si nous ne l'avons pas déjà calculé.
129     if ($this->_division_from_dossier != NULL) {
130     // Logger
131     $this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
132     // On retourne la valeur déjà calculée
133     return $this->_division_from_dossier;
134 fmichon 943 }
135 fmichon 1908
136     // Par défaut, on définit la valeur du dossier à NULL
137     $dossier = NULL;
138     // Test sur le mode et le contexte du formulaire
139     if ($this->getParameter("maj") == 0
140     && ($this->getParameter("retourformulaire") == "dossier"
141     || $this->getParameter("retourformulaire") == "dossier_instruction"
142     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
143     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
144     || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
145     || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) {
146     // Si on se trouve en mode AJOUT (seul mode où l'enregistrement
147     // n'existe pas en base de données) ET que nous nous trouvons
148     // dans le contexte d'un dossier d'instruction alors on récupère
149     // le numéro de dossier depuis le paramètre 'idxformulaire'
150     $dossier = $this->getParameter("idxformulaire");
151     } else {
152     // Sinon on récupère le numéro de dossier dans le champs dossier de
153     // l'enregistrement (en base de données)
154     $dossier = $this->getVal("dossier");
155     }
156    
157     // On appelle la méthode de la classe utils qui renvoi le code de la
158     // division d'un dossier, on la stocke pour ne pas refaire le calcul au
159     // prochain appel de cette méthode
160     $this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier);
161     // Logger
162     $this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE);
163     // On retourne la valeur retournée
164     return $this->_division_from_dossier;
165    
166 fmichon 943 }
167    
168     // }}}
169 fmichon 1005 /*
170     * Ajoute un numéro au dossier
171     *
172     */
173 nhaye 427 function setValFAjout($val = array()) {
174 fmichon 1005
175     /*Récupération de la lettre associé au type de dossier d'instruction*/
176     $code = $this->getCode($this->getDossierInstructionType());
177    
178     /* Récupération de la valeur du suffixe ce dossier_instruction_type */
179     $suffixe = $this->getSuffixe($this->getDossierInstructionType());
180    
181     /*S'il est à TRUE, on récupère le numéro de version du dossier d'autorisation*/
182     $numeroVersion = "";
183     if ( $suffixe == 't' ){
184    
185     $numeroVersion = $this->getNumeroVersion($val['dossier_autorisation']);
186    
187     /* Incrémentation du numéro de version */
188     if ( is_numeric($numeroVersion) or $numeroVersion == -1 ){
189    
190     $this->incrementNumeroVersion($val['dossier_autorisation'], ++$numeroVersion);
191     }
192     }
193    
194     /*Création du numéro de dossier*/
195 vpihour 1029 $this->valF['dossier'] = $val['dossier_autorisation']."$code$numeroVersion";
196 nhaye 1643 $this->valF['version'] = $numeroVersion;
197 nhaye 427 }
198 fraynaud 3
199 fmichon 1005 /*Récupère la valeur du suffixe d'un dossier_instruction_type*/
200     function getSuffixe($dossierInstructionType){
201    
202     $suffixe = "";
203    
204     $sql = "SELECT
205     suffixe
206     FROM
207     ".DB_PREFIXE."dossier_instruction_type
208     WHERE
209     dossier_instruction_type = $dossierInstructionType";
210    
211     $this->addToLog("getSuffixe(): db->query(\"".$sql."\")", VERBOSE_MODE);
212     $res = $this->db->query($sql);
213     if (database :: isError($res))
214     die($res->getMessage()."erreur ".$sql);
215    
216     if ( $res->numRows() > 0 ){
217    
218     $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
219     $suffixe = $row['suffixe'];
220     }
221    
222     return $suffixe;
223     }
224    
225     /*Récupère dans la table de paramètrage la lettre correspondant
226     * au dossier_instruction_type
227     */
228     function getCode($dossierInstructionType){
229    
230     $code = "";
231    
232     $sql = "SELECT
233     code
234     FROM
235     ".DB_PREFIXE."dossier_instruction_type
236     WHERE
237     dossier_instruction_type = $dossierInstructionType";
238    
239     $this->addToLog("getCode(): db->query(\"".$sql."\")", VERBOSE_MODE);
240     $res = $this->db->query($sql);
241     if (database :: isError($res))
242     die($res->getMessage()."erreur ".$sql);
243    
244     if ( $res->numRows() > 0 ){
245    
246     $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
247     $code = $row['code'];
248     }
249    
250     return $code;
251     }
252    
253     /*Récupère le numéro de version d'un dossier_autorisation*/
254     function getNumeroVersion($dossierAutorisation){
255    
256     $numeroVersion = "";
257    
258     $sql = "SELECT
259     numero_version
260     FROM
261     ".DB_PREFIXE."dossier_autorisation
262     WHERE
263     dossier_autorisation = '$dossierAutorisation'";
264    
265     $this->addToLog("getNumeroVersion(): db->query(\"".$sql."\")", VERBOSE_MODE);
266     $res = $this->db->query($sql);
267     if (database :: isError($res))
268     die($res->getMessage()."erreur ".$sql);
269    
270     if ( $res->numRows() > 0 ){
271    
272     $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
273     $numeroVersion = $row['numero_version'];
274     }
275    
276     return $numeroVersion;
277     }
278    
279     /*Incrémente le numéro de version du dossier*/
280     function incrementNumeroVersion($dossierAutorisation, $nouveauNumeroVersion) {
281    
282     $valF = array (
283     "numero_version" => $nouveauNumeroVersion
284     );
285    
286     $res = $this->db->autoExecute(DB_PREFIXE."dossier_autorisation",
287     $valF,
288     DB_AUTOQUERY_UPDATE,
289     "dossier_autorisation = '$dossierAutorisation'");
290    
291     if (database :: isError($res))
292     die($res->getMessage()."erreur ".$sql);
293    
294     }
295    
296 fraynaud 11 function setvalF($val){
297 nhaye 427 parent::setvalF($val);
298 nhaye 1376
299     // Récupération des id demandeurs postés
300     $this->getPostedValues();
301    
302 fraynaud 126 // enlever les valeurs a ne pas saisir -> recherche en trigger ajouter et modifier
303     // $sig = 1
304 fraynaud 369 unset ($this->valF['geom']);
305     unset ($this->valF['geom1']);
306 fraynaud 20 // valeurs hiddenstatic (calcule)
307     if($this->maj==1){
308     // par defaut
309     unset ($this->valF['etat']);
310     unset ($this->valF['delai']);
311     unset ($this->valF['accord_tacite']);
312     }
313 vpihour 489 unset ($this->valF['avis_decision']); // avis + libelle avis
314 fraynaud 20 unset ($this->valF['terrain_surface_calcul']);
315     unset ($this->valF['shon_calcul']);
316     unset ($this->valF['parcelle_archive']);
317 fraynaud 144 unset ($this->valF['parcelle_lot_archive']);
318 fraynaud 20 unset ($this->valF['date_notification_delai']);
319     unset ($this->valF['date_decision']);
320     unset ($this->valF['date_limite']);
321     unset ($this->valF['date_validite']);
322     unset ($this->valF['date_chantier']);
323     unset ($this->valF['date_achevement']);
324 nhaye 427 unset ($this->valF['date_conformite']);
325 fraynaud 11 }
326    
327 vpihour 1058 /*Vérification des données saisies*/
328 fraynaud 11 function verifier($val,&$db,$DEBUG){
329 nhaye 427 parent::verifier($val,$db,$DEBUG);
330 nhaye 1376 if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
331     empty($this->postedIdDemandeur["petitionnaire_principal"])) {
332     $this->correct = false;
333 fmichon 1725 $this->addToMessage(_("La saisie d'un petitionnaire principal est obligatoire."));
334 nhaye 1376 }
335 fraynaud 11 if($val['parcelle']!="" and $val['sig']!='Oui'){
336 vpihour 584 if (!preg_match('/^[0-9]{3} [A-Z]{1,3} [0-9]{1,5}$/', $val['parcelle']) && !preg_match('/^[0-9]{3}[A-Z]{1,3}[0-9]{1,5}$/', $val['parcelle'])){
337 fraynaud 126 $this->correct=false;
338 vpihour 575 $this->addToMessage("<br>format parcelle incorrect");
339 fraynaud 126 }
340 fraynaud 11 }
341     }//verifier
342    
343    
344     function setType(&$form,$maj) {
345 nhaye 427 parent::setType($form,$maj);
346 nhaye 1457 $form->setType('amenagement','hidden'); // PC
347     $form->setType('parcelle_lot','hidden'); // PC
348     $form->setType('parcelle_lot_lotissement','hidden'); // PC
349 nhaye 1643 $form->setType('version','hidden'); // PC
350 nhaye 1717 $form->setType('incompletude','hidden');
351     $form->setType('evenement_suivant_tacite','hidden');
352     $form->setType('evenement_suivant_tacite_incompletude','hidden');
353     $form->setType('etat_pendant_incompletude','hidden');
354 fraynaud 11 if ($maj < 2) { //ajouter et modifier
355 fraynaud 20 // cache
356     if($maj==0) $form->setType('dossier', 'hidden');
357 fraynaud 11 $form->setType('annee', 'hidden');
358 fraynaud 144 $form->setType('parcelle_archive','hidden');
359     $form->setType('parcelle_lot_archive','hidden');
360 fraynaud 369
361     $form->setType('geom1', 'hidden');
362 fraynaud 338 $form->setType('geom', 'geom');
363 fraynaud 126 $form->setType('servitude', 'hiddenstatic');
364 nhaye 427
365 fraynaud 11 //select
366 nhaye 427 $form->setType('terrain_numero_complement','select');
367 fraynaud 11
368    
369 fraynaud 142
370 fraynaud 11 // hiddenstatic
371 fraynaud 20 if($maj==1) $form->setType('dossier', 'hiddenstatic');
372     $form->setType('etat','hiddenstatic');
373 vpihour 489 $form->setType('avis_decision','hiddenstatic');
374 nhaye 1748 $form->setType('delai_incompletude','hiddenstatic');
375 fraynaud 11 $form->setType('delai','hiddenstatic');
376     $form->setType('terrain_surface_calcul','hiddenstatic');
377 fraynaud 20 $form->setType('shon_calcul','hiddenstatic');
378 fraynaud 11
379 fraynaud 20 $form->setType('accord_tacite','hiddenstatic');
380 fraynaud 11
381 fraynaud 20
382     // hiddenstaticdate
383     $form->setType('date_notification_delai','hiddenstaticdate');
384     $form->setType('date_decision','hiddenstaticdate');
385     $form->setType('date_limite','hiddenstaticdate');
386     $form->setType('date_rejet','hiddenstaticdate');
387     $form->setType('date_complet','hiddenstaticdate');
388     $form->setType('date_limite','hiddenstaticdate');
389     $form->setType('date_validite','hiddenstaticdate');
390     $form->setType('date_chantier','hiddenstaticdate');
391     $form->setType('date_achevement','hiddenstaticdate');
392     $form->setType('date_conformite','hiddenstaticdate');
393 nhaye 1748 $form->setType('date_limite_incompletude','hiddenstaticdate');
394    
395 nhaye 1749 $form->setType('date_demande','hiddenstaticdate');
396     $form->setType('date_depot','hiddenstaticdate');
397     $form->setType('date_dernier_depot','hiddenstaticdate');
398    
399 fraynaud 20 // checkbox
400 nhaye 1371 $form->setType('sig','checkbox');
401 fraynaud 20
402 fraynaud 11 // zones temp et strategysig
403 fraynaud 142
404    
405     // temp
406 fraynaud 266 if (file_exists ("../dyn/var.inc"))
407     include ("../dyn/var.inc");
408     if(!isset($auto_pos))
409     $auto_pos=0;
410     if($auto_pos==1)
411     $form->setType('pos','hiddenstatic');
412     else
413     $form->setType('pos','select');
414 fraynaud 11 $form->setType('temp1',$temp1_type);
415     $form->setType('temp2',$temp2_type);
416     $form->setType('temp3',$temp3_type);
417     $form->setType('temp4',$temp4_type);
418     $form->setType('temp5',$temp5_type);
419 mlimic 858 $form->setType('a_qualifier', 'checkbox');
420 nhaye 1434
421     $form->setType('parcelle', 'hidden');
422     $form->setType('pos', 'hidden');
423     $form->setType('sig', 'hidden');
424     $form->setType('batiment_nombre', 'hidden');
425     $form->setType('logement_nombre', 'hidden');
426     $form->setType('hauteur', 'hidden');
427     $form->setType('piece_nombre', 'hidden');
428     $form->setType('shon', 'hidden');
429     $form->setType('shon_calcul', 'hidden');
430     $form->setType('shob', 'hidden');
431     $form->setType('lot', 'hidden');
432 fraynaud 11 }
433 fmichon 686 if ($maj == 1) {
434     //
435     if ($this->f->isAccredited("dossier_modifier_instructeur")) {
436     $form->setType('instructeur', 'select');
437     } else {
438     $form->setType('instructeur', 'selecthiddenstatic');
439     }
440     //
441     if($this->f->getParameter('afficher_division') === 'true') {
442     //
443     if ($this->f->isAccredited("dossier_modifier_division")) {
444     $form->setType('division', 'select');
445     } else {
446     $form->setType('division', 'selecthiddenstatic');
447     }
448     } else {
449     $form->setType('division', 'hidden');
450     }
451     }
452 nhaye 445 if($maj == 3) {
453     $form->setType('annee', 'hidden');
454     $form->setType('temp1','hidden');
455     $form->setType('temp2','hidden');
456     $form->setType('temp3','hidden');
457     $form->setType('temp4','hidden');
458     $form->setType('temp5','hidden');
459     $form->setType('parcelle_archive','hidden');
460     $form->setType('parcelle_lot_archive','hidden');
461     $form->setType('geom1','hidden');
462 nhaye 446 $form->setType('geom','hidden');
463 mlimic 858 $form->setType('a_qualifier', 'checkboxstatic');
464 nhaye 1676 $form->setType('terrain_references_cadastrales','referencescadastralesstatic'); // PC
465 nhaye 1434 $form->setType('parcelle', 'hidden');
466     $form->setType('pos', 'hidden');
467     $form->setType('sig', 'hidden');
468     $form->setType('batiment_nombre', 'hidden');
469     $form->setType('logement_nombre', 'hidden');
470     $form->setType('hauteur', 'hidden');
471     $form->setType('piece_nombre', 'hidden');
472     $form->setType('shon', 'hidden');
473     $form->setType('shon_calcul', 'hidden');
474     $form->setType('shob', 'hidden');
475     $form->setType('lot', 'hidden');
476 nhaye 445 }
477 fmichon 686 //
478     if(!$this->f->getParameter('afficher_division') === 'true') {
479     $form->setType('division', 'hidden');
480     }
481 fmichon 927 $form->setType('dossier_autorisation', 'hiddenstatic');
482 nhaye 1229 $form->setType('dossier_instruction_type', 'selecthiddenstatic');
483 fmichon 933 //
484     if ($maj == 0) {
485     $form->setType('dossier_autorisation', 'select');
486     }
487 nhaye 948 // On cache enjeu_ERP si l'option n'est pas activée
488 fmichon 959 if($this->f->getParameter('option_ERP') != 'true') {
489 nhaye 948 $form->setType('erp', 'hidden');
490     $form->setType('enjeu_erp', 'hidden');
491     }
492 fraynaud 11 }
493    
494     function setVal(&$form,$maj,$validation){
495 fraynaud 20 $this->maj=$maj;
496 fraynaud 11 if ($validation==0) {
497     if ($maj == 0){
498 nhaye 467 //$dossier_cp = $this->f->collectivite["cp"];
499     //$dossier_ville = $this->f->collectivite["ville"];
500 fraynaud 11
501     $form->setVal('annee', date('y'));
502     $form->setVal('date_demande', date('Y-m-d'));
503     $form->setVal('date_depot', date('Y-m-d'));
504    
505 nhaye 467 //$form->setVal('demandeur_cp', $dossier_cp);
506     //$form->setVal('demandeur_ville', $dossier_ville);
507 fraynaud 11
508 nhaye 467 //$form->setVal('delegataire_cp', $dossier_cp);
509     //$form->setVal('delegataire_ville', $dossier_ville);
510 fraynaud 11
511 nhaye 467 //$form->setVal('terrain_cp', $dossier_cp);
512     //$form->setVal('terrain_ville', $dossier_ville);
513 fraynaud 11
514     $form->setVal('accord_tacite', 'Non');
515     $form->setVal('etat', 'initialiser');
516 nhaye 427 }
517 fraynaud 11 }
518     }
519    
520     function setSelect(&$form, $maj,&$db,$debug) {
521 nhaye 427 parent::setSelect($form, $maj,$db,$debug);
522 fraynaud 20 //optimisation sur table importante parcelle -> pas d appel methode parent
523 atreal 312 if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
524     include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
525 fraynaud 11 if($maj<2){
526 fraynaud 142 // parcelle_lot
527     $contenu="";
528     $contenu[0][0]="parcelle_lot";// table
529     $contenu[0][1]="parcelle_lot"; // zone origine
530     $contenu[1][0]="lotissement";
531     $contenu[1][1]="parcelle_lot_lotissement";
532     $form->setSelect("parcelle_lot",$contenu);
533     $contenu="";
534     $contenu[0][0]="parcelle_lot";// table
535     $contenu[0][1]="lotissement"; // zone origine
536     $contenu[1][0]="parcelle_lot";
537     $contenu[1][1]="parcelle_lot";
538     $form->setSelect("parcelle_lot_lotissement",$contenu);
539 fraynaud 11 // accord tacite
540     $contenu=array();
541     $contenu[0]=array('Non','Oui');
542     $contenu[1]=array('Non','Oui');
543     $form->setSelect("accord_tacite",$contenu);
544     // terrain_numero_complement
545     $contenu=array();
546     $contenu[0]=array('','bis','ter','quater');
547     $contenu[1]=array('','bis','ter','quater');
548     $form->setSelect("terrain_numero_complement",$contenu);
549 fraynaud 338 // geom *** a voir
550     if($maj==1){ //modification
551     $contenu=array();
552     $contenu[0]=array("dossier",$this->getParameter("idx"));
553     $form->setSelect('geom',$contenu);
554     }
555 nhaye 1023 // arrondissement recherche anvancée
556     $this->init_select($form, $db, $maj, $debug, "arrondissement",
557     $sql_arrondissement, $sql_arrondissement_by_id, false);
558     // dossier_autorisation_type_detaille recherche anvancée
559     $this->init_select($form, $db, $maj, $debug, "dossier_autorisation_type_detaille",
560     $sql_dossier_autorisation_type_detaille, $sql_dossier_autorisation_type_detaille_by_id, false);
561 vpihour 575 /*
562     * Affichage de données dans le select de la parcelle
563     * */
564     $contenu=array();
565     $sql="select parcelle from ".DB_PREFIXE."parcelle ";
566     $res = $db->query($sql);
567     if (database::isError($res))
568     die($res->getMessage());
569     $contenu[0][0]="";
570     $contenu[1][0]=_("choisir parcelle");
571     $k=1;
572     while ($row=& $res->fetchRow()){
573     $contenu[0][$k]=$row[0];
574     $contenu[1][$k]=$row[0];
575     $k++;
576     }
577     $form->setSelect("parcelle",$contenu);
578    
579 fraynaud 11 }
580 nhaye 517 if($this->f->getParameter('afficher_division')==='true') {
581     // instructeur
582 nhaye 520 $this->init_select($form, $db, $maj, $debug, "instructeur",
583     $sql_instructeur_div, $sql_instructeur_div_by_id, false);
584 nhaye 517 }
585 fraynaud 11 }
586    
587 fraynaud 345 function setLib(&$form,$maj) {
588     parent::setLib($form,$maj);
589     $form->setLib('geom','');
590 nhaye 1734 $form->setLib('date_limite',_("date limite d'instruction"));
591 nhaye 1748 $form->setLib('delai',_("delai d'instruction"));
592 nhaye 1734
593 fraynaud 345 }
594    
595 fraynaud 11 function setGroupe(&$form,$maj){
596    
597 fraynaud 20 // localisation
598 fraynaud 11 $form->setGroupe('parcelle','D');
599 fraynaud 142 $form->setGroupe('pos','G');
600 fraynaud 345 if($maj==1){
601     $form->setGroupe('sig','G');
602     $form->setGroupe('geom','F');
603 nhaye 427 }else {
604     $form->setGroupe('sig','F');
605 fraynaud 345 }
606 nhaye 427 if($maj==1){
607     $form->setGroupe('sig','G');
608     $form->setGroupe('geom','F');
609     }
610 fraynaud 345
611 fraynaud 11 }
612    
613     function setOnchange(&$form,$maj){
614     parent::setOnchange($form,$maj);
615     // mise en majuscule
616     $form->setOnchange("demandeur_nom","this.value=this.value.toUpperCase()");
617     $form->setOnchange("demandeur_societe","this.value=this.value.toUpperCase()");
618     $form->setOnchange("delegataire_nom","this.value=this.value.toUpperCase()");
619     $form->setOnchange("delegataire_societe","this.value=this.value.toUpperCase()");
620 fraynaud 20 $form->setOnchange("architecte_nom","this.value=this.value.toUpperCase()");
621 fraynaud 89 $form->setOnchange("terrain_adresse","this.value=this.value.toUpperCase()");
622 fraynaud 271 $form->setOnchange('shon','VerifNumdec(this)');
623     $form->setOnchange('shob','VerifNumdec(this)');
624     $form->setOnchange('hauteur','VerifNumdec(this)');
625 fraynaud 292 $form->setOnchange('terrain_surface','VerifNumdec(this)');
626 fraynaud 11 }
627    
628 fmichon 681 function setLayout(&$form, $maj) {
629 fmichon 686 //
630     $form->setBloc('dossier', 'D', '', ($maj == 3 ? 'col_9':'col_12'));
631 nhaye 1434 $form->setBloc('dossier', 'D', '', 'col_9');
632 nhaye 1457
633 nhaye 1434 $form->setFieldset('dossier', 'D', _("Dossier d'instruction"));
634     $form->setFieldset('autorite_competente', 'F');
635 nhaye 1457
636 nhaye 1434 $form->setBloc('autorite_competente', 'F');
637 nhaye 1457
638 nhaye 1434 $form->setBloc('date_demande', 'D', '', 'col_3');
639 nhaye 1457
640 nhaye 1434 $form->setFieldset('date_demande', 'D', _("Depot"));
641 nhaye 1571 $form->setFieldset('date_dernier_depot', 'F');
642 nhaye 1434
643     $form->setFieldset('enjeu_urba', 'D', _("Enjeu"));
644     $form->setFieldset('enjeu_erp', 'F');
645    
646     $form->setFieldset('erp', 'D', _("Qualification"));
647     $form->setFieldset('a_qualifier', 'F');
648 nhaye 1457
649 nhaye 1434 $form->setBloc('a_qualifier', 'F');
650     $form->setBloc('a_qualifier', 'F');
651 fmichon 686 //
652 nhaye 1750 $form->setBloc('date_complet', 'D', '', 'col_12');
653 nhaye 1457
654     $form->setFieldset('date_complet', 'D', _('Instruction'), 'col_12');
655 nhaye 1748
656     $form->setBloc('date_complet', 'D', '', 'col_4');
657     $form->setBloc('date_limite_incompletude', 'F');
658    
659     $form->setBloc('date_rejet', 'D', '', 'col_4');
660     $form->setBloc('delai_incompletude', 'F');
661    
662     $form->setBloc('etat', 'D', '', 'col_4');
663 nhaye 1750 $form->setBloc('date_conformite', 'F');
664 nhaye 1748
665 nhaye 1750 $form->setFieldset('date_conformite','F','');
666 nhaye 1457
667 nhaye 1750 $form->setBloc('date_conformite', 'F');
668 fmichon 686
669 vpihour 1372 $form->setBloc('parcelle','D',"", "col_12");
670 nhaye 1457 $form->setBloc('geom1','F');
671 vpihour 1372
672     //Fieldset "Localisation du terrain"
673     $form->setBloc('terrain_references_cadastrales','D',"","col_12");
674     $form->setFieldset('terrain_references_cadastrales','D',_('Localisation du terrain'));
675     $form->setFieldset('terrain_superficie','F','');
676     $form->setBloc('terrain_superficie','F');
677 fmichon 681 }
678    
679     function setRegroupe(&$form,$maj) {
680     //// depot
681     //If ($maj==0){
682     // $form->setRegroupe('date_demande','D',_("Depot"),$this->aff_depot );
683     //}
684     //If ($maj==1){
685     // $form->setRegroupe('dossier','D',_("Depot"), $this->aff_depot);
686     // $form->setRegroupe('date_demande','G','');
687     //}
688     //$form->setRegroupe('date_depot','G','');
689     //$form->setRegroupe('division','F','');
690    
691 fraynaud 15
692 fraynaud 20
693 fraynaud 257 $form->setRegroupe('description','D',_('description').' '._('servitude'), $this->aff_amenagement);
694 fraynaud 256 $form->setRegroupe('servitude','F','');
695    
696 mlimic 858
697 fraynaud 11 }
698    
699 vpihour 584 /* =============================================================
700     * fonction trigger relative a la connexion SIG
701     * $sig = 1 dans dyn/var.inc
702 mlimic 835 * utilisé aussi pour envoyer une message au service REST d'ERP
703 vpihour 584 * ===============================================================
704     */
705    
706     function triggerajouterapres($id,&$db,$val,$DEBUG) {
707     $this->sig_parametre($db);
708     $id=$this->valF['dossier']; // id n est pas valorise en ajout
709     if($this->sig==1 and $val['sig']!='Oui'){
710     if($val['parcelle']!=''or $val['parcelle_lot']!=''){
711    
712     $this->sig_interne($id,$db,$val,$DEBUG);
713     }
714     else
715     $this->addToMessage("<br>"._("Parcelle non renseignee dans dossier")." ".$id." <br>");
716    
717     }
718 mlimic 835
719 mlimic 896
720 fmichon 1005 if ($this->f->getParameter('option_erp') != "") {
721     // envoi du message a ERP en cas d'un depot du dossier dat
722 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
723 fmichon 1005 $this->f->getParameter('erp_depot_dossier_dat')) {
724 mlimic 915 $msgenque = new MessageEnqueuer();
725     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
726 fmichon 1005 $msgenque->enqueueMessage($msgenque::$ERP_DEPOT_DOSSIER_DAT);
727 mlimic 915 }
728    
729 fmichon 1005 // envoi du message a ERP en cas d'une demande d'ouverture DAT
730 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
731 fmichon 1005 $this->f->getParameter('erp_demande_ouverture_dat')) {
732 mlimic 915 $msgenque = new MessageEnqueuer();
733     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
734 fmichon 1005 $msgenque->enqueueMessage($msgenque::$ERP_DEMANDE_OUVERTURE_DAT);
735 mlimic 915 }
736 fmichon 1005
737     if ($this->valF['erp'] === true) {
738     // envoi du message a ERP en cas d'annulation d'une demande
739 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
740 fmichon 1005 $this->f->getParameter('erp_annulation_demande')) {
741     $msgenque = new MessageEnqueuer();
742     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
743     $msgenque->enqueueMessage($msgenque::$ERP_ANNULATION_DEMANDE);
744     }
745    
746     // envoi du message a ERP en cas d'ouverture d'un dossier PC "rattache"
747     // au dossier DAACT
748 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
749 fmichon 1005 $this->f->getParameter('erp_demande_ouverture_pc_daact')) {
750     $msgenque = new MessageEnqueuer();
751     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
752     $msgenque->enqueueMessage($msgenque::$ERP_DEMANDE_OUVERTURE_PC);
753     }
754     }
755 nhaye 1643 } // fin de if ($this->f->getParameter('option_erp') != "")
756    
757     // Mise à jour des données du dossier d'autorisation
758     require_once "../obj/dossier_autorisation.class.php";
759     $da = new dossier_autorisation($this->valF["dossier_autorisation"], $this->db, DEBUG);
760     $da->majDossierAutorisation();
761 vpihour 584 }
762    
763 vpihour 575 /*
764     * Calcul l'identifiant du quartier et d'un arrondissement d'une parcelle
765     * */
766 vpihour 770 function getQuartierArrondissement($parcelle) {
767 vpihour 575
768     $parcelle = trim($parcelle);
769 vpihour 626 $quartier = '';
770 vpihour 575
771 vpihour 770 /*Récupère le code impot du quartier dans la parcelle*/
772     for ( $i = 0 ; $i < strlen($parcelle) ; $i++ ){
773    
774     if (is_numeric($parcelle[$i]) ){
775    
776 vpihour 575 $quartier .= $parcelle[$i];
777 vpihour 770 }
778     else{
779    
780 vpihour 575 break;
781 vpihour 770 }
782     }
783 vpihour 575
784     if ( $quartier !== '' ){
785    
786     /*identifiant*/
787     $sql = "SELECT
788     quartier, arrondissement
789     FROM
790 fmichon 923 ".DB_PREFIXE."quartier
791 vpihour 575 WHERE
792     code_impots='$quartier'";
793    
794 vpihour 770 $this->addToLog("getQuartierArrondissement(parcelle) : db->query(\"$sql\")", VERBOSE_MODE);
795     $res = $this->db->query($sql);
796 vpihour 575 if (database :: isError($res))
797     die($res->getMessage()."erreur ".$sql);
798    
799 vpihour 621 if ( $res->numRows() > 0 ){
800    
801 vpihour 770 return $res->fetchRow(DB_FETCHMODE_ASSOC);
802 vpihour 575 }
803     }
804 vpihour 770
805     return NULL;
806 vpihour 575 }
807    
808     /*
809     * Retourne la section d'une parcelle
810     * */
811     function getSection($parcelle){
812    
813     $parcelle = trim($parcelle);
814 vpihour 584 $section = NULL;
815 vpihour 575
816     for ( $i = 0 ; $i < strlen($parcelle) ; $i++ )
817     if ( !is_numeric($parcelle[$i]) && is_string($parcelle[$i]) && $parcelle[$i] !== ' ' )
818     $section .= $parcelle[$i];
819    
820     return $section;
821     }
822 vpihour 584
823     /*
824     * Retourne l'intructeur correspondant le mieux à la parcelle
825     * */
826 vpihour 939 function getInstructeurDivision( $quartier, $arrondissement, $section, $dossier_autorisation) {
827 vpihour 770
828     $quartier = ( $quartier == NULL ) ? -1 : $quartier;
829     $arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement;
830 vpihour 584
831 vpihour 939 /*Récupération du dossier_autorisation_type_detaille concerné par le $dossier_autorisation*/
832 vpihour 584 $sql = "
833     SELECT
834 vpihour 939 dossier_autorisation_type_detaille
835 vpihour 584 FROM
836 vpihour 939 ".DB_PREFIXE."dossier_autorisation
837 vpihour 584 WHERE
838 vpihour 939 dossier_autorisation = '$dossier_autorisation'";
839 vpihour 770
840 vpihour 939 $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);
841     $resDATD = $this->db->query($sql);
842     if (database :: isError($resDATD))
843     die($resDATD->getMessage()."erreur ".$sql);
844 vpihour 584
845 vpihour 939 if ( $resDATD->numRows() > 0 ){
846     $rowDATD = $resDATD->fetchRow(DB_FETCHMODE_ASSOC);
847 vpihour 719
848 vpihour 939 $sql = "
849     SELECT
850     instructeur, section, quartier, arrondissement, dossier_autorisation_type_detaille
851     FROM
852     ".DB_PREFIXE."affectation_automatique l
853     WHERE
854     ( dossier_autorisation_type_detaille IS NULL AND arrondissement IS NULL AND quartier IS NULL AND section IS NULL ) OR
855     ( dossier_autorisation_type_detaille IS NULL AND arrondissement IS NULL AND quartier IS NULL AND section = '$section' ) OR
856     ( dossier_autorisation_type_detaille IS NULL AND arrondissement IS NULL AND quartier = $quartier AND section IS NULL ) OR
857     ( dossier_autorisation_type_detaille IS NULL AND arrondissement IS NULL AND quartier = $quartier AND section = '$section' ) OR
858     ( dossier_autorisation_type_detaille IS NULL AND arrondissement = $arrondissement AND quartier IS NULL AND section IS NULL ) OR
859     ( dossier_autorisation_type_detaille IS NULL AND arrondissement = $arrondissement AND quartier IS NULL AND section = '$section' ) OR
860     ( dossier_autorisation_type_detaille IS NULL AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR
861     ( dossier_autorisation_type_detaille IS NULL AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' ) OR
862     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement IS NULL AND quartier IS NULL AND section IS NULL ) OR
863     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement IS NULL AND quartier IS NULL AND section = '$section' ) OR
864     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement IS NULL AND quartier = $quartier AND section IS NULL ) OR
865     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement IS NULL AND quartier = $quartier AND section = '$section' ) OR
866     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier IS NULL AND section IS NULL ) OR
867     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier IS NULL AND section = '$section' ) OR
868     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR
869     ( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' )
870     ORDER BY section, quartier, arrondissement, dossier_autorisation_type_detaille
871     LIMIT 1
872     ";
873 vpihour 770
874 vpihour 939 $this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE);
875 vpihour 770 $res = $this->db->query($sql);
876 vpihour 719 if (database :: isError($res))
877     die($res->getMessage()."erreur ".$sql);
878 vpihour 939
879 vpihour 719 if ( $res->numRows() > 0 ){
880 vpihour 770
881 vpihour 939 $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
882    
883     $sql = "SELECT division FROM ".DB_PREFIXE."instructeur WHERE instructeur = ".$row['instructeur'];
884     $res = $this->db->query($sql);
885     if (database :: isError($res))
886     die($res->getMessage()."erreur ".$sql);
887    
888     if ( $res->numRows() > 0 ){
889    
890     $rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC);
891     $row['division'] = $rowT['division'];
892     }
893    
894     return $row;
895 vpihour 719 }
896 fraynaud 11 }
897 vpihour 939
898 vpihour 584 return NULL;
899     }
900 vpihour 575
901     /* =============================================================
902     * fonction trigger relative a la connexion SIG
903     * $sig = 1 dans dyn/var.inc
904     * ===============================================================
905     */
906 fraynaud 11
907 vpihour 575 function triggerajouter($id,&$db,$val,$DEBUG) {
908 fmichon 727 //
909     $this->addToLog("triggerajouter() : start", EXTRA_VERBOSE_MODE);
910 vpihour 626
911 fmichon 727 // Initialisation des variables nécessaires à l'affectation automatique
912 vpihour 770 $quartier = NULL;
913     $arrondissement = NULL;
914     $section = NULL;
915 fmichon 871 $instructeur = NULL;
916 vpihour 626
917 fmichon 727 // Si la parcelle n'est pas vide alors on récupère la section, le
918     // quartier et l'arrondissement
919     if ($val['parcelle'] != '') {
920 vpihour 770 // Cette méthode récupère l'arrondissement et le quartier associé à une parcelle
921     $quartierArrondissement = $this->getQuartierArrondissement($val['parcelle']);
922     if ( $quartierArrondissement!= NULL ){
923    
924     $quartier = $quartierArrondissement['quartier'];
925     $arrondissement = $quartierArrondissement['arrondissement'];
926 fmichon 727 }
927 vpihour 770 // Si il n'y a pas d'arrondissement alors on vide le quartier
928     if ( strcmp($arrondissement,'') == 0 ) {
929    
930     $arrondissement = NULL;
931     $quartier = NULL;
932     }
933 fmichon 727 // On récupère la section
934 vpihour 575 $section = $this->getSection($val['parcelle']);
935 fmichon 727 }
936    
937 vpihour 939 // Si aucun instructeur n'est saisi et que la dossier_autorisation_type_detaille n'est pas vide
938 fmichon 727 // alors on récupère l'instructeur et la division depuis l'affectation
939 vpihour 939 if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['dossier_autorisation'] != '' ) {
940 vpihour 770
941 fmichon 727 //
942 vpihour 939 $instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $val['dossier_autorisation']);
943 vpihour 770 if ( $instructeurDivision != NULL ){
944    
945     $instructeur = $instructeurDivision['instructeur'];
946     $division = $instructeurDivision['division'];
947     }
948 vpihour 621
949 fmichon 727 if ( $instructeur != NULL ){
950 vpihour 770
951 fmichon 727 $this->valF['instructeur'] = $instructeur;
952     $this->valF['division'] = $division;
953     } else {
954     if ($this->f->isAccredited("dossier_modifier_instructeur")) {
955     $this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>");
956     } else {
957     $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");
958 vpihour 719 }
959     }
960 fmichon 727 } else {
961     $this->addToMessage("<br/> "._("Aucun instructeur compatible avec ce dossier trouve, contactez votre administrateur afin d'en assigner un a ce dossier.")." <br/>");
962 vpihour 584 }
963 fmichon 727 //
964     $this->addToLog("triggerajouter() : end", EXTRA_VERBOSE_MODE);
965 vpihour 575 }
966    
967 fraynaud 44 function triggermodifierapres($id,&$db,$val,$DEBUG) {
968 fraynaud 128 $this->sig_parametre($db);
969 fraynaud 44 // si la parcelle est changée
970 fraynaud 144 if(($this->sig==1 and $val['sig']!='Oui' and ($val['parcelle']!=$val['parcelle_archive'])
971     or $val['parcelle_lot']!=$val['parcelle_lot_archive'])){ // parcelle_lot_archive
972 fraynaud 142 if($val['parcelle']!='' or $val['parcelle_lot']!='')
973 fmichon 344 $this->sig_interne($this->valF['dossier'],$db,$val,$DEBUG);
974 fraynaud 256 else{
975     if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante
976     $sql ="update ".DB_PREFIXE."dossier set geom = null, servitude = '', pos= '' where dossier ='".$id."'";
977     $res = $db -> query($sql);
978     $this->addToLog("requete trigger modifier parcelle vide -> maj pos et servitude :".$sql, VERBOSE_MODE);
979     if (database :: isError($res))
980     die($res->getMessage()."erreur ".$sql);
981     }
982 fraynaud 142 $this->addToMessage("<br>"._("Parcelle ou parcelle_lot non renseignee dans dossier")." ".$id." <br>");
983 fraynaud 256 }
984 mlimic 835 }
985 fmichon 1005
986     // verification si envoi vers ERP est active
987     if ($this->f->getParameter('option_erp') != "") {
988     if ($this->val[array_search('a_qualifier', $this->champs)] == 't'
989     && $this->valF['a_qualifier'] === false) {
990    
991     // envoi du message "ERP Qualifie" pour un dossier DAT qui a besoin
992     // de la qualification URBA
993 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
994 fmichon 1005 $this->f->getParameter('erp_nature_dat')) {
995     $msgenque = new MessageEnqueuer();
996     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
997     $msgenque->setCompetence($this->valF['autorite_competente']);
998     $msgenque->setContraintePlu($this->valF['servitude']);
999     $msgenque->setReferenceCadastrale(
1000     $this->getReferenceCadastrale($this->valF['dossier']));
1001     $msgenque->enqueueMessage($msgenque::$ERP_QUALIFIE);
1002     }
1003    
1004     // envoi des messages a ERP en cas du dossier PC traite par URBA, et
1005     // qui etait classifie come ERP
1006 nhaye 1140 if ($this->getDATDCode($this->valF['dossier']) ==
1007 fmichon 1005 $this->f->getParameter('erp_dossier_nature_pc')
1008     && $this->valF['erp'] == true) {
1009     $msgenque = new MessageEnqueuer();
1010     $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
1011     $msgenque->enqueueMessage($msgenque::$ERP_DEMANDE_COMPLETUDE_PC);
1012     $msgenque->enqueueMessage($msgenque::$ERP_DEMANDE_QUALIFICATION_PC);
1013     }
1014 mlimic 896 }
1015 nhaye 1377 } // fin de if($this->f->getParameter('option_erp'))
1016 nhaye 1140
1017 nhaye 1376 // Ajout ou modification des demandeurs
1018     $this->insertLinkDemandeDemandeur($db, $DEBUG);
1019     }
1020 nhaye 1377
1021 nhaye 1643 /**
1022     * Ne servira surement pas mais dans le doute autant recalculer les données du DA
1023     */
1024     function triggersupprimerapres($id,&$db,$val,$DEBUG) {
1025     // Mise à jour des données du dossier d'autorisation
1026     require_once "../obj/dossier_autorisation.class.php";
1027     $da = new dossier_autorisation($this->valF["dossier_autorisation"], $this->db, DEBUG);
1028     $da->majDossierAutorisation();
1029     }
1030 nhaye 1377
1031 nhaye 1140 /**
1032     * Retourne le type de dossier d'autorisation du dossier courant :
1033     * - dossier_autorisation_type_detaille.code
1034     **/
1035     function getDATDCode($idxDossier) {
1036     $sql = "SELECT dossier_autorisation_type_detaille.code
1037     FROM ".DB_PREFIXE."dossier_autorisation_type_detaille
1038     INNER JOIN ".DB_PREFIXE."dossier_autorisation
1039     ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille =
1040     dossier_autorisation.dossier_autorisation_type_detaille
1041 nhaye 1196 INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation
1042     WHERE dossier.dossier = '".$idxDossier."'";
1043     $res = $this -> db -> getOne($sql);
1044 vpihour 1777 $this->f->addToLog("getDATDCode() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
1045     if ( database::isError($res)){
1046     die();
1047     }
1048 nhaye 1140 return $res;
1049     }
1050 mlimic 896
1051    
1052     /**
1053     * Retourne la reference cadastrale de la demande attache a un dossier ERP
1054     * specifique
1055     * @param string $dossier L'identifiant du dossier
1056     * @return string|null La reference cadastrale si elle est trouve,
1057     * sinon NULL. En cas d'erreur de la BD, l'execution s'arrete.
1058     */
1059     function getReferenceCadastrale($dossier) {
1060 fmichon 923 $sql = "SELECT terrain_references_cadastrales FROM ".DB_PREFIXE."demande WHERE dossier_instruction = '" . $dossier . "'";
1061 mlimic 896 $res = $this->db->limitquery($sql, 0, 1);
1062     $this->addToLog("getReferenceCadastrale(): db->limitquery(\"".
1063     str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
1064     // Si une erreur survient on die
1065     if (database::isError($res, true)) {
1066     // Appel de la methode de recuperation des erreurs
1067     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), 'demande');
1068     }
1069     // retourne la nature du dossier
1070     while ($row =& $res->fetchRow()) {
1071     return $row[0];
1072     }
1073     // la nature n'etait pas trouve, ce qui ne devrait pas se passer
1074     return NULL;
1075     }
1076    
1077 fraynaud 11
1078 fraynaud 128 function sig_parametre(&$db){
1079     if (file_exists ("../dyn/var.inc"))
1080     include ("../dyn/var.inc");
1081     if(!isset($sig))
1082     $this->sig=0;
1083     else
1084     $this->sig=1;
1085     if(!isset($auto_pos))
1086     $this->auto_pos=0;
1087     else
1088     $this->auto_pos=$auto_pos;
1089     if(!isset($auto_servitude_surfacique))
1090     $this->auto_servitude_surfacique=0;
1091     else
1092     $this->auto_servitude_surfacique=$auto_servitude_surfacique;
1093     if(!isset($auto_servitude_ligne))
1094     $this->auto_servitude_ligne=0;
1095     else
1096     $this->auto_servitude_ligne=$auto_servitude_ligne;
1097     if(!isset($auto_servitude_point))
1098     $this->auto_servitude_point=0;
1099     else
1100     $this->auto_servitude_point=$auto_servitude_point;
1101 fraynaud 142 if(!isset($auto_parcelle))
1102     $this->auto_parcelle=0;
1103     else
1104     $this->auto_parcelle=$auto_parcelle;
1105     if(!isset($auto_parcelle_lot))
1106     $this->auto_parcelle_lot=0;
1107     else
1108     $this->auto_parcelle_lot=$auto_parcelle_lot;
1109 fraynaud 128 $this->addToLog("trigger valeur sig :".$this->sig, VERBOSE_MODE);
1110     $this->addToLog("trigger valeur auto_pos :". $this->auto_pos, VERBOSE_MODE);
1111     $this->addToLog("trigger valeur auto_servitude_surfacique :".$this->auto_servitude_surfacique, VERBOSE_MODE);
1112     $this->addToLog("trigger valeur auto_servitude_ligne :". $this->auto_servitude_ligne, VERBOSE_MODE);
1113     $this->addToLog("trigger valeur auto_servitude_point :".$this->auto_servitude_point, VERBOSE_MODE);
1114 fraynaud 142 $this->addToLog("trigger valeur auto_parcelle :". $this->auto_parcelle, VERBOSE_MODE);
1115     $this->addToLog("trigger valeur auto_parcelle_lot :".$this->auto_parcelle_lot, VERBOSE_MODE);
1116 fraynaud 128 }
1117    
1118    
1119     function sig_interne($id,&$db,$val,$DEBUG){
1120 fraynaud 12 // Strategy interne dans var.inc
1121     // si la parcelle existe, il est cree un point au milieu de la parcelle
1122     // de maniere automatique
1123 fraynaud 145 $geom='';
1124 fraynaud 144 $parcelle=$val["parcelle"];
1125 fraynaud 44 $projection = $db -> getOne("select srid from geometry_columns where f_table_name='dossier'");
1126 fraynaud 144 if($this->auto_parcelle==1 and $val["parcelle"]!=''){
1127 fraynaud 242 $sql= "select astext(centroid(geom)) from ".DB_PREFIXE."parcelle where parcelle ='".$val["parcelle"]."'";
1128 fraynaud 144 $this->addToLog("recherche centroid parcelle :".$sql, VERBOSE_MODE);
1129     $geom = $db -> getOne($sql);
1130     if (database :: isError($geom))die($res->getMessage()."erreur ".$sql);
1131     }
1132     if($geom=='' and $this->auto_parcelle_lot==1 and $val["parcelle_lot"]!=''){ // lot
1133 fraynaud 242 $sql= "select astext(centroid(geom)) from ".DB_PREFIXE."parcelle_lot where parcelle_lot ='".$val["parcelle_lot"]."'";
1134 fraynaud 142 $this->addToLog("recherche centroid parcelle lot :".$sql, VERBOSE_MODE);
1135     $geom = $db -> getOne($sql);
1136     if (database :: isError($geom))die($res->getMessage()."erreur ".$sql);
1137 fraynaud 144 $parcelle=$val["parcelle_lot"]." ".$val["parcelle_lot_lotissement"];
1138 fraynaud 142 }
1139 fraynaud 134 if($geom!=''){ // la parcelle est exitante dans la table ou vue parcelle
1140 fraynaud 242 $sql ="update ".DB_PREFIXE."dossier set geom =geometryfromtext('".$geom."', ".$projection." ) where dossier ='".$id."'";
1141 fraynaud 103 $this->addToLog("sig_interne maj geom :".$sql, VERBOSE_MODE);
1142 fraynaud 11 $res = $db -> query($sql);
1143 fraynaud 144 if (database :: isError($res)) die($res->getMessage()."erreur ".$sql);
1144 fraynaud 232 $this->addToMessage(""._("centroid de parcelle calcule")." ".$parcelle." ");
1145 fraynaud 128 if($this->auto_pos==1) // recherche du pos
1146     $this->calcul_auto_pos($id,$db,$geom,$projection);
1147     if($this->auto_servitude_surfacique==1) // recherche de servitude surfacique
1148     $this->calcul_auto_servitude_surfacique($id,$db,$geom,$projection);
1149 fraynaud 134 if($this->auto_servitude_ligne==1) // recherche de servitude ligne
1150 fraynaud 128 $this->calcul_auto_servitude_ligne($id,$db,$geom,$projection);
1151 fraynaud 134 if($this->auto_servitude_point==1) // recherche de servitude point
1152     $this->calcul_auto_servitude_point($id,$db,$geom,$projection);
1153 fraynaud 128 $temp=strtr($this->servitude,"'"," "); // enleve le '
1154 fraynaud 242 $sql1 ="update ".DB_PREFIXE."dossier set servitude = '".$temp."' where dossier = '".$id."'";
1155 fraynaud 128 $res1 = $db -> query($sql1);
1156 fraynaud 134 $this->addToLog("maj servitudes :".$sql1, VERBOSE_MODE);
1157 fraynaud 128 if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
1158 fraynaud 256 }else{ // parcelle inexistante //***
1159 fraynaud 44 if($this->maj ==1){ // en maj mettre a null la geometrie si parcelle changée inexistante
1160 fraynaud 256 $sql ="update ".DB_PREFIXE."dossier set geom = null, servitude = '', pos= '' where dossier ='".$id."'";
1161 fraynaud 44 $res = $db -> query($sql);
1162 fraynaud 103 $this->addToLog("requete sig_interne maj parcelle inexistante :".$sql, VERBOSE_MODE);
1163 fraynaud 44 if (database :: isError($res))
1164     die($res->getMessage()."erreur ".$sql);
1165     }
1166 vpihour 626 //$this->addToMessage("<br> parcelle ".$parcelle." "._("inexistante")." ".$id."");
1167 fraynaud 11 }
1168     }
1169    
1170 fraynaud 128 function calcul_auto_pos($id,&$db,$geom,$projection){
1171 fraynaud 134 // recherche du pos automatique
1172 fraynaud 242 $sql="select pos from ".DB_PREFIXE."pos WHERE ST_contains(geom, geometryfromtext('".$geom."', ".$projection."))";
1173 fraynaud 44 $pos = $db -> getOne($sql);
1174 fraynaud 103 $this->addToLog("recherche auto_pos :".$sql, VERBOSE_MODE);
1175 fraynaud 44 if($pos!=''){
1176 fraynaud 242 $sql1 ="update ".DB_PREFIXE."dossier set pos = '".$pos."' where dossier = '".$id."'";
1177 fraynaud 44 $res1 = $db -> query($sql1);
1178 fraynaud 103 $this->addToLog("maj auto_pos :".$sql1, VERBOSE_MODE);
1179 fraynaud 126 if (database:: isError($res1)) die($res1->getMessage()."erreur ".$sql1);
1180 fraynaud 128 $this->addToMessage("<br>"._("POS/PLU")." : ".$pos."");
1181 fraynaud 44 }else{
1182 atreal 316 $this->addToMessage("<br>"._("POS/PLU non trouve")." ".$id."");
1183 fraynaud 44 }
1184     }
1185    
1186 fraynaud 128 function calcul_auto_servitude_surfacique($id,&$db,$geom,$projection){
1187 fraynaud 134 // recherche servitude surfacique
1188 fraynaud 242 $sql="select * from ".DB_PREFIXE."servitude_surfacique WHERE ST_contains(geom, geometryfromtext('".$geom."', ".$projection."))";
1189 fraynaud 126 $res=$db->query($sql);
1190     if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
1191     $this->addToLog("requete :".$sql." executee ", VERBOSE_MODE);
1192     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1193     $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
1194 fraynaud 128 $this->servitude.=" [".$row['libelle']."] ".$row['observation']." - ";
1195     }
1196 fraynaud 126 }
1197 fraynaud 44
1198 fraynaud 128 function calcul_auto_servitude_ligne($id,&$db,$geom,$projection){
1199 fraynaud 134 // recherche servitude ligne
1200 fraynaud 242 $sql="select * from ".DB_PREFIXE."servitude_ligne WHERE ST_contains(ST_buffer(geom, perimetre), geometryfromtext('".$geom."', ".$projection."))";
1201 fraynaud 128 $res=$db->query($sql);
1202     if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
1203     $this->addToLog("requete :".$sql." executee ", VERBOSE_MODE);
1204     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1205     $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']);
1206     $this->servitude.=" [".$row['libelle']."] ".$row['observation']." - ";
1207     }
1208     }
1209 fraynaud 126
1210 fraynaud 134 function calcul_auto_servitude_point($id,&$db,$geom,$projection){
1211     // recherche servitude point
1212 fraynaud 242 $sql="select libelle,observation, perimetre, distance(geom, geometryfromtext('".$geom."', ".$projection.")) as distance from ".
1213     DB_PREFIXE."servitude_point WHERE distance(geom, geometryfromtext('".$geom."', ".$projection."))<perimetre";
1214 fraynaud 134 $res=$db->query($sql);
1215     if (database:: isError($res)) die($res1->getMessage()."erreur ".$sql);
1216     $this->addToLog("requete :".$sql." executee ", VERBOSE_MODE);
1217     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1218 fraynaud 152 $this->addToMessage("<br>"._("servitude")." : ".$row['libelle']." - ".$row['observation']." a ".round($row['distance'],2)." m ");
1219 fraynaud 137 $this->servitude.=" [".$row['libelle']."] ".$row['observation']." a ".round($row['distance'],2)." m - ";
1220 fraynaud 134 }
1221     }
1222 nhaye 1376
1223     /**
1224     * Gestion des liens entre la demande et les demandeurs recemment ajoutés
1225     **/
1226     function insertLinkDemandeDemandeur($db, $DEBUG) {
1227     //
1228     require_once "../obj/lien_dossier_demandeur.class.php";
1229     // Sippression des anciens demandeurs
1230     $this->deleteLinkDossierDemandeur($db, $DEBUG);
1231    
1232     // Ajout du pétitionnaire principal
1233     if(!empty($this->postedIdDemandeur['petitionnaire_principal'])) {
1234     $this->addLinkDossierDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
1235     }
1236    
1237     // Ajout du délégataire
1238     if(!empty($this->postedIdDemandeur['delegataire'])) {
1239 nhaye 1399 $this->addLinkDossierDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
1240 nhaye 1376 }
1241    
1242     // Ajout des pétitionnaires
1243     if(isset($this->postedIdDemandeur['petitionnaire'])) {
1244     // Ajout des nouveaux liens
1245     foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
1246     $this->addLinkDossierDemandeur($petitionnaire, false, $db, $DEBUG);
1247     }
1248     }
1249     }
1250    
1251    
1252     /**
1253     * Fonction permettant d'ajouter un lien
1254     * entre la table demande et demandeur
1255     **/
1256     function addLinkDossierDemandeur($id, $principal, $db, $DEBUG) {
1257     $lienAjout = new lien_dossier_demandeur(
1258     "]",
1259     $db,
1260     $DEBUG);
1261     $lien = array('lien_dossier_demandeur' => "",
1262     'petitionnaire_principal' => (($principal)?"t":"f"),
1263     'dossier' => $this->valF['dossier'],
1264     'demandeur' => $id);
1265     $lienAjout->ajouter($lien, $db, $DEBUG);
1266     $lienAjout->__destruct();
1267     }
1268    
1269     /**
1270     * Fonction permettant de supprimer un lien
1271     * entre la table demande et demandeur
1272     **/
1273     function deleteLinkDossierDemandeur($db, $DEBUG) {
1274     // Suppression
1275     $sql = "DELETE FROM ".DB_PREFIXE."lien_dossier_demandeur ".
1276     "WHERE dossier='".$this->valF['dossier']."'";
1277     // Execution de la requete de suppression de l'objet
1278     $res = $db->query($sql);
1279     // Logger
1280     $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
1281 vpihour 1777 if ( database::isError($res)){
1282     die();
1283     }
1284 nhaye 1376
1285     }
1286    
1287     /**
1288     * Methode de recupération des valeurs postées
1289     **/
1290     function getPostedValues() {
1291     // Récupération des demandeurs dans POST
1292     if (isset($_POST['petitionnaire_principal']) OR
1293     isset($_POST['delegataire']) OR
1294     isset($_POST['petitionnaire'])) {
1295     if( isset($_POST['petitionnaire_principal']) AND
1296     !empty($_POST['petitionnaire_principal'])) {
1297     $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
1298     }
1299     if( isset($_POST['delegataire']) AND
1300     !empty($_POST['delegataire'])) {
1301     $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
1302     }
1303     if( isset($_POST['petitionnaire']) AND
1304     !empty($_POST['petitionnaire'])) {
1305     $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
1306     }
1307     }
1308     }
1309    
1310     /**
1311 fmichon 1713 * Méthode permettant de récupérer les id des demandeurs liés à la table
1312     * liée passée en paramètre
1313     *
1314     * @param string $from Table liée : "demande", "dossier", dossier_autorisation"
1315     * @param string $id Identifiant (clé primaire de la table liée en question)
1316     */
1317 nhaye 1376 function listeDemandeur($from, $id) {
1318     // Récupération des demandeurs de la base
1319     $sql = "SELECT demandeur.demandeur,
1320     demandeur.type_demandeur,
1321     lien_".$from."_demandeur.petitionnaire_principal
1322     FROM ".DB_PREFIXE."lien_".$from."_demandeur
1323     INNER JOIN ".DB_PREFIXE."demandeur
1324     ON demandeur.demandeur=lien_".$from."_demandeur.demandeur
1325     WHERE ".$from." = '".$id."'";
1326     $res = $this->f->db->query($sql);
1327 fmichon 1713 $this->f->addToLog("listeDemandeur(): db->query(\"".$sql."\")", VERBOSE_MODE);
1328 vpihour 1777 if ( database::isError($res)){
1329     die();
1330     }
1331 fmichon 1713 // Stockage du résultat dans un tableau
1332 nhaye 1376 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
1333     if ($row['petitionnaire_principal'] == 't' AND
1334     $row['type_demandeur']=="petitionnaire") {
1335     $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
1336     } elseif ($row['petitionnaire_principal'] == 'f' AND
1337     $row['type_demandeur']=="petitionnaire"){
1338     $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
1339     } elseif ($row['type_demandeur']=="delegataire"){
1340     $this->valIdDemandeur['delegataire']=$row['demandeur'];
1341     }
1342     }
1343     }
1344    
1345     /**
1346     * Ajout de la liste des demandeurs
1347     */
1348     function formSpecificContent($maj) {
1349    
1350     $this->listeDemandeur("dossier", $this->getVal('dossier'));
1351    
1352     if($maj < 2 AND !$this->correct) {
1353     $linkable = true;
1354     } else {
1355     $linkable = false;
1356     }
1357    
1358     // Conteneur de la listes des demandeurs
1359     echo "<div id=\"liste_demandeur\" class=\"demande_hidden_bloc col_12\">";
1360     echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
1361     echo " <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
1362     ._("Petitionnaire")."</legend>";
1363     // Si des demandeurs sont liés à la demande
1364     require_once "../obj/petitionnaire.class.php";
1365     require_once "../obj/delegataire.class.php";
1366     // Affichage du bloc pétitionnaire principal / délégataire
1367     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1368     echo "<div id=\"petitionnaire_principal_delegataire col_12\">";
1369     // Affichage de la synthèse
1370     if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
1371     !empty($this->valIdDemandeur["petitionnaire_principal"])) {
1372     $demandeur = new petitionnaire(
1373     $this->valIdDemandeur["petitionnaire_principal"],
1374     $this->f->db,false);
1375     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
1376     $demandeur -> __destruct();
1377     } elseif ( isset ($this->postedIdDemandeur["petitionnaire_principal"]) AND
1378     !empty($this->postedIdDemandeur["petitionnaire_principal"]) ) {
1379     $demandeur = new petitionnaire(
1380     $this->postedIdDemandeur["petitionnaire_principal"],
1381     $this->f->db,false);
1382     $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
1383     $demandeur -> __destruct();
1384     }
1385     // Si en édition de formulaire
1386 nhaye 1396 if($maj < 2 AND $linkable) {
1387 nhaye 1376 // Bouton d'ajout du pétitionnaire principal
1388     // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1389     echo "<span id=\"add_petitionnaire_principal\"
1390     class=\"om-form-button add-16\">".
1391     _("Saisir le petitionnaire principal").
1392     "</span>";
1393     }
1394     // Bouton d'ajout du delegataire
1395     // L'ID DU DIV ET DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1396     echo "<div id=\"delegataire\">";
1397     // Affichage de la synthèse
1398     if (isset ($this->valIdDemandeur["delegataire"]) AND
1399     !empty($this->valIdDemandeur["delegataire"])) {
1400     $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
1401     $this->f->db,false);
1402     $demandeur -> afficherSynthese("delegataire", $linkable);
1403     $demandeur -> __destruct();
1404     } elseif ( isset ($this->postedIdDemandeur["delegataire"]) AND
1405     !empty($this->postedIdDemandeur["delegataire"]) ) {
1406    
1407     $demandeur = new delegataire($this->postedIdDemandeur["delegataire"],
1408     $this->f->db,false);
1409     $demandeur -> afficherSynthese("delegataire", $linkable);
1410     $demandeur -> __destruct();
1411     }
1412 nhaye 1396 if($maj < 2 AND $linkable) {
1413 nhaye 1376 echo "<span id=\"add_delegataire\"
1414     class=\"om-form-button add-16\">".
1415     _("Saisir le delegataire").
1416     "</span>";
1417     }
1418     echo "</div>";
1419     echo "<div class=\"both\"></div>";
1420     echo "</div>";
1421     // Bloc des pétitionnaires secondaires
1422     // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1423     echo "<div id=\"listePetitionnaires col_12\">";
1424    
1425     // Affichage de la synthèse
1426     if (isset ($this->valIdDemandeur["petitionnaire"]) AND
1427     !empty($this->valIdDemandeur["petitionnaire"])) {
1428    
1429     foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
1430     $demandeur = new petitionnaire($petitionnaire,
1431     $this->f->db,false);
1432     $demandeur -> afficherSynthese("petitionnaire", $linkable);
1433     $demandeur -> __destruct();
1434     }
1435    
1436     } elseif ( isset ($this->postedIdDemandeur["petitionnaire"]) AND
1437     !empty($this->postedIdDemandeur["petitionnaire"]) ) {
1438     foreach ($this->postedIdDemandeur["petitionnaire"] as $petitionnaire) {
1439     $demandeur = new petitionnaire($petitionnaire,
1440     $this->f->db,false);
1441     $demandeur -> afficherSynthese("petitionnaire", $linkable);
1442     $demandeur -> __destruct();
1443     }
1444     }
1445 nhaye 1396 if ($maj < 2 AND $linkable) {
1446 nhaye 1376 // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
1447     echo "<span id=\"add_petitionnaire\"
1448     class=\"om-form-button add-16\">".
1449     _("Ajouter un petitionnaire")
1450     ."</span>";
1451     }
1452     echo "</div>";
1453     echo "</fieldset>";
1454     echo "</div>";
1455     }
1456 vpihour 1978
1457     /**
1458     * Retourne le statut du dossier
1459     * @return string Le statut du dossier d'instruction
1460     */
1461     function getStatut(){
1462    
1463     $statut = '';
1464    
1465     $etat = $this->getVal("etat");
1466     //Si l'état du dossier d'instruction n'est pas vide
1467     if ( $etat != '' ){
1468    
1469     $sql = "SELECT statut
1470     FROM ".DB_PREFIXE."etat
1471     WHERE etat ='".$etat."'";
1472     $statut = $this->db->getOne($sql);
1473     $this->f->addToLog("getStatut() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
1474     if ( database::isError($statut)){
1475     die();
1476     }
1477     }
1478     return $statut;
1479     }
1480    
1481     /**
1482     * Retourne l'identifiant du rapport d'instruction lié du dossier
1483     * @return string L'identifiant du rapport d'instruction lié du dossier
1484     */
1485     function getRapportInstruction(){
1486    
1487     $rapport_instruction = '';
1488    
1489     $sql = "SELECT rapport_instruction
1490     FROM ".DB_PREFIXE."rapport_instruction
1491     WHERE dossier_instruction ='".$this->getVal($this->clePrimaire)."'";
1492     $rapport_instruction = $this->db->getOne($sql);
1493     $this->f->addToLog("getStatut() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
1494     if ( database::isError($rapport_instruction)){
1495     die();
1496     }
1497    
1498     return $rapport_instruction;
1499     }
1500    
1501     /**
1502     * Retourne l'identifiant des données techniques liées du dossier
1503     * @return string L'identifiant des données techniques liées du dossier
1504     */
1505     function getDonneesTechniques(){
1506    
1507     $donnees_techniques = '';
1508    
1509     $sql = "SELECT donnees_techniques
1510     FROM ".DB_PREFIXE."donnees_techniques
1511     WHERE dossier_instruction ='".$this->getVal($this->clePrimaire)."'";
1512     $donnees_techniques = $this->db->getOne($sql);
1513     $this->f->addToLog("getStatut() : db->getOne(\"".$sql."\")", VERBOSE_MODE);
1514     if ( database::isError($donnees_techniques)){
1515     die();
1516     }
1517    
1518     return $donnees_techniques;
1519     }
1520    
1521 fraynaud 3 }// fin classe
1522     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26