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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2112 - (show annotations)
Wed Jul 24 17:08:32 2013 UTC (11 years, 6 months ago) by softime
File size: 73043 byte(s)
Ajout du champ dossier_libelle pour la table dossier
Ajout du champ dossier_autorisation_libelle pour la table dossier_autorisation
Génération OM
Modification des formulaires, messages, tableaux et fil d'Ariane pour affiché le numéro de dossier formaté
Traduction des nouveaux champs
Correction des tests utilisant les numéro de dossier
MàJ HISTORY.txt

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26