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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1717 - (show annotations)
Thu Apr 18 09:23:52 2013 UTC (11 years, 9 months ago) by nhaye
File size: 52241 byte(s)
Ajout de champs nécessaires à la gestion de l'incomplétude

1 <?php
2 /**
3 *
4 *
5 * specific :
6 * - cle secondaire
7 * destruction autorisée que pour le dernier evenement
8 * [delete the last event ]
9 * - variable globale [global variables]
10 * var $archive_date_depot;
11 * var $retourformulaire;
12 * var $idxformulaire;
13 * - modification des données dans dossier trigger avant
14 * [modify dossier data with trigger function]
15 * - function moisdate : pour ajouter des mois a une date
16 * [add months (delay) and calculation final date]
17 * - voir script_lang.js : bible ...
18 *
19 * @package openfoncier
20 * @version SVN : $Id$
21 */
22
23 //
24 require_once "../gen/obj/instruction.class.php";
25
26 //
27 require_once "../services/outgoing/messageenqueuer.php";
28
29 //
30 class instruction extends instruction_gen {
31
32 var $archive_date_depot; // specific
33 var $retourformulaire; // specific
34 var $idxformulaire; // specific
35
36 function instruction($id, &$db, $debug) {
37 $this->constructeur($id, $db, $debug);
38 }
39
40 // {{{ Gestion de la confidentialité des données spécifiques
41
42 /**
43 * Surcharge pour gérer les actions disponibles dans le portlet
44 */
45 function checkAccessibility() {
46 //
47 parent::checkAccessibility();
48 // Si l'utilisateur est un intructeur qui ne correspond pas à la
49 // division du dossier
50 if ($this->f->isUserInstructeur()
51 && isset($this->f->om_utilisateur["division"])
52 && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()) {
53 //
54 $this->actions_sup = array();
55 $this->setParameter("actions", array());
56 }
57 // Si une action 'lu' est présente et que le champ lu est à true
58 // on supprime l'action
59 if (isset($this->actions_sup["lu"])
60 && isset($this->val[array_search("lu", $this->champs)])
61 && $this->val[array_search("lu", $this->champs)]== "t") {
62 unset($this->actions_sup["lu"]);
63 }
64 }
65
66 /**
67 * Cette methode est à surcharger elle permet de tester dans chaque classe
68 * des droits des droits spécifiques en fonction des données
69 */
70 function canAccess() {
71 // Si l'utilisateur est un intructeur qui ne correspond pas à la
72 // division du dossier
73 if ($this->f->isUserInstructeur()
74 && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
75 && $this->getParameter("maj") != 3) {
76 //
77 return false;
78 }
79 //
80 return true;
81 }
82
83 /**
84 * Cette méthode permet de récupérer la division d'un dossier
85 */
86 function getDivisionFromDossier() {
87 //
88 if (!isset($this->val[array_search("dossier", $this->champs)])) {
89 return NULL;
90 }
91 //
92 $sql = "select division from ".DB_PREFIXE."dossier ";
93 $sql .= " where dossier='".$this->val[array_search("dossier", $this->champs)]."'";
94 //
95 $division = $this->db->getOne($sql);
96 $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);
97 database::isError($division);
98 //
99 return $division;
100 }
101
102 /**
103 * Cette méthode permet de récupérer le dossier d'autorisation d'un dossier
104 */
105 function getDossierAutorisationFromDossier($id) {
106 //
107 if (!isset($id)) {
108 return NULL;
109 }
110 //
111 $sql = "select dossier_autorisation from ".DB_PREFIXE."dossier ";
112 $sql .= " where dossier='".$id."'";
113 //
114 $dossier_autorisation = $this->db->getOne($sql);
115 $this->addToLog("getDossierAutorisationFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);
116 database::isError($dossier_autorisation);
117 //
118 return $dossier_autorisation;
119 }
120
121 // }}}
122
123 function setType(&$form, $maj) {
124 //
125 parent::setType($form, $maj);
126 // On cache tous les champs
127 // XXX
128 $form->setType('complement3', 'hidden');
129 $form->setType('bible3', 'hidden');
130 $form->setType('complement4', 'hidden');
131 $form->setType('bible4', 'hidden');
132 $form->setType('complement5', 'hidden');
133 $form->setType('bible5', 'hidden');
134 $form->setType('complement6', 'hidden');
135 $form->setType('bible6', 'hidden');
136 $form->setType('complement7', 'hidden');
137 $form->setType('bible7', 'hidden');
138 $form->setType('complement8', 'hidden');
139 $form->setType('bible8', 'hidden');
140 $form->setType('complement9', 'hidden');
141 $form->setType('bible9', 'hidden');
142 $form->setType('complement10', 'hidden');
143 $form->setType('bible10', 'hidden');
144 $form->setType('complement11', 'hidden');
145 $form->setType('bible11', 'hidden');
146 $form->setType('complement12', 'hidden');
147 $form->setType('bible12', 'hidden');
148 $form->setType('complement13', 'hidden');
149 $form->setType('bible13', 'hidden');
150 $form->setType('complement14', 'hidden');
151 $form->setType('bible14', 'hidden');
152 $form->setType('complement15', 'hidden');
153 $form->setType('bible15', 'hidden');
154 //
155 $form->setType('delai', 'hidden');
156 $form->setType('etat', 'hidden');
157 $form->setType('accord_tacite', 'hidden');
158 $form->setType('action', 'hidden');
159 $form->setType('delai_notification', 'hidden');
160 $form->setType('avis_decision', 'hidden');
161 //
162 $form->setType('archive_delai', 'hidden');
163 $form->setType('archive_etat', 'hidden');
164 $form->setType('archive_accord_tacite', 'hidden');
165 $form->setType('archive_avis', 'hidden');
166 $form->setType('archive_date_complet', 'hidden');
167 $form->setType('archive_date_dernier_depot', 'hidden');
168 $form->setType('archive_date_rejet', 'hidden');
169 $form->setType('archive_date_limite', 'hidden');
170 $form->setType('archive_date_notification_delai', 'hidden');
171 $form->setType('archive_date_decision', 'hidden');
172 $form->setType('archive_date_validite', 'hidden');
173 $form->setType('archive_date_achevement', 'hidden');
174 $form->setType('archive_date_conformite', 'hidden');
175 $form->setType('archive_date_chantier', 'hidden');
176 //
177 $form->setType('numero_arrete', 'hidden');
178
179 //
180 $form->setType('archive_incompletude','hidden');
181 $form->setType('archive_evenement_suivant_tacite','hidden');
182 $form->setType('archive_evenement_suivant_tacite_incompletude','hidden');
183 $form->setType('archive_etat_pendant_incompletude','hidden');
184 $form->setType('archive_date_limite_incompletude','hidden');
185 $form->setType('archive_delai_incompletude','hidden');
186 if ($maj < 2) { //ajouter et modifier
187 $form->setType('destinataire', 'hidden');
188 $form->setType('lettretype', 'hiddenstatic');
189 $form->setType('complement', 'textarea');
190 $form->setType('complement2', 'textarea');
191 $form->setType('bible_auto', 'httpclick');
192 $form->setType('bible', 'httpclick');
193 $form->setType('bible2', 'httpclick');
194 $form->setType('dossier', 'hidden');
195 $form->setType('libelle', 'hiddenstatic');
196 $form->setType('signataire_arrete','select');
197 $form->setType('date_envoi_signature','datedisabled');
198 $form->setType('date_retour_signature','datedisabled');
199 $form->setType('date_envoi_rar','datedisabled');
200 $form->setType('date_retour_rar','datedisabled');
201 $form->setType('date_envoi_controle_legalite','datedisabled');
202 $form->setType('date_retour_controle_legalite','datedisabled');
203 if($maj==0){ // add
204 $form->setType('instruction', 'hiddenstatic');
205 $form->setType('evenement', 'select');
206 $form->setType('date_evenement', 'date2');
207 }else{ // modify
208 $form->setType('instruction', 'hiddenstatic');
209 $form->setType('evenement', 'selecthiddenstatic');
210 //$form->setType('date_evenement', 'hiddenstaticdate');
211 $form->setType('date_evenement', 'date2');
212 // necessaire pour calcul de date en modification
213 //$form->setType('delai', 'hiddenstatic');
214 }
215 } elseif($maj==2){
216 $form->setType('dossier', 'hidden');
217 $form->setType('bible_auto', 'hidden');
218 $form->setType('bible', 'hidden');
219 $form->setType('bible2', 'hidden');
220 }else {
221 $form->setType('destinataire', 'hidden');
222 $form->setType('dossier', 'hidden');
223 $form->setType('bible_auto', 'hidden');
224 $form->setType('bible', 'hidden');
225 $form->setType('bible2', 'hidden');
226 }
227 }
228
229 function setSelect(&$form, $maj,&$db,$debug) {
230 /**
231 * On ne surcharge pas la méthode parent car une requête sur la table
232 * dossier est mauvaise pour les performances, car la requête qui
233 * concerne evenement est plus complexe que celle générée et car les
234 * champs action, avis_decision et etat ne sont pas utilisés comme des
235 * select
236 */
237 if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
238 include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
239 elseif(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc"))
240 include ("../sql/".$db->phptype."/".$this->table.".form.inc");
241
242 //// action
243 //$this->init_select($form, $db, $maj, $debug, "action",
244 // $sql_action, $sql_action_by_id, false);
245
246 //// avis_decision
247 //$this->init_select($form, $db, $maj, $debug, "avis_decision",
248 // $sql_avis_decision, $sql_avis_decision_by_id, false);
249
250 //// dossier
251 //$this->init_select($form, $db, $maj, $debug, "dossier",
252 // $sql_dossier, $sql_dossier_by_id, false);
253
254 //// etat
255 //$this->init_select($form, $db, $maj, $debug, "etat",
256 // $sql_etat, $sql_etat_by_id, false);
257
258 //// evenement
259 //$this->init_select($form, $db, $maj, $debug, "evenement",
260 // $sql_evenement, $sql_evenement_by_id, false);
261
262 // signataire_arrete
263 $this->init_select($form, $db, $maj, $debug, "signataire_arrete",
264 $sql_signataire_arrete, $sql_signataire_arrete_by_id, true);
265
266 /**
267 * Gestion du filtre sur les événements de workflow disponibles
268 * On récupère ici en fonction de l'état du dossier d'instruction en
269 * cours et du type du dossier d'instruction en cours la liste
270 * événements disponibles.
271 */
272 if ($maj == 0) {
273 // Récupération des événements par une jointure entre la table dossier
274 // et la table transition et la table evenement et la table
275 // lien_dossier_instruction_type_evenement en fonction de l'identifiant
276 // du dossier d'instruction en cours
277 $sql = "SELECT
278 evenement.evenement,
279 (evenement.libelle||' ['||evenement.action||']') as lib
280 FROM ".DB_PREFIXE."dossier
281 INNER JOIN ".DB_PREFIXE."lien_dossier_instruction_type_evenement
282 ON dossier.dossier_instruction_type=lien_dossier_instruction_type_evenement.dossier_instruction_type
283 INNER JOIN ".DB_PREFIXE."evenement
284 ON evenement.evenement=lien_dossier_instruction_type_evenement.evenement
285 INNER JOIN ".DB_PREFIXE."transition
286 ON evenement.evenement = transition.evenement
287 AND dossier.etat=transition.etat
288 WHERE dossier.dossier='".$this->idxformulaire."'
289 ORDER BY evenement.action";
290 $res = $db->query($sql);
291 $this->addToLog("setSelect(): db->query(\"".$sql."\");", VERBOSE_MODE);
292 if (database::isError($res)) {
293 die($res->getMessage());
294 }
295 // Remplissage du tableau du select
296 $contenu = array(
297 0 => array("",),
298 1 => array(_('choisir')." "._('evenement'),)
299 );
300 while ($row=& $res->fetchRow()) {
301 $contenu[0][] = $row[0];
302 $contenu[1][] = $row[1];
303 }
304 $form->setSelect("evenement", $contenu);
305 } else {
306 $sql = "SELECT
307 (evenement.libelle||' ['||evenement.action||']') as lib
308 FROM ".DB_PREFIXE."evenement
309 WHERE evenement.evenement=".$this->getVal("evenement")."";
310 $res = $db->getone($sql);
311 $this->addToLog("setSelect(): db->getone(\"".$sql."\");", VERBOSE_MODE);
312 if (database::isError($res)) {
313 die($res->getMessage());
314 }
315 //
316 $contenu = array(
317 0 => array($this->getVal("evenement"),),
318 1 => array($res,)
319 );
320 $form->setSelect("evenement", $contenu);
321 }
322
323 /**
324 * Gesion des liens vers la bible
325 */
326 // lien bible_auto
327 $contenu = array(_("automatique"));
328 $form->setSelect("bible_auto",$contenu);
329 // lien bible1
330 $contenu = array(_("bible"));
331 $form->setSelect("bible",$contenu);
332 // lien bible2
333 $contenu = array(_("bible"));
334 $form->setSelect("bible2",$contenu);
335 }
336
337 function cleSecondaire($id, &$db, $val, $DEBUG) {
338 //
339 parent::cleSecondaire($id, $db, $val, $DEBUG);
340
341 /**
342 * Vérification que l'élément supprimé est le dernier pour pouvoir
343 * remodifier les données de manière itérative.
344 */
345 // Initialisation
346 $dernierevenement = "";
347 // Récupération du dernier élément de la table d'instruction qui
348 // concerne le dossier en cours
349 $sql = "SELECT max(instruction)
350 FROM ".DB_PREFIXE."instruction
351 WHERE dossier ='".$this->idxformulaire."'";
352 $dernierevenement = $db->getOne($sql);
353 $this->addToLog("setSelect(): db->getone(\"".$sql."\");", VERBOSE_MODE);
354 if (database::isError($dernierevenement)) {
355 die($dernierevenement->getMessage());
356 }
357 // Si on se trouve effectivement sur le dernier evenement d'instruction
358 if ($dernierevenement == $id) {
359 // Alors on valide la suppression
360 $this->correct = true;
361 $this->addToMessage(_('Destruction_chronologique'));
362 } else {
363 // Alors on annule la suppression
364 $this->correct = false;
365 $this->addToMessage(_("Seul le dernier evenement d'instruction peut etre supprime."));
366 }
367 }
368
369 // Vérification de la non modification des dates de suivi
370 function updateDate($champ) {
371 if($this->valF[$champ] != "") {
372 if($this->getVal($champ) != "" AND $this->getVal($champ) != $this->valF[$champ]) {
373 $this->correct = false;
374 $this->addToMessage(_("Les dates de suivis ne peuvent etre modifiees"));
375 }
376 }
377 }
378
379 // Sélectionne le signataire_arrete par défaut
380 function setVal(&$form,$maj,$validation){
381
382 // Ajout
383 if($maj == 0) {
384
385 // Création de la requête
386 $sql = "SELECT signataire_arrete
387 FROM ".DB_PREFIXE."signataire_arrete
388 WHERE defaut IS TRUE";
389
390 // Exécution de la requête
391 $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
392 $res = $this->f->db->query($sql);
393 $this->f->isDatabaseError();
394
395 $row = $res->fetchrow(DB_FETCHMODE_ASSOC);
396
397 if ( isset($row['signataire_arrete']) && is_numeric($row['signataire_arrete'])){
398
399 $form->setVal("signataire_arrete",$row['signataire_arrete']);
400 }
401 }
402 }
403
404 /*Met des valeurs par défaut dans certains des sous-formulaire*/
405 function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
406 if ($validation==0 and $maj<2) {
407 if ($maj == 0){
408 $form->setVal("destinataire", $idxformulaire);
409 $form->setVal("dossier", $idxformulaire);
410 $form->setVal("date_evenement", date('Y-m-d'));
411 }
412 $form->setVal("bible_auto","bible_auto()");
413 $form->setVal("bible","bible()");
414 $form->setVal("bible2","bible2()");
415 }
416 $this->retourformulaire=$retourformulaire;
417 $this->idxformulaire=$idxformulaire;
418 }
419
420
421 function setLayout(&$form, $maj){
422 if ( $maj < 2 OR $maj == 3 ) {
423 /*Champ sur lequel s'ouvre le bloc 1 */
424 $form->setBloc('evenement','D',"","col_12");
425
426 $form->setFieldset('evenement','D',_('Evenement'));
427 $form->setFieldset('lettretype','F','');
428
429 $form->setBloc('lettretype','F');
430
431 $form->setBloc('date_finalisation_courrier','D',"","col_12");
432
433 $form->setFieldset('date_finalisation_courrier','D',_('Dates'));
434 $form->setBloc('date_finalisation_courrier','D',"","col_6");
435 $form->setBloc('date_envoi_controle_legalite','F');
436
437 $form->setBloc('signataire_arrete','D',"","col_6");
438 $form->setBloc('date_retour_controle_legalite','F');
439 $form->setFieldset('date_retour_controle_legalite','F','');
440
441 $form->setBloc('date_retour_controle_legalite','F');
442
443 $form->setBloc('complement','D',"","col_12");
444 $form->setFieldset('complement','D',_('Complement'));
445 $form->setFieldset('bible','F','');
446 $form->setBloc('bible','F');
447
448 $form->setBloc('complement2','D',"","col_12");
449 $form->setFieldset('complement2','D',_('Complement 2'));
450 $form->setFieldset('bible2','F','');
451 $form->setBloc('bible2','F');
452 }
453 }
454
455 function setLib(&$form, $maj) {
456 //
457 parent::setLib($form, $maj);
458 //
459 $form->setLib('bible_auto', "");
460 $form->setLib('bible', "");
461 $form->setLib('bible2', "");
462 }
463
464 function triggerajouter($id, &$db, $val, $DEBUG) {
465 /**
466 * Le code suivant permet de récupérer des valeurs des tables evenement
467 * et dossier pour les stocker dans l'instruction :
468 * DEPUIS L'EVENEMENT
469 * - action
470 * - delai
471 * - accord_tacite
472 * - etat
473 * - avis_decision
474 * - delai_notification
475 * - lettretype
476 * DEPUIS LE DOSSIER D'INSTRUCTION
477 * - archive_delai
478 * - archive_accord_tacite
479 * - archive_etat
480 * - archive_avis
481 * - date_complet
482 * - date_rejet
483 * - date_limite
484 * - date_notification_delai
485 * - date_decision
486 * - date_validite
487 * - date_achevement
488 * - date_chantier
489 * - date_conformite
490 * Il permet également de stocker la date_depot du dossier d'instruction
491 * dans l'attribut $this->archive_date_depot de la classe.
492 */
493 // Récupération de tous les paramètres de l'événement sélectionné
494 $sql = "SELECT * FROM ".DB_PREFIXE."evenement
495 WHERE evenement=".$this->valF['evenement'];
496 $res = $db->query($sql);
497 $this->addToLog("triggerajouter(): db->query(\"".$sql."\");", VERBOSE_MODE);
498 if (database::isError($res)) {
499 die($res->getMessage());
500 }
501 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
502 // Récupération de l'identifiant de l'action
503 // si une action est paramétrée dans l'événement
504 $this->valF['action'] = NULL;
505 if (isset($row['action']) and !empty($row['action'])) {
506 $this->valF['action']=$row['action'];
507 }
508 // Récupération de la valeur du délai
509 $this->valF['delai'] = $row['delai'];
510 // Récupération de l'identifiant de l'état
511 // si un état est paramétré dans l'événement
512 $this->valF['etat']=NULL;
513 if (isset($row['etat']) and !empty($row['etat'])) {
514 $this->valF['etat']=$row['etat'];
515 }
516 // Récupération de la valeur d'accord tacite
517 $this->valF['accord_tacite']=$row['accord_tacite'];
518 // Récupération de la valeur du délai de notification
519 $this->valF['delai_notification']=$row['delai_notification'];
520 // Récupération de l'identifiant de l'avis
521 // si un avis est paramétré dans l'événement
522 $this->valF['avis_decision'] = NULL;
523 if(isset($row['avis_decision']) and !empty($row['avis_decision'])) {
524 $this->valF['avis_decision']=$row['avis_decision'];
525 }
526 // Récupération de la valeur de la lettre type
527 // Sinon on lui affecte lavaleur par défaut standard
528 if ($row['lettretype'] != "") {
529 $this->valF['lettretype']=$row['lettretype'];
530 } else {
531 $this->valF['lettretype'] = "standard"; // XXX
532 }
533 }
534 // Récupération de toutes les valeurs du dossier d'instruction en cours
535 $sql = "SELECT * FROM ".DB_PREFIXE."dossier
536 WHERE dossier='".$this->valF['dossier']."'";
537 $res = $db->query($sql);
538 $this->addToLog("triggerajouter(): db->query(\"".$sql."\");", VERBOSE_MODE);
539 if (database::isError($res)) {
540 die($res->getMessage());
541 }
542 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
543 // XXX On stocke la date de dépôt actuelle du dossier d'instruction
544 // dans un attribut de la classe
545 $this->archive_date_depot = $row['date_depot'];
546 // Récupération de la valeur actuelle du délai, de l'accord tacite,
547 // de l'état et de l'avis du dossier d'instruction
548 $this->valF['archive_delai']=$row['delai'];
549 $this->valF['archive_accord_tacite']=$row['accord_tacite'];
550 $this->valF['archive_etat']=$row['etat'];
551 $this->valF['archive_avis']=$row['avis_decision'];
552 // Récupération de la valeur actuelle des 9 dates du dossier
553 // d'instruction
554 if ($row['date_complet'] != '') {
555 $this->valF['archive_date_complet']=$row['date_complet'];
556 }
557 if ($row['date_dernier_depot'] != '') {
558 $this->valF['archive_date_dernier_depot']=$row['date_dernier_depot'];
559 }
560 if ($row['date_rejet']!='') {
561 $this->valF['archive_date_rejet']= $row['date_rejet'];
562 }
563 if ($row['date_limite']!='') {
564 $this->valF['archive_date_limite']= $row['date_limite'];
565 }
566 if ($row['date_notification_delai']!='') {
567 $this->valF['archive_date_notification_delai']= $row['date_notification_delai'];
568 }
569 if ($row['date_decision']!='') {
570 $this->valF['archive_date_decision']= $row['date_decision'];
571 }
572 if ($row['date_validite']!='') {
573 $this->valF['archive_date_validite']= $row['date_validite'];
574 }
575 if ($row['date_achevement']!='') {
576 $this->valF['archive_date_achevement']= $row['date_achevement'];
577 }
578 if ($row['date_chantier']!='') {
579 $this->valF['archive_date_chantier']= $row['date_chantier'];
580 }
581 if ($row['date_conformite']!='') {
582 $this->valF['archive_date_conformite']= $row['date_conformite'];
583 }
584 }
585 }
586
587 // Test si une restriction est valide
588 // return boolean
589 function restrictionIsValid($restriction){
590
591 /* Met des espace avant et après les opérateurs puis transforme la chaine en
592 * un tableau */
593 $tabRestriction = str_replace(">="," >= ",
594 str_replace("<="," <= ",
595 str_replace("-"," - ",
596 str_replace("+"," + ",$restriction))));
597 $tabRestriction = explode( " ", $tabRestriction);
598
599 //Variables de résultat
600 $res = array();
601 $i = 0;
602 $comp = "";
603
604
605 //Test que le tableau n'est pas vide
606 if ( count($tabRestriction) > 0 ){
607
608 $res[0] = $this->getRestrictionValue($tabRestriction[0]);
609
610 //Calcul des variables
611 for ( $j = 1 ; $j < count($tabRestriction) ; $j += 2 ) {
612
613 //Variable de comparaison
614 if ( strcmp( ">=", $tabRestriction[$j] ) == 0 ||
615 strcmp( "<=", $tabRestriction[$j]) ==0 ){
616
617 $comp = $tabRestriction[$j];
618 $res[++$i] = $this->getRestrictionValue($tabRestriction[$j+1]);
619 }
620 // Fait l'addition
621 elseif ( strcmp( "+", $tabRestriction[$j]) == 0 ){
622
623 $res[$i] = $this->moisdate( $res[$i], $this->getRestrictionValue($tabRestriction[$j+1]) );
624 }
625 }
626 }
627
628 // Effectue le test
629 if ( strcmp($comp, ">=") == 0 ){
630
631 if ( $res[0] >= $res[1] || $res[0] == "" ){
632
633 return true;
634 }
635 else {
636
637 return false;
638 }
639 }
640 elseif ( strcmp($comp, "<=") == 0 ){
641
642 if ( $res[0] <= $res[1] || $res[1] == "" ){
643
644 return true;
645 }
646 else {
647
648 return false;
649 }
650 }
651
652 return true;
653 }
654
655 //Retourne la valeur de valF si $restrictionValue n'est pas un chiffre, le chiffre sinon
656 function getRestrictionValue($restrictionValue){
657
658 return ( is_numeric($restrictionValue) ) ?
659 $restrictionValue :
660 $this->valF[$restrictionValue];
661 }
662
663 function regle($regle){
664 $temp = explode ("+",$regle);
665 //echo '|'.$regle;
666 // cas rejet
667 if($regle=="null") // 1 dimension -> null
668 return null;
669 if(sizeof($temp)==1) // 1 dimension
670 if($temp[0]=="archive_date_depot") // initialisation avec le depot
671 return $this->$regle;
672 else // cas general
673 return $this->valF[$regle];
674 if(sizeof($temp)==2){ // 2 dimensions
675 if($temp[0]=="archive_date_depot") //initialisation avec le depot
676 if(is_numeric($temp[1]))
677 return $this->moisdate($this->$temp[0], $temp[1]);
678 else
679 return $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);
680 if($temp[0]=="archive_delai") // majoration de delai
681 return $this->valF[$temp[0]]+$this->valF[$temp[1]];
682 // cas general 2 dimensions
683 if(is_numeric($temp[1]))
684 return $this->moisdate($this->valF[$temp[0]], $temp[1]);
685 else
686 return $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
687 }
688 if(sizeof($temp)==3){ // 3 dimensions
689 // cas date de validite de sursis
690 if(is_numeric($temp[1]))
691 $temp1 = $this->moisdate($this->valF[$temp[0]], $temp[1]);
692 else
693 $temp1 = $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
694 if(is_numeric($temp[2]))
695 return $this->moisdate($temp1, $temp[2]);
696 else
697 return $this->moisdate($temp1, $this->valF[$temp[2]]);
698 }
699 }
700
701
702
703 function triggerajouterapres($id,&$db,$val,$DEBUG) {
704 /**
705 * Mise à jour des valeurs du dossier en fonction des valeurs calculées
706 * par l'action
707 */
708 // Initialisation
709 $valF = "";
710 // Récupération des paramètres de l'action
711 $sql = "SELECT * FROM ".DB_PREFIXE."action
712 WHERE action='".$this->valF['action']."'";
713 $res = $db->query($sql);
714 $this->addToLog("triggerajouterapres(): db->query(\"".$sql."\");", VERBOSE_MODE);
715 if (database::isError($res)) {
716 die($res->getMessage());
717 }
718 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
719 // pour chacune des regles, on applique la regle
720 if($row['regle_etat']!=''){
721 $valF['etat'] = $this->regle($row['regle_etat']);
722 }
723 if($row['regle_delai']!=''){
724 $valF['delai'] = $this->regle($row['regle_delai']);
725 }
726 if($row['regle_accord_tacite']!=''){
727 $valF['accord_tacite'] = $this->regle($row['regle_accord_tacite']);
728 }
729 if($row['regle_avis']!=''){
730 $valF['avis_decision'] = $this->regle($row['regle_avis']);
731 }
732 if($row['regle_date_limite']!=''){
733 $valF['date_limite']= $this->regle($row['regle_date_limite']);
734 }
735 if($row['regle_date_complet']!=''){
736 $valF['date_complet']= $this->regle($row['regle_date_complet']);
737 }
738 if($row['regle_date_dernier_depot']!=''){
739 $valF['date_dernier_depot']= $this->regle($row['regle_date_dernier_depot']);
740 }
741 if($row['regle_date_notification_delai']!=''){
742 $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
743 }
744 if($row['regle_date_decision']!=''){
745 $valF['date_decision']= $this->regle($row['regle_date_decision']);
746 }
747 if($row['regle_date_rejet']!=''){
748 $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
749 }
750 if($row['regle_date_validite']!=''){
751 $valF['date_validite']= $this->regle($row['regle_date_validite']);
752 }
753 if($row['regle_date_chantier']!=''){
754 $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
755 }
756 if($row['regle_date_achevement']!=''){
757 $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
758 }
759 if($row['regle_date_conformite']!=''){
760 $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
761 }
762
763 }
764 // Si des valeurs ont été calculées alors on met à jour l'enregistrement
765 if ($valF != "") {
766 // On met à jour le dossier
767 $cle = " dossier='".$this->valF['dossier']."'";
768 $res1 = $db->autoExecute(DB_PREFIXE.'dossier', $valF, DB_AUTOQUERY_UPDATE, $cle);
769 $this->addToLog("triggerajouterapres(): db->autoexecute(\"".DB_PREFIXE."dossier\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$cle."\");", VERBOSE_MODE);
770 if (database::isError($res1)) {
771 die($res->getMessage());
772 }
773 // Affichage d'informations à l'utilisateur
774 $this->addToMessage(_('enregistrement')." ".$this->valF['dossier']." "._('table')." dossier [".$db->affectedRows()." "._('enregistrement')." "._('mis_a_jour')."]");
775 }
776
777 /**
778 * REFERENTIEL ERP
779 */
780 // verification si envoi vers ERP est active
781 if ($this->f->getParameter('option_erp') != "") {
782 // la nature du dossier
783 $nature_dossier = substr($this->idxformulaire,0,2);
784 //
785 $sql = "SELECT erp
786 FROM ".DB_PREFIXE."dossier
787 WHERE dossier='".$this->valF['dossier']."'";
788 $dossier_erp = $this->db->getone($sql);
789 $this->addToLog("triggerajouterapres(): db->getone(\"".$sql."\");", VERBOSE_MODE);
790 if (database::isError($res)) {
791 die($res->getMessage());
792 }
793 //
794 $sql = "SELECT libelle
795 FROM ".DB_PREFIXE."evenement
796 WHERE evenement='".$this->valF['evenement']."'";
797 $evenement_libelle = $this->db->getone($sql);
798 $this->addToLog("triggerajouterapres(): db->getone(\"".$sql."\");", VERBOSE_MODE);
799 if (database::isError($res)) {
800 die($res->getMessage());
801 }
802 //
803 if ($dossier_erp == 't') {
804 // envoi du message en cas d'un PC qui est ERP et sur lequel un evenement
805 // d'acceptation etait fait
806 if ($nature_dossier ==
807 $this->f->getParameter('erp_evenement_accepter_dossier_PC')
808 && $this->valF['evenement'] ==
809 $this->f->getParameter('erp_evenement_accepter_sans_reserve')) {
810 $msgenque = new MessageEnqueuer();
811 $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
812 $msgenque->setDecision($evenement_libelle);
813 $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);
814 }
815 if ($this->valF['evenement'] ==
816 $this->f->getParameter('erp_evenement_refuser_dossier')) {
817 $msgenque = new MessageEnqueuer();
818 $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
819 $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);
820 }
821 }
822 } // fin de if ($this->f->getParameter('option_erp') != "")
823
824 // Mise à jour des données du dossier d'autorisation
825 require_once "../obj/dossier_autorisation.class.php";
826 $da = new dossier_autorisation($this->getDossierAutorisationFromDossier($this->valF['dossier']), $this->db, DEBUG);
827 $da->majDossierAutorisation();
828 }
829
830 function triggermodifierapres($id,&$db,$val,$DEBUG) {
831 /**
832 * L'objectif ici est d'effectuer les recalculs de date dans le dossier
833 * si la date de l'evenement est modifiee
834 */
835 // Initialisation
836 $valF = "";
837 // Récupération de l'action correspondante à l'événement
838 $sql = "SELECT action
839 FROM ".DB_PREFIXE."evenement
840 WHERE evenement=".$this->valF['evenement'];
841 $action = $db->getOne($sql);
842 $this->addToLog("triggermodifierapres(): db->getone(\"".$sql."\");", VERBOSE_MODE);
843 if (database::isError($action)) {
844 die($action->getMessage());
845 }
846
847 // Récupération de tous les paramètres de l'événement sélectionné
848 $sql = "SELECT * FROM ".DB_PREFIXE."evenement
849 WHERE evenement=".$this->valF['evenement'];
850 $res = $db->query($sql);
851 $this->addToLog("triggerajouter(): db->query(\"".$sql."\");", VERBOSE_MODE);
852 if (database::isError($res)) {
853 die($res->getMessage());
854 }
855 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
856 // Si la date de retour signature est éditée on vérifie si il existe un événement automatique
857 if ($this->getVal('date_retour_signature') == "" AND $this->valF['date_retour_signature'] != "") {
858 $new_instruction = new instruction("]", $db, $DEBUG);
859 // Création d'un tableau avec la liste des champs de l'instruction
860 foreach($new_instruction->champs as $champ) {
861 $valNewInstr[$champ] = "";
862 }
863 // Définition des valeurs de la nouvelle instruction
864 $valNewInstr["evenement"] = $row['evenement_retour_signature'];
865 $valNewInstr["destinataire"] = $this->valF['destinataire'];
866 $valNewInstr["dossier"] = $this->valF['dossier'];
867 $valNewInstr["date_evenement"] = date("d/m/Y");
868 $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
869 }
870 // Si la date de retour AR est éditée on vérifie si il existe un événement automatique
871 if ($this->getVal('date_retour_rar') == "" AND $this->valF['date_retour_rar'] != "") {
872 $new_instruction = new instruction("]", $db, $DEBUG);
873 // Création d'un tableau avec la liste des champs de l'instruction
874 foreach($new_instruction->champs as $champ) {
875 $valNewInstr[$champ] = "";
876 }
877 // Définition des valeurs de la nouvelle instruction
878 $valNewInstr["evenement"] = $row['evenement_retour_ar'];
879 $valNewInstr["destinataire"] = $this->valF['destinataire'];
880 $valNewInstr["dossier"] = $this->valF['dossier'];
881 $valNewInstr["date_evenement"] = date("d/m/Y");
882 $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
883 }
884 }
885
886 // Récupération des paramètres de l'action
887 $sql = "SELECT * FROM ".DB_PREFIXE."action
888 WHERE action='".$action."'";
889 $res = $db->query($sql);
890 $this->addToLog("triggermodifierapres(): db->query(\"".$sql."\");", VERBOSE_MODE);
891 if (database::isError($res)) {
892 die($res->getMessage());
893 }
894 while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
895 // application des regles sur le courrier + delai
896 if(preg_match("/date_evenement/",$row['regle_date_limite'])){
897 $valF['date_limite']= $this->regle($row['regle_date_limite']);
898 }
899 if(preg_match("/date_evenement/",$row['regle_date_complet'])){
900 $valF['date_complet']= $this->regle($row['regle_date_complet']);
901 }
902 if(preg_match("/date_evenement/",$row['regle_date_dernier_depot'])){
903 $valF['date_dernier_depot']= $this->regle($row['regle_date_dernier_depot']);
904 }
905 if(preg_match("/date_evenement/",$row['regle_date_notification_delai'])){
906 $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
907 }
908 if(preg_match("/date_evenement/",$row['regle_date_decision'])){
909 $valF['date_decision']= $this->regle($row['regle_date_decision']);
910 }
911 if(preg_match("/date_evenement/",$row['regle_date_rejet'])){
912 $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
913 }
914 if(preg_match("/date_evenement/",$row['regle_date_validite'])){
915 $valF['date_validite']= $this->regle($row['regle_date_validite']);
916 }
917 if(preg_match("/date_evenement/",$row['regle_date_chantier'])){
918 $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
919 }
920 if(preg_match("/date_evenement/",$row['regle_date_achevement'])){
921 $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
922 }
923 if(preg_match("/date_evenement/",$row['regle_date_conformite'])){
924 $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
925 }
926 }
927 // Si des valeurs ont été calculées alors on met à jour l'enregistrement
928 if ($valF != "") {
929 // On met à jour le dossier
930 $cle = " dossier='".$this->valF['dossier']."'";
931 $res1 = $db->autoExecute(DB_PREFIXE.'dossier', $valF, DB_AUTOQUERY_UPDATE, $cle);
932 $this->addToLog("triggerajouterapres(): db->autoexecute(\"".DB_PREFIXE."dossier\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$cle."\");", VERBOSE_MODE);
933 if (database::isError($res1)) {
934 die($res->getMessage());
935 }
936 // Affichage d'informations à l'utilisateur
937 $this->addToMessage(_('enregistrement')." ".$this->valF['dossier']." "._('table')." dossier [".$db->affectedRows()." "._('enregistrement')." "._('mis_a_jour')."]");
938 }
939
940 /**
941 * REFERENTIEL ARRETE
942 */
943 if ($this->f->getParameter('option_referentiel_arrete') != "") {
944 if ($this->valF['date_retour_signature'] != $this->getVal('date_retour_signature')) {
945 $msgenque = new MessageEnqueuer();
946 $sqlArrete = "SELECT instruction.signataire_arrete as \"ws_DA_In_Signataire\",
947 signataire_arrete.nom as \"ws_DA_In_Sign_Nom\",
948 signataire_arrete.prenom as \"ws_DA_In_Sign_Prenom\",
949 signataire_arrete.qualite as \"ws_DA_In_Sign_Qualite\",
950 instruction.date_evenement as \"ws_DA_In_Dte_Redac\",
951 '' as \"ws_DA_In_lieu_Redac\",
952 instruction.dossier as \"ws_DA_In_N_Doss_DAS\",
953 '' as \"ws_DA_In_Sigle\",
954 instruction.etat as \"ws_DA_In_Decision\",
955 dossier.date_depot as \"ws_DA_In_Dte_Depot_Dem\",
956 dossier.terrain_numero as \"ws_DA_In_N_Voie\",
957 '' as \"ws_DA_In_Type_Voie\",
958 dossier.complement as \"ws_DA_In_Adresse1\",
959 dossier.terrain_adresse_lieu_dit as \"ws_DA_In_Adresse2\",
960 dossier.terrain_adresse_code_postal as \"ws_DA_In_CP\",
961 dossier.terrain_adresse_localite as \"ws_DA_In_Ville\",
962 dossier.terrain_references_cadastrales as \"ws_DA_In_Nb_Parcelle\",
963 '' as \"ws_DA_In_Detail_Parcelle\",
964 CONCAT(donnees_techniques.am_projet_desc,' ',donnees_techniques.co_projet_desc) as \"ws_DA_In_Nature_Trvx\",
965 '' as \"ws_DA_In_Destination_Trvx\",
966 dossier_autorisation_type_detaille.code as \"ws_DA_In_Type_Dos_Autoris\",
967 COALESCE(particulier_nom,personne_morale_raison_sociale) as \"ws_DA_In_Nom_Petition\",
968 COALESCE(particulier_prenom, personne_morale_denomination) as \"ws_DA_In_Prenom_Petition\",
969 '' as \"ws_DA_In_Piece_GED\",
970 instruction.date_retour_signature as \"ws_DA_In_Dte_Signature\"
971 FROM ".DB_PREFIXE."instruction
972 LEFT JOIN ".DB_PREFIXE."signataire_arrete ON
973 instruction.signataire_arrete = signataire_arrete.signataire_arrete
974 LEFT JOIN ".DB_PREFIXE."dossier ON
975 instruction.dossier = dossier.dossier
976 LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur ON
977 lien_dossier_demandeur.dossier = dossier.dossier
978 LEFT JOIN ".DB_PREFIXE."demandeur ON
979 lien_dossier_demandeur.demandeur = demandeur.demandeur
980 LEFT JOIN ".DB_PREFIXE."dossier_instruction_type ON
981 dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type
982 LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille ON
983 dossier_instruction_type.dossier_autorisation_type_detaille =
984 dossier_autorisation_type_detaille.dossier_autorisation_type_detaille
985 LEFT JOIN ".DB_PREFIXE."donnees_techniques ON
986 donnees_techniques.dossier_instruction = dossier.dossier
987 WHERE instruction.instruction = ".$this->valF['instruction'];
988 $resArrete = $this->db->query($sqlArrete);
989 $this->f->addToLog("triggerModifierApres(): db->query(\"".$sqlArrete."\");", VERBOSE_MODE);
990 $this->f->isDatabaseError();
991
992 $rowArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);
993 $msgenque->setArreteInfo($rowArrete);
994 $msgenque->enqueueMessage($msgenque::$ARRETE_ENVOI);
995 }
996 }
997
998 // Mise à jour des données du dossier d'autorisation
999 require_once "../obj/dossier_autorisation.class.php";
1000 $da = new dossier_autorisation($this->getDossierAutorisationFromDossier($this->valF['dossier']), $this->db, DEBUG);
1001 $da->majDossierAutorisation();
1002 }
1003
1004 function triggersupprimer($id,&$db,$val,$DEBUG) {
1005 /**
1006 * L'objectif ici est de repositionner les valeurs récupérées en
1007 * archive dans le dossier d'instruction avant de supprimer l'événement
1008 * d'instruction
1009 */
1010 // Mise à jour des 4 valeurs modifiées par l'action
1011 $valF['delai'] = $val['archive_delai'];
1012 $valF['accord_tacite'] = $val['archive_accord_tacite'];
1013 $valF['etat'] = $val['archive_etat'];
1014 if ($val['archive_avis'] != '') {
1015 $valF['avis_decision'] = $val['archive_avis'];
1016 } else {
1017 $valF['avis_decision'] = NULL;
1018 }
1019 // Mise à jour des 10 dates avec la valeur présente dans le formulaire
1020 // de suppression. Si la valeur de la date est vide alors on fixe
1021 // à la valeur NULL
1022 //
1023 if ($val['archive_date_complet'] != '') {
1024 $valF['date_complet'] = $val['archive_date_complet'];
1025 } else {
1026 $valF['date_complet'] = NULL;
1027 }
1028 if ($val['archive_date_dernier_depot'] != '') {
1029 $valF['date_dernier_depot'] = $val['archive_date_dernier_depot'];
1030 } else {
1031 $valF['date_dernier_depot'] = NULL;
1032 }
1033 if ($val['archive_date_rejet'] != '') {
1034 $valF['date_rejet'] = $val['archive_date_rejet'];
1035 } else {
1036 $valF['date_rejet'] = NULL;
1037 }
1038 if ($val['archive_date_limite'] != '') {
1039 $valF['date_limite'] = $val['archive_date_limite'];
1040 } else {
1041 $valF['date_limite'] = NULL;
1042 }
1043 if ($val['archive_date_notification_delai'] != '') {
1044 $valF['date_notification_delai'] = $val['archive_date_notification_delai'];
1045 } else {
1046 $valF['date_notification_delai'] = NULL;
1047 }
1048 if ($val['archive_date_decision'] != '') {
1049 $valF['date_decision'] = $val['archive_date_decision'];
1050 } else {
1051 $valF['date_decision'] = NULL;
1052 }
1053 if ($val['archive_date_validite'] != '') {
1054 $valF['date_validite'] = $val['archive_date_validite'];
1055 } else {
1056 $valF['date_validite'] = NULL;
1057 }
1058 if ($val['archive_date_achevement'] != '') {
1059 $valF['date_achevement'] = $val['archive_date_achevement'];
1060 } else {
1061 $valF['date_achevement'] = NULL;
1062 }
1063 if ($val['archive_date_chantier'] != '') {
1064 $valF['date_chantier'] = $val['archive_date_chantier'];
1065 } else {
1066 $valF['date_chantier'] = NULL;
1067 }
1068 if ($val['archive_date_conformite'] != '') {
1069 $valF['date_conformite'] = $val['archive_date_conformite'];
1070 } else {
1071 $valF['date_conformite'] = NULL;
1072 }
1073 // On met à jour le dossier
1074 $cle = " dossier='".$val['dossier']."'";
1075 $res = $db->autoExecute(DB_PREFIXE.'dossier', $valF, DB_AUTOQUERY_UPDATE, $cle);
1076 $this->addToLog("triggersupprimer(): db->autoexecute(\"".DB_PREFIXE."dossier\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$cle."\");", VERBOSE_MODE);
1077 if (database::isError($res)) {
1078 die($res->getMessage());
1079 }
1080 // Affichage d'informations à l'utilisateur
1081 $this->addToMessage(_("Suppression de l'instruction")." [".$db->affectedRows()." "._('enregistrement')." "._('mis_a_jour')."]");
1082
1083 }
1084
1085 function triggersupprimerapres($id,&$db,$val,$DEBUG) {
1086
1087 // Mise à jour des données du dossier d'autorisation
1088 require_once "../obj/dossier_autorisation.class.php";
1089 $da = new dossier_autorisation($this->getDossierAutorisationFromDossier($val["dossier"]), $this->db, DEBUG);
1090 $da->majDossierAutorisation();
1091 }
1092
1093 // =============================================
1094 // calcul de date avec ajout de mois (delais)
1095 // [add months (delay) and calculation final date]
1096 // LIMITE DE LA FONCTION si delai >24 MOIS
1097 // [limit : delay < 24 month]
1098 // =============================================
1099 function moisdate($date,$delaimois) {
1100 $temp = explode("-" , $date);
1101 $jour = (int) $temp[2];
1102 $mois = (int) $temp[1];
1103 $annee = (int) $temp[0];
1104 // calcul si delai superieur à 12 (limite 24) [delay > 24 month]
1105 if($delaimois>=12){
1106 $delaimois=$delaimois-12;
1107 $annee=$annee+1;
1108 }
1109 if($delaimois>=12){
1110 $delaimois=$delaimois-12;
1111 $annee=$annee+1;
1112 }
1113 // mois
1114 $mois=$mois+$delaimois;
1115 // calcul mois annee [calculation number of years if > 12 month]
1116 // nb de mois > à 12
1117 if ($mois>12){
1118 $mois=$mois-12;
1119 $annee=$annee+1;
1120 }
1121 // Calcul du nombre de jours dans le mois sélectionné [calculation number of days]
1122 switch($mois) {
1123 case "2":
1124 if ($annee % 4 == 0 && $annee % 100 != 0 || $annee % 400 == 0)
1125 $jourmax = 29;
1126 else
1127 $jourmax = 28;
1128 break;
1129 case "4":
1130 case "6":
1131 case "9":
1132 case "11":
1133 $jourmax = 30;
1134 break;
1135 default:
1136 $jourmax = 31;
1137 }
1138 if ($jour > $jourmax)
1139 $jour = $jourmax;
1140 //$dateretour=$annee."-".$mois."-".$jour;
1141 return $annee."-".$mois."-".$jour ;
1142 }
1143
1144 // Vérifie la restriction sur l'événement
1145 function verifier($val = array(), &$db, $DEBUG){
1146 parent::verifier($val, $db, $DEBUG);
1147 //Récupère la restriction
1148 $sql= "SELECT
1149 restriction
1150 FROM
1151 ".DB_PREFIXE."evenement
1152 WHERE
1153 evenement =".$val['evenement'];
1154
1155 $res = $db->query($sql);
1156 $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);
1157 if (database::isError($res)) {
1158 die($res->getMessage());
1159 }
1160 $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);
1161
1162 //Test qu'une restriction est présente
1163 if ( isset($row['restriction']) && $row['restriction'] != "" ){
1164
1165 //Test si la restriction est valide
1166 if ( !$this->restrictionIsValid($row['restriction']) ){
1167
1168 $this->correct=false;
1169 $this->addToMessage(_("Restriction non valide"));
1170 }
1171 else {
1172
1173 $this->correct = true;
1174 }
1175 }
1176
1177 $this->updateDate("date_envoi_signature");
1178 $this->updateDate("date_retour_signature");
1179 $this->updateDate("date_envoi_rar");
1180 $this->updateDate("date_retour_rar");
1181 $this->updateDate("date_envoi_controle_legalite");
1182 $this->updateDate("date_retour_controle_legalite");
1183 }
1184
1185 }// fin classe
1186 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26