/[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 123 by fraynaud, Sun Sep 11 20:24:32 2011 UTC revision 919 by fmichon, Thu Nov 29 19:05:43 2012 UTC
# Line 18  specific : Line 18  specific :
18  - voir script_lang.js : bible ...  - voir script_lang.js : bible ...
19  */  */
20  require_once ("../gen/obj/instruction.class.php");  require_once ("../gen/obj/instruction.class.php");
21    require_once("../services/outgoing/messageenqueuer.php");
22    
23  class instruction extends instruction_gen {  class instruction extends instruction_gen {
24    
# Line 29  class instruction extends instruction_ge Line 30  class instruction extends instruction_ge
30          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
31      }// fin constructeur      }// fin constructeur
32    
     function setvalF($val){  
         $this->valF['instruction'] = $val['instruction'];  
         $this->valF['destinataire'] = $val['destinataire'];  
         $this->valF['lettretype'] = $val['lettretype'];  
         $this->valF['dossier'] = $val['dossier'];  
         if($val['datecourrier']!="")  
             $this->valF['datecourrier'] = $this->dateDB($val['datecourrier']);  
         $this->valF['complement'] = $val['complement'];  
         $this->valF['complement2'] = $val['complement2'];  
         $this->valF['evenement'] = $val['evenement'];  
     }  
   
   
33      function cleSecondaire($id,&$db,$val,$DEBUG) {      function cleSecondaire($id,&$db,$val,$DEBUG) {
34      // controle suppression cle secondaire [secondary key delete control]          parent::cleSecondaire($id,$db,$val,$DEBUG);
35      // ------------------------------------------------------------------------------------          // controle suppression cle secondaire [secondary key delete control]
36      // specifique detruire que le dernier   [specific instruction : delete the last event ]          // ------------------------------------------------------------------------------------
37      // ------------------------------------------------------------------------------------          // specifique detruire que le dernier   [specific instruction : delete the last event ]
38            // ------------------------------------------------------------------------------------
39          $dernierevenement='';          $dernierevenement='';
40          $sql="select max(instruction) from instruction where dossier ='".          $sql="select max(instruction) from ".DB_PREFIXE."instruction where dossier ='".
41          $this->idxformulaire."'";          $this->idxformulaire."'";
42          $dernierevenement = $db->getOne($sql);          $dernierevenement = $db->getOne($sql);
43           if($dernierevenement==$id){           if($dernierevenement==$id){
44               $this->correct=true;               $this->correct=true;
45               $this->msg="<br>"._('destruction_chronologique')." ok <br>";               $this->addToMessage(_('Destruction_chronologique'));
46            }else{            }else{
47               $this->msg="<br>"._('destruction_evenement')." : ".$dernierevenement.               $this->addToMessage(_('Destruction_evenement')." : ".$dernierevenement);
48               "<br>"._('destruction_chronologique');               $this->addToMessage(_('Destruction_chronologique'));
49               $this->correct=false;               $this->correct=false;
50            }            }
51      }      }
52    
     function verifier($val,&$db,$DEBUG){  
         $this->correct=True;  
         $imgv="";  
         $f="&nbsp!&nbsp;&nbsp;&nbsp;&nbsp;";  
         $imgv="<img src='../app/img/punaise.png' style='vertical-align:middle' hspace='2' border='0'>";  
         // obligatoire  
         if ($this->valF['destinataire']==""){  
            $this->correct=false;  
            $this->msg= $this->msg.$imgv." "._('instruction')." ".  
            _('obligatoire').$f;  
         }  
         if ($val['datecourrier']==""){  
            $this->correct=false;  
            $this->msg= $this->msg.$imgv." "._('datecourrier')." ".  
            _('obligatoire').$f;  
         }  
         if ($val['evenement']==""){  
            $this->correct=false;  
            $this->msg= $this->msg.$imgv." "._('evenement')." ".  
            _('obligatoire').$f;  
         }  
     }//verifier  
   
53      function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){      function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
54          if ($validation==0) {          if ($validation==0 and $maj<2) {
55              if ($maj == 0){              if ($maj == 0){
56                  $form->setVal("destinataire", $idxformulaire);                  $form->setVal("destinataire", $idxformulaire);
57                  $form->setVal("dossier", $idxformulaire);                  $form->setVal("dossier", $idxformulaire);
# Line 100  class instruction extends instruction_ge Line 66  class instruction extends instruction_ge
66      }      }
67    
68      function setType(&$form,$maj) {      function setType(&$form,$maj) {
69      if ($maj < 2) { //ajouter et modifier          parent::setType($form,$maj);
70          $form->setType('destinataire', 'hidden');          if ($maj < 2) { //ajouter et modifier
71          $form->setType('lettretype', 'hiddenstatic');              $form->setType('destinataire', 'hidden');
72          $form->setType('complement', 'textarea');              $form->setType('lettretype', 'hiddenstatic');
73          $form->setType('complement2', 'textarea');              $form->setType('complement', 'textarea');
74                $form->setType('complement2', 'textarea');
75                $form->setType('bible_auto', 'httpclick');
76                $form->setType('bible', 'httpclick');
77                $form->setType('bible2', 'httpclick');
78                $form->setType('dossier', 'hiddenstatic');  
79                $form->setType('libelle', 'hiddenstatic');
80                if($maj==0){ // add
81                    $form->setType('instruction', 'hiddenstatic');
82                    $form->setType('evenement', 'select');
83                    $form->setType('datecourrier', 'date2');
84                }else{ // modify
85                    $form->setType('instruction', 'hiddenstatic');
86                    $form->setType('evenement', 'hiddenstatic');
87                    //$form->setType('datecourrier', 'hiddenstaticdate');
88                    $form->setType('datecourrier', 'date2');
89                    // necessaire pour calcul de date en modification
90                    $form->setType('delai', 'hiddenstatic');
91                }
92            } elseif($maj==2){
93                $form->setType('dossier', 'hiddenstatic');
94            }else {
95                $form->setType('destinataire', 'hidden');
96                $form->setType('dossier', 'static');
97            }
98          $form->setType('complement3', 'hidden');          $form->setType('complement3', 'hidden');
99            $form->setType('bible_auto', 'hidden');
100            $form->setType('bible', 'hidden');
101            $form->setType('bible2', 'hidden');
102          $form->setType('bible3', 'hidden');          $form->setType('bible3', 'hidden');
103          $form->setType('complement4', 'hidden');          $form->setType('complement4', 'hidden');
104          $form->setType('bible4', 'hidden');          $form->setType('bible4', 'hidden');
# Line 131  class instruction extends instruction_ge Line 124  class instruction extends instruction_ge
124          $form->setType('bible14', 'hidden');          $form->setType('bible14', 'hidden');
125          $form->setType('complement15', 'hidden');          $form->setType('complement15', 'hidden');
126          $form->setType('bible15', 'hidden');          $form->setType('bible15', 'hidden');
         $form->setType('bible_auto', 'httpclick');  
         $form->setType('bible', 'httpclick');  
         $form->setType('bible2', 'httpclick');  
         $form->setType('dossier', 'hiddenstatic');  
127          $form->setType('delai', 'hidden');          $form->setType('delai', 'hidden');
128          $form->setType('etat', 'hidden');          $form->setType('etat', 'hidden');
129          $form->setType('accord_tacite', 'hidden');          $form->setType('accord_tacite', 'hidden');
130          $form->setType('action', 'hidden');          $form->setType('action', 'hidden');
131          $form->setType('delai_notification', 'hidden');          $form->setType('delai_notification', 'hidden');
132          $form->setType('avis', 'hidden');          $form->setType('avis_decision', 'hidden');
133          $form->setType('archive_delai', 'hidden');          $form->setType('archive_delai', 'hidden');
134          $form->setType('archive_etat', 'hidden');          $form->setType('archive_etat', 'hidden');
135          $form->setType('archive_accord_tacite', 'hidden');          $form->setType('archive_accord_tacite', 'hidden');
# Line 153  class instruction extends instruction_ge Line 142  class instruction extends instruction_ge
142          $form->setType('archive_date_validite', 'hidden');          $form->setType('archive_date_validite', 'hidden');
143          $form->setType('archive_date_achevement', 'hidden');          $form->setType('archive_date_achevement', 'hidden');
144          $form->setType('archive_date_conformite', 'hidden');          $form->setType('archive_date_conformite', 'hidden');
145          $form->setType('archive_date_chantier', 'hidden');              $form->setType('archive_date_chantier', 'hidden');  
         $form->setType('libelle', 'hiddenstatic');  
         if($maj==0){ // add  
             $form->setType('instruction', 'hiddenstatic');  
             $form->setType('evenement', 'select');  
             $form->setType('datecourrier', 'date2');  
         }else{ // modify  
             $form->setType('instruction', 'hiddenstatic');  
             $form->setType('evenement', 'hiddenstatic');  
             //$form->setType('datecourrier', 'hiddenstaticdate');  
             $form->setType('datecourrier', 'date2');  
         }  
     }else{ // supprimer  [delete]  
         $form->setType('instruction', 'hiddenstatic');  
         $form->setType('dossier', 'hiddenstatic');  
         $form->setType('archive_delai', 'hiddenstatic');  
         $form->setType('archive_etat', 'hiddenstatic');  
         $form->setType('archive_accord_tacite', 'hiddenstatic');  
         $form->setType('archive_avis', 'hiddenstatic');  
         $form->setType('archive_date_complet', 'hiddenstatic');  
         $form->setType('archive_date_rejet', 'hiddenstatic');  
         $form->setType('archive_date_limite', 'hiddenstatic');  
         $form->setType('archive_date_notification_delai', 'hiddenstatic');  
         $form->setType('archive_date_decision', 'hiddenstatic');  
         $form->setType('archive_date_validite', 'hiddenstatic');  
         $form->setType('archive_date_achevement', 'hiddenstatic');  
     }  
146      }      }
147        
148        function setSelect(&$form, $maj,&$db,$DEBUG) {
149            if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
150                include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
151    
152      function setTaille(&$form,$maj){          // *** evenement ***
153          $form->setTaille('complement', 120);          $contenu=array();
154          $form->setTaille('complement2', 120);          // etat du dossier
155          $form->setTaille('datecourrier', 12);          $sql="select etat from ".DB_PREFIXE."dossier where dossier ='".
156      }                $this->idxformulaire."'";
157            $etat_dossier = $db->getOne($sql);
158      function setMax(&$form,$maj){          $nature_dossier= substr($this->idxformulaire,0,2);
159          $form->setMax('complement',12 );          // recherche des evenement de transition
160          $form->setMax('complement2',12 );          $sql= $sql_transition." where transition.etat ='".$etat_dossier."' and (evenement.nature ='".
161      }                $nature_dossier."' or (nature ='T' and nature !='CU')) order by evenement.action";
162            
163            // *** attention en dur le CU
164            
165    
166      //function setSelect(&$form, $maj,&$db,$DEBUG,$idxformulaire) {          $res = $db->query($sql);
167      function setSelect(&$form, $maj,&$db,$DEBUG) {          if (database::isError($res))
168          if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc"))              die($res->getMessage());
169              include ("../sql/".$db->phptype."/".$this->table.".form.inc");          $contenu[0][0]="";
170          if($maj<2){          $contenu[1][0]=_('choisir')." "._('evenement');
171              // *** evenement ***          $k=1;
172              $contenu=array();          while ($row=& $res->fetchRow()){
173              // etat du dossier              if($maj==0){ // ajouter
174              $sql="select etat from dossier where dossier ='".                  $contenu[0][$k]=$row[0];
175                    $this->idxformulaire."'";                  $contenu[1][$k]=$row[1];
176              $etat_dossier = $db->getOne($sql);                  $k++;
177              $nature_dossier= substr($this->idxformulaire,0,2);              }else{
178              // recherche des evenement de transition                  // select hiddenstatic
179              $sql= $sql_transition." where transition.etat ='".$etat_dossier."' and (evenement.nature ='".                  $contenu[0][$k]=$row[0];
180                    $nature_dossier."' or (nature ='T' and nature !='CU')) order by evenement.action";                  $contenu[1][$k]=$row[1];
181              // *** attention en dur le CU                  $k++;
182                            }
   
             $res = $db->query($sql);  
             if (database::isError($res))  
                 die($res->getMessage());  
             $contenu[0][0]="";  
             $contenu[1][0]=_('choisir')." "._('evenement');  
             $k=1;  
             while ($row=& $res->fetchRow()){  
                 if($maj==0){ // ajouter  
                     $contenu[0][$k]=$row[0];  
                     $contenu[1][$k]=$row[1];  
                     $k++;  
                 }else{  
                     // select hiddenstatic  
                     $contenu[0][$k]=$row[0];  
                     $contenu[1][$k]=$row[1];  
                     $k++;  
                 }  
             }  
             $form->setSelect("evenement",$contenu);  
             // lien bible_auto  [link]  
             $contenu=array();  
             $contenu[0]=" automatique ";  
             $form->setSelect("bible_auto",$contenu);  
             // lien bible1  
             $contenu=array();  
             $contenu[0]=" Bible ";  
             $form->setSelect("bible",$contenu);  
             // lien bible2  
             $contenu=array();  
             $contenu[0]=" Bible ";  
             $form->setSelect("bible2",$contenu);  
183          }          }
184            $form->setSelect("evenement",$contenu);
185            // lien bible_auto  [link]
186            $contenu=array();
187            $contenu[0]=" automatique ";
188            $form->setSelect("bible_auto",$contenu);
189            // lien bible1
190            $contenu=array();
191            $contenu[0]=" Bible ";
192            $form->setSelect("bible",$contenu);
193            // lien bible2
194            $contenu=array();
195            $contenu[0]=" Bible ";
196            $form->setSelect("bible2",$contenu);
197      } // function select      } // function select
198    
199      function setGroupe(&$form,$maj){      function setGroupe(&$form,$maj){
# Line 257  class instruction extends instruction_ge Line 208  class instruction extends instruction_ge
208          $form->setRegroupe('libelle','G','');          $form->setRegroupe('libelle','G','');
209          $form->setRegroupe('datecourrier','G','');          $form->setRegroupe('datecourrier','G','');
210          $form->setRegroupe('lettretype','F','');          $form->setRegroupe('lettretype','F','');
211          $form->setRegroupe('complement','D',_('complement'), "startClosed");          $form->setRegroupe('complement','D',_('complement'), "collapsible");
212          $form->setRegroupe('bible_auto','G','');          $form->setRegroupe('bible_auto','G','');
213          $form->setRegroupe('bible','F','');          $form->setRegroupe('bible','F','');
214          $form->setRegroupe('complement2','D',_('complement2'), "startClosed");          $form->setRegroupe('complement2','D',_('complement2'), "startClosed");
# Line 274  class instruction extends instruction_ge Line 225  class instruction extends instruction_ge
225          $form->setLib('datecourrier',_(" du "));          $form->setLib('datecourrier',_(" du "));
226      }      }
227    
     function setOnchange(&$form,$maj){  
         $form->setOnchange("datecourrier","fdate(this)");  
     }  
   
228      // ==================================================================      // ==================================================================
229      // trigger avant modification données    [trigger before modify data]      // trigger avant modification données    [trigger before modify data]
230      // ==================================================================      // ==================================================================
231      function triggerajouter($id,&$db,$val,$DEBUG) {      function triggerajouter($id,&$db,$val,$DEBUG) {
232          // mise a jour instruction avec evenement          // mise a jour instruction avec evenement
233          // [modify instruction with evenement]          // [modify instruction with evenement]
234          $sql= "select * from evenement where evenement =".$this->valF['evenement'];          $sql= "select * from ".DB_PREFIXE."evenement where evenement =".$this->valF['evenement'];
235          $res = $db->query($sql);          $res = $db->query($sql);
236          if (database::isError($res))          if (database::isError($res)) die($res->getMessage());
             die($res->getMessage());  
237          if ($DEBUG == 1)          if ($DEBUG == 1)
238              echo " la requete ".$sql." est exécutée<br>";              echo " la requete ".$sql." est exécutée<br>";
239          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
240              $this->valF['action']=$row['action'];              if(isset($row['action']) and !empty($row['action'])) {
241                    $this->valF['action']=$row['action'];
242                } else {
243                    $this->valF['action']=NULL;
244                }
245              $this->valF['delai']=$row['delai'];              $this->valF['delai']=$row['delai'];
246              $this->valF['etat']=$row['etat'];              if(isset($row['etat']) and !empty($row['etat'])) {
247                    $this->valF['etat']=$row['etat'];
248                } else {
249                    $this->valF['etat']=NULL;
250                }
251              $this->valF['accord_tacite']=$row['accord_tacite'];              $this->valF['accord_tacite']=$row['accord_tacite'];
252              $this->valF['delai_notification']=$row['delai_notification'];              $this->valF['delai_notification']=$row['delai_notification'];
253              $this->valF['avis']=$row['avis'];              if(isset($row['avis_decision']) and !empty($row['avis_decision'])) {
254                    $this->valF['avis_decision']=$row['avis_decision'];
255                } else {
256                    $this->valF['avis_decision']=NULL;
257                }
258              if($row['lettretype']!="")              if($row['lettretype']!="")
259                  $this->valF['lettretype']=$row['lettretype'];                  $this->valF['lettretype']=$row['lettretype'];
260              else              else
261                  $this->valF['lettretype']="standard";                  $this->valF['lettretype']="standard";
262          }          }
263          $sql= "select * from dossier where dossier = '".$this->valF['dossier']."'";          $sql= "select * from ".DB_PREFIXE."dossier where dossier = '".$this->valF['dossier']."'";
264          $res = $db->query($sql);          $res = $db->query($sql);
265          if (database::isError($res))          if (database::isError($res))
266              die($res->getMessage());              die($res->getMessage());
# Line 315  class instruction extends instruction_ge Line 273  class instruction extends instruction_ge
273              $this->valF['archive_delai']=$row['delai'];              $this->valF['archive_delai']=$row['delai'];
274              $this->valF['archive_accord_tacite']=$row['accord_tacite'];              $this->valF['archive_accord_tacite']=$row['accord_tacite'];
275              $this->valF['archive_etat']=$row['etat'];              $this->valF['archive_etat']=$row['etat'];
276              $this->valF['archive_avis']=$row['avis'];              $this->valF['archive_avis']=$row['avis_decision'];
277              // compatibilite pgsql              // compatibilite pgsql
278              if($row['date_complet']!='')              if($row['date_complet']!='')
279                 $this->valF['archive_date_complet']=$row['date_complet'];                 $this->valF['archive_date_complet']=$row['date_complet'];
# Line 340  class instruction extends instruction_ge Line 298  class instruction extends instruction_ge
298            
299      function regle($regle){      function regle($regle){
300          $temp = explode ("+",$regle);          $temp = explode ("+",$regle);
301          echo '/'.$regle.sizeof($temp);          //echo '|'.$regle;
302          if(sizeof($temp)==1)          // cas rejet
303              if($temp[0]=="archive_date_depot")          if($regle=="null") // 1 dimension -> null
304                return null;
305            if(sizeof($temp)==1) // 1 dimension
306                if($temp[0]=="archive_date_depot") // initialisation avec le depot
307                  return $this->$regle;                  return $this->$regle;
308              else              else // cas general
309                  return $this->valF[$regle];                  return $this->valF[$regle];
310          else{          if(sizeof($temp)==2){ // 2 dimensions
311              if($temp[0]=="archive_date_depot")              if($temp[0]=="archive_date_depot") //initialisation avec le depot
312                  if(is_numeric($temp[1]))                  if(is_numeric($temp[1]))
313                      return  $this->moisdate($this->$temp[0], $temp[1]);                        return  $this->moisdate($this->$temp[0], $temp[1]);  
314                  else                  else
315                      return  $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);                      return  $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);
316                if($temp[0]=="archive_delai") // majoration de delai
317                    return  $this->valF[$temp[0]]+$this->valF[$temp[1]];
318                // cas general 2 dimensions
319              if(is_numeric($temp[1]))              if(is_numeric($temp[1]))
320                  return $this->moisdate($this->valF[$temp[0]], $temp[1]);                  return $this->moisdate($this->valF[$temp[0]], $temp[1]);
321              else                            else              
322                 return  $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);                 return  $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
323          }          }
324            if(sizeof($temp)==3){ // 3 dimensions
325                // cas date de validite de sursis
326                if(is_numeric($temp[1]))
327                    $temp1 = $this->moisdate($this->valF[$temp[0]], $temp[1]);
328                else              
329                    $temp1 = $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
330                if(is_numeric($temp[2]))
331                    return $this->moisdate($temp1, $temp[2]);
332                else
333                    return $this->moisdate($temp1, $this->valF[$temp[2]]);
334            }
335      }      }
336            
337            
# Line 369  class instruction extends instruction_ge Line 344  class instruction extends instruction_ge
344          // voir parametrage CU en dur          // voir parametrage CU en dur
345          // voir parametrage des actions en dur          // voir parametrage des actions en dur
346          $param=1;          $param=1;
           
347          if($param==1){          if($param==1){
348          $sql="select * from action where action = '".$this->valF['action']."'";          $sql="select * from ".DB_PREFIXE."action where action = '".$this->valF['action']."'";
349          $res = $db->query($sql);          $res = $db->query($sql);
350          if (database::isError($res))          if (database::isError($res))
351              die($res->getMessage());              die($res->getMessage());
# Line 385  class instruction extends instruction_ge Line 359  class instruction extends instruction_ge
359              if($row['regle_accord_tacite']!=''){              if($row['regle_accord_tacite']!=''){
360                  $valF['accord_tacite']= $this->regle($row['regle_accord_tacite']);                  $valF['accord_tacite']= $this->regle($row['regle_accord_tacite']);
361              }              }
362                if($row['regle_avis']!=''){
363                    $valF['avis_decision']= $this->regle($row['regle_avis']);
364                }
365              if($row['regle_date_limite']!=''){              if($row['regle_date_limite']!=''){
366                  $valF['date_limite']= $this->regle($row['regle_date_limite']);                  $valF['date_limite']= $this->regle($row['regle_date_limite']);
367              }              }
# Line 394  class instruction extends instruction_ge Line 371  class instruction extends instruction_ge
371              if($row['regle_date_notification_delai']!=''){              if($row['regle_date_notification_delai']!=''){
372                  $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);                  $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
373              }              }
374                if($row['regle_date_decision']!=''){
375                    $valF['date_decision']= $this->regle($row['regle_date_decision']);
376                }
377                if($row['regle_date_rejet']!=''){
378                    $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
379                }
380               if($row['regle_date_validite']!=''){
381                    $valF['date_validite']= $this->regle($row['regle_date_validite']);
382                }
383               if($row['regle_date_chantier']!=''){
384                    $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
385                }
386               if($row['regle_date_achevement']!=''){
387                    $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
388                }
389               if($row['regle_date_conformite']!=''){
390                    $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
391                }
392          }          }
393          }else{          }else{
394                        switch ($this->valF['action']) {
395          switch ($this->valF['action']) {              case "initialisation" :
396          case "initialisation" :                  $valF['delai']= $this->valF['delai'];
397              $valF['delai']= $this->valF['delai'];                  $valF['etat']= $this->valF['etat'];
398              $valF['etat']= $this->valF['etat'];                  $valF['accord_tacite']= $this->valF['accord_tacite'];
399              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // la date_complet est la date de depot
400              // la date_complet est la date de depot                  $valF['date_complet']= $this->archive_date_depot; // ****
401              $valF['date_complet']= $this->archive_date_depot; // ****                  $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
402              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
403              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  break;
404              break;              case "notification" :
405          case "notification" :                  $valF['delai']= $this->valF['delai'];
406              $valF['delai']= $this->valF['delai'];                  $valF['etat']= $this->valF['etat'];
407              $valF['etat']= $this->valF['etat'];                  $valF['accord_tacite']= $this->valF['accord_tacite'];
408              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // la date_complet est celle precedemment saisie
409              // la date_complet est celle precedemment saisie                  $valF['date_complet']=$this->valF['archive_date_complet'];
410              $valF['date_complet']=$this->valF['archive_date_complet'];                  $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
411              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
412              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  // la date du courrier ne doit pas etre depasse par rapport au delai de
413              // la date du courrier ne doit pas etre depasse par rapport au delai de                  // notification    [verify notification date]
414              // notification    [verify notification date]                  if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
415              if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])                      $this->msg=$this->msg."<br><img src='../img/erreur.gif'> "._("date_notification_delai")." ".
416                  $this->msg=$this->msg."<br><img src='../img/erreur.gif'> "._("date_notification_delai")." ".                      $this->valF['archive_date_notification_delai']." < "._('datecourrier');
417                    //
418                    break;
419                case "retour" :
420                    $valF['delai']= $this->valF['delai'];
421                    $valF['etat']= $this->valF['etat'];
422                    $valF['accord_tacite']= $this->valF['accord_tacite'];
423                    // la date_complet est celle de l evenement
424                    $valF['date_complet']= $this->valF['datecourrier'];
425                    $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
426                    $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
427                    break;
428                case "rejet" :
429                    //$valF['delai']=0;   // *** delai a garder pour etat dpc
430                    $valF['etat']= $this->valF['etat'];
431                    $valF['accord_tacite']= $this->valF['accord_tacite'];
432                    // la date rejet est initialisee
433                    $valF['date_rejet']= $this->valF['datecourrier'];
434                    // les dates de depart et fin d instruction sont annulées
435                    $valF['date_limite'] =null;
436                    $valF['date_notification_delai'] =null;
437                    $valF['date_complet']=null;
438                    break;
439                case "majoration" :
440                    $valF['delai']= $this->valF['archive_delai']+$this->valF['delai'];
441                    $valF['etat']= $this->valF['etat'];
442                    $valF['accord_tacite']= $this->valF['accord_tacite'];
443                    $valF['date_complet']=$this->valF['archive_date_complet'];
444                    // majoration de la date limite
445                    $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
446                    $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
447                    // la date du courrier ne doit pas etre depasse par rapport au delai de
448                    // notification
449                    if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
450                        $this->msg=$this->msg."<br><img src='../img/erreur.gif'>"._("date_notification_delai").
451                  $this->valF['archive_date_notification_delai']." < "._('datecourrier');                  $this->valF['archive_date_notification_delai']." < "._('datecourrier');
452              //                  break;
453              break;              case "acceptation" :
454          case "retour" :                  $valF['etat']= $this->valF['etat'];
455              $valF['delai']= $this->valF['delai'];                  $valF['date_decision']= $this->valF['datecourrier'];
456              $valF['etat']= $this->valF['etat'];                  $valF['avis_decision']= $this->valF['avis_decision'];
457              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // date de validite = date de l evenement + delai
458              // la date_complet est celle de l evenement                  $valF['date_validite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
459              $valF['date_complet']= $this->valF['datecourrier'];                     break;
460              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);              case "refus" :
461              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  $valF['etat']= $this->valF['etat'];
462              break;                  $valF['date_decision']= $this->valF['datecourrier'];
463          case "rejet" :                  $valF['avis_decision']= $this->valF['avis_decision'];
464              //$valF['delai']=0;   // *** delai a garder pour etat dpc                  break;
465              $valF['etat']= $this->valF['etat'];              case "prolongation" :
466              $valF['accord_tacite']= $this->valF['accord_tacite'];                  $valF['date_validite'] =  $this->moisdate($this->valF['archive_date_validite'],$this->valF['delai']);
467              // la date rejet est initialisee                  break;
468              $valF['date_rejet']= $this->valF['datecourrier'];              case "sursis" :
469              // les dates de depart et fin d instruction sont annulées                  $valF['date_limite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
470              $valF['date_limite'] =null;                  $valF['etat']= $this->valF['etat'];
471              $valF['date_notification_delai'] =null;                  $valF['accord_tacite']= $this->valF['accord_tacite'];
472              $valF['date_complet']=null;                  $valF['avis_decision']= $this->valF['avis_decision'];
473              break;                  $valF['date_decision']= $this->valF['datecourrier'];
474          case "majoration" :                  $temp = $valF['date_limite'];
475              $valF['delai']= $this->valF['archive_delai']+$this->valF['delai'];                  $valF['date_validite']= $this->moisdate($temp,2);
476              $valF['etat']= $this->valF['etat'];                  break;
477              $valF['accord_tacite']= $this->valF['accord_tacite'];              case "execution" :
478              $valF['date_complet']=$this->valF['archive_date_complet'];                  $valF['etat']= $this->valF['etat'];
479              // majoration de la date limite                  $valF['date_chantier'] =  $this->valF['datecourrier'];
480              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  //echo $this->msg=$this->msg.$valF['date_chantier']."";
481              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  break;
482              // la date du courrier ne doit pas etre depasse par rapport au delai de              case "achevement" :
483              // notification                  $valF['etat']= $this->valF['etat'];
484              if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])                  $valF['date_achevement'] = $this->valF['datecourrier'];
485                  $this->msg=$this->msg."<br><img src='../img/erreur.gif'>"._("date_notification_delai").                  break;
486              $this->valF['archive_date_notification_delai']." < "._('datecourrier');              case "archivage" :
487              break;                  $valF['etat']= $this->valF['etat'];
488          case "acceptation" :                  $valF['date_conformite'] = $this->valF['datecourrier'];
489              $valF['etat']= $this->valF['etat'];                  break;
490              $valF['date_decision']= $this->valF['datecourrier'];      
491              $valF['avis']= $this->valF['avis'];              default:
492              // date de validite = date de l evenement + delai              if ($this->valF['etat']!="")
493              $valF['date_validite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);                 $valF['etat']= $this->valF['etat'];
494                 break;              }// end switch
         case "refus" :  
             $valF['etat']= $this->valF['etat'];  
             $valF['date_decision']= $this->valF['datecourrier'];  
             $valF['avis']= $this->valF['avis'];  
             break;  
         case "prolongation" :  
             $valF['date_validite'] =  $this->moisdate($this->valF['archive_date_validite'],$this->valF['delai']);  
             break;  
         case "sursis" :  
             $valF['date_limite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);  
             $valF['etat']= $this->valF['etat'];  
             $valF['accord_tacite']= $this->valF['accord_tacite'];  
             $valF['avis']= $this->valF['avis'];  
             $valF['date_decision']= $this->valF['datecourrier'];  
             $temp = $valF['date_limite'];  
             $valF['date_validite']= $this->moisdate($temp,2);  
             break;  
         case "execution" :  
             $valF['etat']= $this->valF['etat'];  
             $valF['date_chantier'] =  $this->valF['datecourrier'];  
             //echo $this->msg=$this->msg.$valF['date_chantier']."";  
             break;  
         case "achevement" :  
             $valF['etat']= $this->valF['etat'];  
             $valF['date_achevement'] = $this->valF['datecourrier'];  
             break;  
         case "archivage" :  
             $valF['etat']= $this->valF['etat'];  
             $valF['date_conformite'] = $this->valF['datecourrier'];  
             break;  
   
         default:  
         if ($this->valF['etat']!="")  
            $valF['etat']= $this->valF['etat'];  
         }// end switch  
