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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.3  
changed lines
  Added in v.265

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26