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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 446 - (hide annotations)
Tue Sep 25 16:45:31 2012 UTC (12 years, 4 months ago) by nhaye
File size: 29449 byte(s)
Régénération et correction de surcharges

1 fraynaud 3 <?php
2     //$Id$
3 fraynaud 20 //gen openMairie le 10/02/2011 20:34
4     /*
5     $Id: instruction.class.php,v 1.29 2010-10-27 10:52:20 fraynaud Exp $
6     specific :
7     - cle secondaire
8     destruction autorisée que pour le dernier evenement
9     [delete the last event ]
10     - variable globale [global variables]
11     var $archive_date_depot;
12     var $retourformulaire;
13     var $idxformulaire;
14     - modification des données dans dossier trigger avant
15     [modify dossier data with trigger function]
16     - function moisdate : pour ajouter des mois a une date
17     [add months (delay) and calculation final date]
18     - voir script_lang.js : bible ...
19     */
20 fraynaud 3 require_once ("../gen/obj/instruction.class.php");
21    
22     class instruction extends instruction_gen {
23    
24 fraynaud 20 var $archive_date_depot; // specific
25     var $retourformulaire; // specific
26     var $idxformulaire; // specific
27 fraynaud 3
28 fraynaud 20 function instruction($id,&$db,$debug) {
29     $this->constructeur($id,$db,$debug);
30     }// fin constructeur
31    
32     function cleSecondaire($id,&$db,$val,$DEBUG) {
33 fraynaud 129 parent::cleSecondaire($id,$db,$val,$DEBUG);
34     // controle suppression cle secondaire [secondary key delete control]
35     // ------------------------------------------------------------------------------------
36     // specifique detruire que le dernier [specific instruction : delete the last event ]
37     // ------------------------------------------------------------------------------------
38 fraynaud 20 $dernierevenement='';
39 fraynaud 242 $sql="select max(instruction) from ".DB_PREFIXE."instruction where dossier ='".
40 fraynaud 20 $this->idxformulaire."'";
41     $dernierevenement = $db->getOne($sql);
42     if($dernierevenement==$id){
43     $this->correct=true;
44     $this->msg="<br>"._('destruction_chronologique')." ok <br>";
45     }else{
46     $this->msg="<br>"._('destruction_evenement')." : ".$dernierevenement.
47     "<br>"._('destruction_chronologique');
48     $this->correct=false;
49     }
50     }
51    
52     function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
53 nhaye 428 if ($validation==0 and $maj<2) {
54 fraynaud 20 if ($maj == 0){
55     $form->setVal("destinataire", $idxformulaire);
56     $form->setVal("dossier", $idxformulaire);
57     $form->setVal("datecourrier", date('Y-m-d'));
58     }
59     $form->setVal("bible_auto","bible_auto()");
60     $form->setVal("bible","bible()");
61     $form->setVal("bible2","bible2()");
62     }
63     $this->retourformulaire=$retourformulaire;
64     $this->idxformulaire=$idxformulaire;
65     }
66    
67     function setType(&$form,$maj) {
68 nhaye 428 parent::setType($form,$maj);
69     if ($maj < 2) { //ajouter et modifier
70     $form->setType('destinataire', 'hidden');
71     $form->setType('lettretype', 'hiddenstatic');
72     $form->setType('complement', 'textarea');
73     $form->setType('complement2', 'textarea');
74     $form->setType('bible_auto', 'httpclick');
75     $form->setType('bible', 'httpclick');
76     $form->setType('bible2', 'httpclick');
77     $form->setType('dossier', 'hiddenstatic');
78     $form->setType('libelle', 'hiddenstatic');
79     if($maj==0){ // add
80     $form->setType('instruction', 'hiddenstatic');
81     $form->setType('evenement', 'select');
82     $form->setType('datecourrier', 'date2');
83     }else{ // modify
84     $form->setType('instruction', 'hiddenstatic');
85     $form->setType('evenement', 'hiddenstatic');
86     //$form->setType('datecourrier', 'hiddenstaticdate');
87     $form->setType('datecourrier', 'date2');
88     // necessaire pour calcul de date en modification
89     $form->setType('delai', 'hiddenstatic');
90     }
91     }
92 fraynaud 20 $form->setType('complement3', 'hidden');
93 nhaye 428 $form->setType('bible_auto', 'hidden');
94     $form->setType('bible', 'hidden');
95     $form->setType('bible2', 'hidden');
96 fraynaud 20 $form->setType('bible3', 'hidden');
97     $form->setType('complement4', 'hidden');
98     $form->setType('bible4', 'hidden');
99     $form->setType('complement5', 'hidden');
100     $form->setType('bible5', 'hidden');
101     $form->setType('complement6', 'hidden');
102     $form->setType('bible6', 'hidden');
103     $form->setType('complement7', 'hidden');
104     $form->setType('bible7', 'hidden');
105     $form->setType('complement8', 'hidden');
106     $form->setType('bible8', 'hidden');
107     $form->setType('complement9', 'hidden');
108     $form->setType('bible9', 'hidden');
109     $form->setType('complement10', 'hidden');
110     $form->setType('bible10', 'hidden');
111     $form->setType('complement11', 'hidden');
112     $form->setType('bible11', 'hidden');
113     $form->setType('complement12', 'hidden');
114     $form->setType('bible12', 'hidden');
115     $form->setType('complement13', 'hidden');
116     $form->setType('bible13', 'hidden');
117     $form->setType('complement14', 'hidden');
118     $form->setType('bible14', 'hidden');
119     $form->setType('complement15', 'hidden');
120     $form->setType('bible15', 'hidden');
121     $form->setType('delai', 'hidden');
122     $form->setType('etat', 'hidden');
123     $form->setType('accord_tacite', 'hidden');
124     $form->setType('action', 'hidden');
125     $form->setType('delai_notification', 'hidden');
126     $form->setType('avis', 'hidden');
127     $form->setType('archive_delai', 'hidden');
128     $form->setType('archive_etat', 'hidden');
129     $form->setType('archive_accord_tacite', 'hidden');
130     $form->setType('archive_avis', 'hidden');
131     $form->setType('archive_date_complet', 'hidden');
132     $form->setType('archive_date_rejet', 'hidden');
133     $form->setType('archive_date_limite', 'hidden');
134     $form->setType('archive_date_notification_delai', 'hidden');
135     $form->setType('archive_date_decision', 'hidden');
136     $form->setType('archive_date_validite', 'hidden');
137     $form->setType('archive_date_achevement', 'hidden');
138     $form->setType('archive_date_conformite', 'hidden');
139 nhaye 428 $form->setType('archive_date_chantier', 'hidden');
140 fraynaud 20 }
141 fraynaud 265
142 fraynaud 20 function setSelect(&$form, $maj,&$db,$DEBUG) {
143 atreal 312 if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
144     include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
145 nhaye 428
146     // *** evenement ***
147     $contenu=array();
148     // etat du dossier
149     $sql="select etat from ".DB_PREFIXE."dossier where dossier ='".
150     $this->idxformulaire."'";
151     $etat_dossier = $db->getOne($sql);
152     $nature_dossier= substr($this->idxformulaire,0,2);
153     // recherche des evenement de transition
154     $sql= $sql_transition." where transition.etat ='".$etat_dossier."' and (evenement.nature ='".
155     $nature_dossier."' or (nature ='T' and nature !='CU')) order by evenement.action";
156    
157     // *** attention en dur le CU
158    
159    
160     $res = $db->query($sql);
161     if (database::isError($res))
162     die($res->getMessage());
163     $contenu[0][0]="";
164     $contenu[1][0]=_('choisir')." "._('evenement');
165     $k=1;
166     while ($row=& $res->fetchRow()){
167     if($maj==0){ // ajouter
168     $contenu[0][$k]=$row[0];
169     $contenu[1][$k]=$row[1];
170     $k++;
171     }else{
172     // select hiddenstatic
173     $contenu[0][$k]=$row[0];
174     $contenu[1][$k]=$row[1];
175     $k++;
176 fraynaud 20 }
177     }
178 nhaye 428 $form->setSelect("evenement",$contenu);
179     // lien bible_auto [link]
180     $contenu=array();
181     $contenu[0]=" automatique ";
182     $form->setSelect("bible_auto",$contenu);
183     // lien bible1
184     $contenu=array();
185     $contenu[0]=" Bible ";
186     $form->setSelect("bible",$contenu);
187     // lien bible2
188     $contenu=array();
189     $contenu[0]=" Bible ";
190     $form->setSelect("bible2",$contenu);
191 fraynaud 20 } // function select
192    
193     function setGroupe(&$form,$maj){
194     $form->setGroupe('evenement','D');
195     $form->setGroupe('libelle','G');
196     $form->setGroupe('datecourrier','G');
197     $form->setGroupe('lettretype','F');
198     }
199    
200     function setRegroupe(&$form,$maj){
201     $form->setRegroupe('evenement','D',_('evenement'), "collapsible");
202     $form->setRegroupe('libelle','G','');
203     $form->setRegroupe('datecourrier','G','');
204     $form->setRegroupe('lettretype','F','');
205 fraynaud 196 $form->setRegroupe('complement','D',_('complement'), "collapsible");
206 fraynaud 20 $form->setRegroupe('bible_auto','G','');
207     $form->setRegroupe('bible','F','');
208     $form->setRegroupe('complement2','D',_('complement2'), "startClosed");
209     $form->setRegroupe('bible2','F','');
210     }
211    
212     function setLib(&$form,$maj) {
213     parent :: setLib($form,$maj);
214     $form->setLib('libelle',' ');
215     $form->setLib('bible_auto',"");
216     $form->setLib('bible',"");
217     $form->setLib('bible2',"");
218     $form->setLib('lettretype',"->"._(" courrier "));
219     $form->setLib('datecourrier',_(" du "));
220     }
221    
222     // ==================================================================
223     // trigger avant modification données [trigger before modify data]
224     // ==================================================================
225     function triggerajouter($id,&$db,$val,$DEBUG) {
226     // mise a jour instruction avec evenement
227     // [modify instruction with evenement]
228 fraynaud 242 $sql= "select * from ".DB_PREFIXE."evenement where evenement =".$this->valF['evenement'];
229 fraynaud 20 $res = $db->query($sql);
230 fraynaud 129 if (database::isError($res)) die($res->getMessage());
231 fraynaud 20 if ($DEBUG == 1)
232     echo " la requete ".$sql." est exécutée<br>";
233     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
234     $this->valF['action']=$row['action'];
235     $this->valF['delai']=$row['delai'];
236     $this->valF['etat']=$row['etat'];
237     $this->valF['accord_tacite']=$row['accord_tacite'];
238     $this->valF['delai_notification']=$row['delai_notification'];
239     $this->valF['avis']=$row['avis'];
240     if($row['lettretype']!="")
241     $this->valF['lettretype']=$row['lettretype'];
242     else
243     $this->valF['lettretype']="standard";
244     }
245 fraynaud 242 $sql= "select * from ".DB_PREFIXE."dossier where dossier = '".$this->valF['dossier']."'";
246 fraynaud 20 $res = $db->query($sql);
247     if (database::isError($res))
248     die($res->getMessage());
249     if ($DEBUG == 1)
250     echo " la requete ".$sql." est exécutée<br>";
251     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
252     //
253     $this->archive_date_depot = $row['date_depot'];
254     // archive en instruction (si suppression)
255     $this->valF['archive_delai']=$row['delai'];
256     $this->valF['archive_accord_tacite']=$row['accord_tacite'];
257     $this->valF['archive_etat']=$row['etat'];
258     $this->valF['archive_avis']=$row['avis'];
259     // compatibilite pgsql
260     if($row['date_complet']!='')
261     $this->valF['archive_date_complet']=$row['date_complet'];
262     if($row['date_rejet']!='')
263     $this->valF['archive_date_rejet']= $row['date_rejet'];
264     if($row['date_limite']!='')
265     $this->valF['archive_date_limite']= $row['date_limite'];
266     if($row['date_notification_delai']!='')
267     $this->valF['archive_date_notification_delai']= $row['date_notification_delai'];
268     if($row['date_decision']!='')
269     $this->valF['archive_date_decision']= $row['date_decision'];
270     if($row['date_validite']!='')
271     $this->valF['archive_date_validite']= $row['date_validite'];
272     if($row['date_achevement']!='')
273     $this->valF['archive_date_achevement']= $row['date_achevement'];
274     if($row['date_chantier']!='')
275     $this->valF['archive_date_chantier']= $row['date_chantier'];
276     if($row['date_conformite']!='')
277     $this->valF['archive_date_conformite']= $row['date_conformite'];
278     }
279     }
280    
281 fraynaud 123 function regle($regle){
282     $temp = explode ("+",$regle);
283 atreal 208 //echo '|'.$regle;
284 fraynaud 124 // cas rejet
285 fraynaud 129 if($regle=="null") // 1 dimension -> null
286 fraynaud 124 return null;
287     if(sizeof($temp)==1) // 1 dimension
288     if($temp[0]=="archive_date_depot") // initialisation avec le depot
289 fraynaud 123 return $this->$regle;
290 fraynaud 124 else // cas general
291 fraynaud 123 return $this->valF[$regle];
292 fraynaud 124 if(sizeof($temp)==2){ // 2 dimensions
293     if($temp[0]=="archive_date_depot") //initialisation avec le depot
294 fraynaud 123 if(is_numeric($temp[1]))
295     return $this->moisdate($this->$temp[0], $temp[1]);
296     else
297     return $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);
298 fraynaud 124 if($temp[0]=="archive_delai") // majoration de delai
299     return $this->valF[$temp[0]]+$this->valF[$temp[1]];
300     // cas general 2 dimensions
301 fraynaud 123 if(is_numeric($temp[1]))
302     return $this->moisdate($this->valF[$temp[0]], $temp[1]);
303     else
304     return $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
305     }
306 fraynaud 124 if(sizeof($temp)==3){ // 3 dimensions
307     // cas date de validite de sursis
308     if(is_numeric($temp[1]))
309     $temp1 = $this->moisdate($this->valF[$temp[0]], $temp[1]);
310     else
311     $temp1 = $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
312     if(is_numeric($temp[2]))
313     return $this->moisdate($temp1, $temp[2]);
314     else
315     return $this->moisdate($temp1, $this->valF[$temp[2]]);
316     }
317 fraynaud 123 }
318    
319    
320    
321 fraynaud 20 // ==================================================================
322     // valeur dossier apres modification [values dossier after action]
323     // ==================================================================
324     function triggerajouterapres($id,&$db,$val,$DEBUG) {
325 fraynaud 47 // mise a null au lieu de "" / voir compatibilite mysql
326     // voir parametrage CU en dur
327     // voir parametrage des actions en dur
328 fraynaud 123 $param=1;
329 fraynaud 121 if($param==1){
330 fraynaud 242 $sql="select * from ".DB_PREFIXE."action where action = '".$this->valF['action']."'";
331 fraynaud 121 $res = $db->query($sql);
332     if (database::isError($res))
333     die($res->getMessage());
334     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
335     if($row['regle_etat']!=''){
336 fraynaud 123 $valF['etat']= $this->regle($row['regle_etat']);
337 fraynaud 121 }
338     if($row['regle_delai']!=''){
339 fraynaud 123 $valF['delai']= $this->regle($row['regle_delai']);
340 fraynaud 121 }
341     if($row['regle_accord_tacite']!=''){
342 fraynaud 123 $valF['accord_tacite']= $this->regle($row['regle_accord_tacite']);
343 fraynaud 121 }
344 fraynaud 124 if($row['regle_avis']!=''){
345     $valF['avis']= $this->regle($row['regle_avis']);
346     }
347 fraynaud 121 if($row['regle_date_limite']!=''){
348 fraynaud 123 $valF['date_limite']= $this->regle($row['regle_date_limite']);
349     }
350     if($row['regle_date_complet']!=''){
351     $valF['date_complet']= $this->regle($row['regle_date_complet']);
352     }
353     if($row['regle_date_notification_delai']!=''){
354     $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
355     }
356 fraynaud 124 if($row['regle_date_decision']!=''){
357     $valF['date_decision']= $this->regle($row['regle_date_decision']);
358     }
359     if($row['regle_date_rejet']!=''){
360     $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
361     }
362     if($row['regle_date_validite']!=''){
363     $valF['date_validite']= $this->regle($row['regle_date_validite']);
364     }
365     if($row['regle_date_chantier']!=''){
366     $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
367     }
368     if($row['regle_date_achevement']!=''){
369     $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
370     }
371     if($row['regle_date_conformite']!=''){
372     $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
373     }
374 fraynaud 121 }
375     }else{
376 fraynaud 242 switch ($this->valF['action']) {
377     case "initialisation" :
378     $valF['delai']= $this->valF['delai'];
379     $valF['etat']= $this->valF['etat'];
380     $valF['accord_tacite']= $this->valF['accord_tacite'];
381     // la date_complet est la date de depot
382     $valF['date_complet']= $this->archive_date_depot; // ****
383     $valF['date_limite'] = $this->moisdate($valF['date_complet'],$valF['delai']);
384     $valF['date_notification_delai'] = $this->moisdate($valF['date_complet'],1);
385     break;
386     case "notification" :
387     $valF['delai']= $this->valF['delai'];
388     $valF['etat']= $this->valF['etat'];
389     $valF['accord_tacite']= $this->valF['accord_tacite'];
390     // la date_complet est celle precedemment saisie
391     $valF['date_complet']=$this->valF['archive_date_complet'];
392     $valF['date_limite'] = $this->moisdate($valF['date_complet'],$valF['delai']);
393     $valF['date_notification_delai'] = $this->moisdate($valF['date_complet'],1);
394     // la date du courrier ne doit pas etre depasse par rapport au delai de
395     // notification [verify notification date]
396     if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
397     $this->msg=$this->msg."<br><img src='../img/erreur.gif'> "._("date_notification_delai")." ".
398     $this->valF['archive_date_notification_delai']." < "._('datecourrier');
399     //
400     break;
401     case "retour" :
402     $valF['delai']= $this->valF['delai'];
403     $valF['etat']= $this->valF['etat'];
404     $valF['accord_tacite']= $this->valF['accord_tacite'];
405     // la date_complet est celle de l evenement
406     $valF['date_complet']= $this->valF['datecourrier'];
407     $valF['date_limite'] = $this->moisdate($valF['date_complet'],$valF['delai']);
408     $valF['date_notification_delai'] = $this->moisdate($valF['date_complet'],1);
409     break;
410     case "rejet" :
411     //$valF['delai']=0; // *** delai a garder pour etat dpc
412     $valF['etat']= $this->valF['etat'];
413     $valF['accord_tacite']= $this->valF['accord_tacite'];
414     // la date rejet est initialisee
415     $valF['date_rejet']= $this->valF['datecourrier'];
416     // les dates de depart et fin d instruction sont annulées
417     $valF['date_limite'] =null;
418     $valF['date_notification_delai'] =null;
419     $valF['date_complet']=null;
420     break;
421     case "majoration" :
422     $valF['delai']= $this->valF['archive_delai']+$this->valF['delai'];
423     $valF['etat']= $this->valF['etat'];
424     $valF['accord_tacite']= $this->valF['accord_tacite'];
425     $valF['date_complet']=$this->valF['archive_date_complet'];
426     // majoration de la date limite
427     $valF['date_limite'] = $this->moisdate($valF['date_complet'],$valF['delai']);
428     $valF['date_notification_delai'] = $this->moisdate($valF['date_complet'],1);
429     // la date du courrier ne doit pas etre depasse par rapport au delai de
430     // notification
431     if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
432     $this->msg=$this->msg."<br><img src='../img/erreur.gif'>"._("date_notification_delai").
433 fraynaud 20 $this->valF['archive_date_notification_delai']." < "._('datecourrier');
434 fraynaud 242 break;
435     case "acceptation" :
436     $valF['etat']= $this->valF['etat'];
437     $valF['date_decision']= $this->valF['datecourrier'];
438     $valF['avis']= $this->valF['avis'];
439     // date de validite = date de l evenement + delai
440     $valF['date_validite'] = $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
441     break;
442     case "refus" :
443     $valF['etat']= $this->valF['etat'];
444     $valF['date_decision']= $this->valF['datecourrier'];
445     $valF['avis']= $this->valF['avis'];
446     break;
447     case "prolongation" :
448     $valF['date_validite'] = $this->moisdate($this->valF['archive_date_validite'],$this->valF['delai']);
449     break;
450     case "sursis" :
451     $valF['date_limite'] = $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
452     $valF['etat']= $this->valF['etat'];
453     $valF['accord_tacite']= $this->valF['accord_tacite'];
454     $valF['avis']= $this->valF['avis'];
455     $valF['date_decision']= $this->valF['datecourrier'];
456     $temp = $valF['date_limite'];
457     $valF['date_validite']= $this->moisdate($temp,2);
458     break;
459     case "execution" :
460     $valF['etat']= $this->valF['etat'];
461     $valF['date_chantier'] = $this->valF['datecourrier'];
462     //echo $this->msg=$this->msg.$valF['date_chantier']."";
463     break;
464     case "achevement" :
465     $valF['etat']= $this->valF['etat'];
466     $valF['date_achevement'] = $this->valF['datecourrier'];
467     break;
468     case "archivage" :
469     $valF['etat']= $this->valF['etat'];
470     $valF['date_conformite'] = $this->valF['datecourrier'];
471     break;
472    
473     default:
474     if ($this->valF['etat']!="")
475     $valF['etat']= $this->valF['etat'];
476     }// end switch
477 fraynaud 121 } // end param
478 fraynaud 20 if($valF!=""){
479     $cle= " dossier = '".$this->valF['dossier']."'";
480 fraynaud 242 $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
481 fraynaud 20 if (database::isError($res1))
482     die($res->getMessage());
483     if ($DEBUG == 1)
484     echo "La requête de mise à jour est effectuée.<br>";
485     $this->msg=$this->msg."<br>"._('enregistrement')." ".
486     $this->valF['dossier']." "._('table')." dossier [".
487     $db->affectedRows()." "._('enregistrement').
488     " "._('mis_a_jour')."]" ;
489     }
490     }
491 fraynaud 129
492     function triggermodifierapres($id,&$db,$val,$DEBUG) {
493     /*
494     * cette fonction apour objet de permettre de modifier la date courrier
495     */
496     $valF=array();
497 fraynaud 242 $sql= "select action from ".DB_PREFIXE."evenement where evenement =".$this->valF['evenement'];
498 fraynaud 129 $action = $db->getOne($sql);
499     if (database::isError($action)) die($action->getMessage().$sql);
500 fraynaud 242 $sql="select * from ".DB_PREFIXE."action where action = '".$action."'";
501 fraynaud 129 $res = $db->query($sql);
502     if (database::isError($res)) die($res->getMessage().$sql);
503     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
504     // application des regles sur le courrier + delai
505     if(preg_match("/datecourrier/",$row['regle_date_limite'])){
506     $valF['date_limite']= $this->regle($row['regle_date_limite']);
507     }
508     if(preg_match("/datecourrier/",$row['regle_date_complet'])){
509     $valF['date_complet']= $this->regle($row['regle_date_complet']);
510     }
511     if(preg_match("/datecourrier/",$row['regle_date_notification_delai'])){
512     $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
513     }
514     if(preg_match("/datecourrier/",$row['regle_date_decision'])){
515     $valF['date_decision']= $this->regle($row['regle_date_decision']);
516     }
517     if(preg_match("/datecourrier/",$row['regle_date_rejet'])){
518     $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
519     }
520     if(preg_match("/datecourrier/",$row['regle_date_validite'])){
521     $valF['date_validite']= $this->regle($row['regle_date_validite']);
522     }
523     if(preg_match("/datecourrier/",$row['regle_date_chantier'])){
524     $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
525     }
526     if(preg_match("/datecourrier/",$row['regle_date_achevement'])){
527     $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
528     }
529     if(preg_match("/datecourrier/",$row['regle_date_conformite'])){
530     $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
531     }
532     } // while
533     if($valF!=array()){
534     $cle= " dossier = '".$this->valF['dossier']."'";
535 fraynaud 242 $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
536 fraynaud 129 if (database::isError($res1))
537     die($res->getMessage());
538     if ($DEBUG == 1)
539     echo "La requête de mise à jour est effectuée.<br>";
540     $this->msg=$this->msg."<br>"._('enregistrement')." ".
541     $this->valF['dossier']." "._('table')." dossier [".
542     $db->affectedRows()." "._('enregistrement').
543     " "._('mis_a_jour')."]" ;
544     }
545     }
546    
547    
548 fraynaud 20
549     // trigger before delete
550     function triggersupprimer($id,&$db,$val,$DEBUG) {
551     // archive en instruction (si suppression) [archive if delete instruction]
552     $valF['delai']=$val['archive_delai'];
553     $valF['accord_tacite']=$val['archive_accord_tacite'];
554     $valF['etat']=$val['archive_etat'];
555 fraynaud 80 if($val['archive_avis']=='')
556     $valF['avis']= null;
557     else
558     $valF['avis']=$val['archive_avis'];
559 fraynaud 20 // if= compatibilite pgsql
560     if($val['archive_date_complet']!='')
561     $valF['date_complet']=$val['archive_date_complet'];
562     if($val['archive_date_rejet']!='')
563     $valF['date_rejet']= $val['archive_date_rejet'];
564     if($val['archive_date_limite']!='')
565     $valF['date_limite']= $val['archive_date_limite'];
566     if($val['archive_date_notification_delai']!='')
567     $valF['date_notification_delai']= $val['archive_date_notification_delai'];
568     if($val['archive_date_decision']!='')
569     $valF['date_decision']= $val['archive_date_decision'];
570     if($val['archive_date_validite']!='')
571     $valF['date_validite']= $val['archive_date_validite'];
572     if($val['archive_date_achevement']!='')
573     $valF['date_achevement']= $val['archive_date_achevement'];
574     if($val['archive_date_chantier']!='')
575     $valF['date_chantier']= $val['archive_date_chantier'];
576     if($val['archive_date_conformite']!='')
577     $valF['date_conformite']= $val['archive_date_conformite'];
578 fraynaud 80
579 fraynaud 20 $cle= " dossier = '".$val['dossier']."'";
580 fraynaud 242 $res= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
581 fraynaud 20 if (database::isError($res))
582     die($res->getMessage());
583     else{
584     if ($DEBUG == 1)
585     echo "La requête de mise à jour est effectuée.<br>";
586     }
587     }
588     // =============================================
589     // calcul de date avec ajout de mois (delais)
590     // [add months (delay) and calculation final date]
591     // LIMITE DE LA FONCTION si delai >24 MOIS
592     // [limit : delay < 24 month]
593     // =============================================
594     function moisdate($date,$delaimois) {
595     $temp = explode("-" , $date);
596     $jour = (int) $temp[2];
597     $mois = (int) $temp[1];
598     $annee = (int) $temp[0];
599     // calcul si delai superieur à 12 (limite 24) [delay > 24 month]
600     if($delaimois>=12){
601     $delaimois=$delaimois-12;
602     $annee=$annee+1;
603     }
604     if($delaimois>=12){
605     $delaimois=$delaimois-12;
606     $annee=$annee+1;
607     }
608     // mois
609     $mois=$mois+$delaimois;
610     // calcul mois annee [calculation number of years if > 12 month]
611     // nb de mois > à 12
612     if ($mois>12){
613     $mois=$mois-12;
614     $annee=$annee+1;
615     }
616     // Calcul du nombre de jours dans le mois sélectionné [calculation number of days]
617     switch($mois) {
618     case "2":
619     if ($annee % 4 == 0 && $annee % 100 != 0 || $annee % 400 == 0)
620     $jourmax = 29;
621     else
622     $jourmax = 28;
623     break;
624     case "4":
625     case "6":
626     case "9":
627     case "11":
628     $jourmax = 30;
629     break;
630     default:
631     $jourmax = 31;
632     }
633     if ($jour > $jourmax)
634     $jour = $jourmax;
635     //$dateretour=$annee."-".$mois."-".$jour;
636     return $annee."-".$mois."-".$jour ;
637     }
638    
639 fraynaud 3 }// fin classe
640 atreal 208 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26