495          } // end param          } // end param
         // mise à jour dossier [modify dossier]  
         print_r($valF);  
496          if($valF!=""){          if($valF!=""){
497              $cle= " dossier = '".$this->valF['dossier']."'";              $cle= " dossier = '".$this->valF['dossier']."'";
498              $res1= $db->autoExecute('dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);              $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
499              if (database::isError($res1))              if (database::isError($res1))
500                  die($res->getMessage());                  die($res->getMessage());
501              if ($DEBUG == 1)              if ($DEBUG == 1)
# Line 513  class instruction extends instruction_ge Line 505  class instruction extends instruction_ge
505              $db->affectedRows()." "._('enregistrement').              $db->affectedRows()." "._('enregistrement').
506              " "._('mis_a_jour')."]" ;              " "._('mis_a_jour')."]" ;
507          }          }
508            // la nature du dossier
509            $nature_dossier = substr($this->idxformulaire,0,2);
510            $dossier_erp = $this->getFromDB("SELECT erp FROM dossier WHERE dossier = '" .
511                                        $this->valF['dossier'] . "'");
512            $evenement_libelle = $this->getFromDB(
513                    "SELECT libelle FROM evenement WHERE evenement = '" .
514                    $this->valF['evenement'] . "'");
515            // envoi du message en cas d'un PC qui est ERP et sur lequel un evenement
516            // d'acceptation etait fait
517            if ($dossier_erp == 't' && $nature_dossier ==
518                    $this->f->getParameter('erp_evenement_accepter_dossier_PC')
519                && $this->valF['evenement'] ==
520                    $this->f->getParameter('erp_evenement_accepter_sans_reserve')) {
521                $msgenque = new MessageEnqueuer();
522                $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
523                $msgenque->setDecision($evenement_libelle);
524                $msgenque->enqueueMessage($msgenque->ERP_ARRETE_PC_EFFECTUE);
525            }        
526      }      }
527            
528        
529        /**
530         * Fait une requette sql pour extraire la valeur d'un champ, et retourne
531         * cette valeur
532         * @param string $sql La requete sql a executer
533         * @return La valeur du champs cherche, sinon NULL. En cas d'erreur de la BD
534         * l'execution s'arrete.
535         */
536        function getFromDB($sql) {
537            //$sql = "SELECT libelle FROM dossier WHERE dossier = '" . $dossier . "'";
538            $res = $this->db->limitquery($sql, 0, 1);
539            $this->addToLog("getDossierERPSpecification(): db->limitquery(\"".
540                            str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
541            // Si une erreur survient on die
542            if (database::isError($res, true)) {
543                // Appel de la methode de recuperation des erreurs
544                $this->erreur_db($res->getDebugInfo(), $res->getMessage(), 'instruction');
545            }
546            // retourne la nature du dossier
547            while ($row =& $res->fetchRow()) {
548                return $row[0];
549            }
550            // la nature n'etait pas trouve, ce qui ne devrait pas se passer
551            return NULL;
552    
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      // trigger before delete
614      function triggersupprimer($id,&$db,$val,$DEBUG) {      function triggersupprimer($id,&$db,$val,$DEBUG) {
615          // archive en instruction (si suppression) [archive if delete instruction]          // archive en instruction (si suppression) [archive if delete instruction]
# Line 522  class instruction extends instruction_ge Line 617  class instruction extends instruction_ge
617          $valF['accord_tacite']=$val['archive_accord_tacite'];          $valF['accord_tacite']=$val['archive_accord_tacite'];
618          $valF['etat']=$val['archive_etat'];          $valF['etat']=$val['archive_etat'];
619          if($val['archive_avis']=='')          if($val['archive_avis']=='')
620              $valF['avis']= null;              $valF['avis_decision']= null;
621          else          else
622              $valF['avis']=$val['archive_avis'];              $valF['avis_decision']=$val['archive_avis'];
623          // if= compatibilite pgsql          // if= compatibilite pgsql
624          if($val['archive_date_complet']!='')          if($val['archive_date_complet']!='')
625              $valF['date_complet']=$val['archive_date_complet'];              $valF['date_complet']=$val['archive_date_complet'];
# Line 546  class instruction extends instruction_ge Line 641  class instruction extends instruction_ge
641              $valF['date_conformite']= $val['archive_date_conformite'];              $valF['date_conformite']= $val['archive_date_conformite'];
642                    
643          $cle= " dossier = '".$val['dossier']."'";          $cle= " dossier = '".$val['dossier']."'";
644          $res= $db->autoExecute('dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);          $res= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
645          if (database::isError($res))          if (database::isError($res))
646              die($res->getMessage());              die($res->getMessage());
647          else{          else{
# Line 606  class instruction extends instruction_ge Line 701  class instruction extends instruction_ge
701      }      }
702    
703  }// fin classe  }// fin classe
 ?>  
704    ?>

Legend:
Removed from v.123  
changed lines
  Added in v.919

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26