/[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 944 by fmichon, Fri Nov 30 15:32:35 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    
33      function setvalF($val){      // {{{ Gestion de la confidentialité des données spécifiques
34          $this->valF['instruction'] = $val['instruction'];  
35          $this->valF['destinataire'] = $val['destinataire'];      /**
36          $this->valF['lettretype'] = $val['lettretype'];       * Surcharge pour gérer les actions disponibles dans le portlet
37          $this->valF['dossier'] = $val['dossier'];       */
38          if($val['datecourrier']!="")      function checkAccessibility() {
39              $this->valF['datecourrier'] = $this->dateDB($val['datecourrier']);          //
40          $this->valF['complement'] = $val['complement'];          parent::checkAccessibility();
41          $this->valF['complement2'] = $val['complement2'];          // Si l'utilisateur est un intructeur qui en correspond pas à la
42          $this->valF['evenement'] = $val['evenement'];          // division du dossier
43            if ($this->f->isUserInstructeur()
44                && isset($this->f->om_utilisateur["division"])
45                && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()) {
46                //
47                $this->actions_sup = array();
48                $this->setParameter("actions", array());
49            }
50            // Si une action 'lu' est présente et que le champ lu est à true
51            // on supprime l'action
52            if (isset($this->actions_sup["lu"])
53                && isset($this->val[array_search("lu", $this->champs)])
54                && $this->val[array_search("lu", $this->champs)]== "t") {
55                unset($this->actions_sup["lu"]);
56            }
57      }      }
58    
59        /**
60         * Cette methode est à surcharger elle permet de tester dans chaque classe
61         * des droits des droits spécifiques en fonction des données
62         */
63        function canAccess() {
64            // Si l'utilisateur est un intructeur qui ne correspond pas à la
65            // division du dossier
66            if ($this->f->isUserInstructeur()
67                && $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier()
68                && $this->getParameter("maj") != 3) {
69                //
70                return false;
71            }
72            //
73            return true;
74        }
75    
76        /**
77         * Cette méthode permet de récupérer la division d'un dossier
78         */
79        function getDivisionFromDossier() {
80            //
81            if (!isset($this->val[array_search("dossier", $this->champs)])) {
82                return NULL;
83            }
84            //
85            $sql = "select division from ".DB_PREFIXE."dossier ";
86            $sql .= " where dossier='".$this->val[array_search("dossier", $this->champs)]."'";
87            //
88            $division = $this->db->getOne($sql);
89            $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);
90            database::isError($division);
91            //
92            return $division;
93        }
94    
95        // }}}
96    
97      function cleSecondaire($id,&$db,$val,$DEBUG) {      function cleSecondaire($id,&$db,$val,$DEBUG) {
98      // controle suppression cle secondaire [secondary key delete control]          parent::cleSecondaire($id,$db,$val,$DEBUG);
99      // ------------------------------------------------------------------------------------          // controle suppression cle secondaire [secondary key delete control]
100      // specifique detruire que le dernier   [specific instruction : delete the last event ]          // ------------------------------------------------------------------------------------
101      // ------------------------------------------------------------------------------------          // specifique detruire que le dernier   [specific instruction : delete the last event ]
102            // ------------------------------------------------------------------------------------
103          $dernierevenement='';          $dernierevenement='';
104          $sql="select max(instruction) from instruction where dossier ='".          $sql="select max(instruction) from ".DB_PREFIXE."instruction where dossier ='".
105          $this->idxformulaire."'";          $this->idxformulaire."'";
106          $dernierevenement = $db->getOne($sql);          $dernierevenement = $db->getOne($sql);
107           if($dernierevenement==$id){           if($dernierevenement==$id){
108               $this->correct=true;               $this->correct=true;
109               $this->msg="<br>"._('destruction_chronologique')." ok <br>";               $this->addToMessage(_('Destruction_chronologique'));
110            }else{            }else{
111               $this->msg="<br>"._('destruction_evenement')." : ".$dernierevenement.               $this->addToMessage(_('Destruction_evenement')." : ".$dernierevenement);
112               "<br>"._('destruction_chronologique');               $this->addToMessage(_('Destruction_chronologique'));
113               $this->correct=false;               $this->correct=false;
114            }            }
115      }      }
116    
     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  
   
117      function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){      function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
118          if ($validation==0) {          if ($validation==0 and $maj<2) {
119              if ($maj == 0){              if ($maj == 0){
120                  $form->setVal("destinataire", $idxformulaire);                  $form->setVal("destinataire", $idxformulaire);
121                  $form->setVal("dossier", $idxformulaire);                  $form->setVal("dossier", $idxformulaire);
# Line 100  class instruction extends instruction_ge Line 130  class instruction extends instruction_ge
130      }      }
131    
132      function setType(&$form,$maj) {      function setType(&$form,$maj) {
133      if ($maj < 2) { //ajouter et modifier          parent::setType($form,$maj);
134          $form->setType('destinataire', 'hidden');          if ($maj < 2) { //ajouter et modifier
135          $form->setType('lettretype', 'hiddenstatic');              $form->setType('destinataire', 'hidden');
136          $form->setType('complement', 'textarea');              $form->setType('lettretype', 'hiddenstatic');
137          $form->setType('complement2', 'textarea');              $form->setType('complement', 'textarea');
138                $form->setType('complement2', 'textarea');
139                $form->setType('bible_auto', 'httpclick');
140                $form->setType('bible', 'httpclick');
141                $form->setType('bible2', 'httpclick');
142                $form->setType('dossier', 'hiddenstatic');  
143                $form->setType('libelle', 'hiddenstatic');
144                if($maj==0){ // add
145                    $form->setType('instruction', 'hiddenstatic');
146                    $form->setType('evenement', 'select');
147                    $form->setType('datecourrier', 'date2');
148                }else{ // modify
149                    $form->setType('instruction', 'hiddenstatic');
150                    $form->setType('evenement', 'hiddenstatic');
151                    //$form->setType('datecourrier', 'hiddenstaticdate');
152                    $form->setType('datecourrier', 'date2');
153                    // necessaire pour calcul de date en modification
154                    $form->setType('delai', 'hiddenstatic');
155                }
156            } elseif($maj==2){
157                $form->setType('dossier', 'hiddenstatic');
158            }else {
159                $form->setType('destinataire', 'hidden');
160                $form->setType('dossier', 'static');
161            }
162          $form->setType('complement3', 'hidden');          $form->setType('complement3', 'hidden');
163            $form->setType('bible_auto', 'hidden');
164            $form->setType('bible', 'hidden');
165            $form->setType('bible2', 'hidden');
166          $form->setType('bible3', 'hidden');          $form->setType('bible3', 'hidden');
167          $form->setType('complement4', 'hidden');          $form->setType('complement4', 'hidden');
168          $form->setType('bible4', 'hidden');          $form->setType('bible4', 'hidden');
# Line 131  class instruction extends instruction_ge Line 188  class instruction extends instruction_ge
188          $form->setType('bible14', 'hidden');          $form->setType('bible14', 'hidden');
189          $form->setType('complement15', 'hidden');          $form->setType('complement15', 'hidden');
190          $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');  
191          $form->setType('delai', 'hidden');          $form->setType('delai', 'hidden');
192          $form->setType('etat', 'hidden');          $form->setType('etat', 'hidden');
193          $form->setType('accord_tacite', 'hidden');          $form->setType('accord_tacite', 'hidden');
194          $form->setType('action', 'hidden');          $form->setType('action', 'hidden');
195          $form->setType('delai_notification', 'hidden');          $form->setType('delai_notification', 'hidden');
196          $form->setType('avis', 'hidden');          $form->setType('avis_decision', 'hidden');
197          $form->setType('archive_delai', 'hidden');          $form->setType('archive_delai', 'hidden');
198          $form->setType('archive_etat', 'hidden');          $form->setType('archive_etat', 'hidden');
199          $form->setType('archive_accord_tacite', 'hidden');          $form->setType('archive_accord_tacite', 'hidden');
# Line 153  class instruction extends instruction_ge Line 206  class instruction extends instruction_ge
206          $form->setType('archive_date_validite', 'hidden');          $form->setType('archive_date_validite', 'hidden');
207          $form->setType('archive_date_achevement', 'hidden');          $form->setType('archive_date_achevement', 'hidden');
208          $form->setType('archive_date_conformite', 'hidden');          $form->setType('archive_date_conformite', 'hidden');
209          $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');  
     }  
210      }      }
211        
212        function setSelect(&$form, $maj,&$db,$DEBUG) {
213            if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
214                include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
215    
216      function setTaille(&$form,$maj){          // *** evenement ***
217          $form->setTaille('complement', 120);          $contenu=array();
218          $form->setTaille('complement2', 120);          // etat du dossier
219          $form->setTaille('datecourrier', 12);          $sql="select etat from ".DB_PREFIXE."dossier where dossier ='".
220      }                $this->idxformulaire."'";
221            $etat_dossier = $db->getOne($sql);
222      function setMax(&$form,$maj){          $nature_dossier= substr($this->idxformulaire,0,2);
223          $form->setMax('complement',12 );          // recherche des evenement de transition
224          $form->setMax('complement2',12 );          $sql= $sql_transition." where transition.etat ='".$etat_dossier."' and (evenement.nature ='".
225      }                $nature_dossier."' or (nature ='T' and nature !='CU')) order by evenement.action";
226            
227            // *** attention en dur le CU
228            
229    
230      //function setSelect(&$form, $maj,&$db,$DEBUG,$idxformulaire) {          $res = $db->query($sql);
231      function setSelect(&$form, $maj,&$db,$DEBUG) {          if (database::isError($res))
232          if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc"))              die($res->getMessage());
233              include ("../sql/".$db->phptype."/".$this->table.".form.inc");          $contenu[0][0]="";
234          if($maj<2){          $contenu[1][0]=_('choisir')." "._('evenement');
235              // *** evenement ***          $k=1;
236              $contenu=array();          while ($row=& $res->fetchRow()){
237              // etat du dossier              if($maj==0){ // ajouter
238              $sql="select etat from dossier where dossier ='".                  $contenu[0][$k]=$row[0];
239                    $this->idxformulaire."'";                  $contenu[1][$k]=$row[1];
240              $etat_dossier = $db->getOne($sql);                  $k++;
241              $nature_dossier= substr($this->idxformulaire,0,2);              }else{
242              // recherche des evenement de transition                  // select hiddenstatic
243              $sql= $sql_transition." where transition.etat ='".$etat_dossier."' and (evenement.nature ='".                  $contenu[0][$k]=$row[0];
244                    $nature_dossier."' or (nature ='T' and nature !='CU')) order by evenement.action";                  $contenu[1][$k]=$row[1];
245              // *** attention en dur le CU                  $k++;
246                            }
   
             $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);  
247          }          }
248            $form->setSelect("evenement",$contenu);
249            // lien bible_auto  [link]
250            $contenu=array();
251            $contenu[0]=" automatique ";
252            $form->setSelect("bible_auto",$contenu);
253            // lien bible1
254            $contenu=array();
255            $contenu[0]=" Bible ";
256            $form->setSelect("bible",$contenu);
257            // lien bible2
258            $contenu=array();
259            $contenu[0]=" Bible ";
260            $form->setSelect("bible2",$contenu);
261      } // function select      } // function select
262    
263      function setGroupe(&$form,$maj){      function setGroupe(&$form,$maj){
# Line 257  class instruction extends instruction_ge Line 272  class instruction extends instruction_ge
272          $form->setRegroupe('libelle','G','');          $form->setRegroupe('libelle','G','');
273          $form->setRegroupe('datecourrier','G','');          $form->setRegroupe('datecourrier','G','');
274          $form->setRegroupe('lettretype','F','');          $form->setRegroupe('lettretype','F','');
275          $form->setRegroupe('complement','D',_('complement'), "startClosed");          $form->setRegroupe('complement','D',_('complement'), "collapsible");
276          $form->setRegroupe('bible_auto','G','');          $form->setRegroupe('bible_auto','G','');
277          $form->setRegroupe('bible','F','');          $form->setRegroupe('bible','F','');
278          $form->setRegroupe('complement2','D',_('complement2'), "startClosed");          $form->setRegroupe('complement2','D',_('complement2'), "startClosed");
# Line 274  class instruction extends instruction_ge Line 289  class instruction extends instruction_ge
289          $form->setLib('datecourrier',_(" du "));          $form->setLib('datecourrier',_(" du "));
290      }      }
291    
     function setOnchange(&$form,$maj){  
         $form->setOnchange("datecourrier","fdate(this)");  
     }  
   
292      // ==================================================================      // ==================================================================
293      // trigger avant modification données    [trigger before modify data]      // trigger avant modification données    [trigger before modify data]
294      // ==================================================================      // ==================================================================
295      function triggerajouter($id,&$db,$val,$DEBUG) {      function triggerajouter($id,&$db,$val,$DEBUG) {
296          // mise a jour instruction avec evenement          // mise a jour instruction avec evenement
297          // [modify instruction with evenement]          // [modify instruction with evenement]
298          $sql= "select * from evenement where evenement =".$this->valF['evenement'];          $sql= "select * from ".DB_PREFIXE."evenement where evenement =".$this->valF['evenement'];
299          $res = $db->query($sql);          $res = $db->query($sql);
300          if (database::isError($res))          if (database::isError($res)) die($res->getMessage());
             die($res->getMessage());  
301          if ($DEBUG == 1)          if ($DEBUG == 1)
302              echo " la requete ".$sql." est exécutée<br>";              echo " la requete ".$sql." est exécutée<br>";
303          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
304              $this->valF['action']=$row['action'];              if(isset($row['action']) and !empty($row['action'])) {
305                    $this->valF['action']=$row['action'];
306                } else {
307                    $this->valF['action']=NULL;
308                }
309              $this->valF['delai']=$row['delai'];              $this->valF['delai']=$row['delai'];
310              $this->valF['etat']=$row['etat'];              if(isset($row['etat']) and !empty($row['etat'])) {
311                    $this->valF['etat']=$row['etat'];
312                } else {
313                    $this->valF['etat']=NULL;
314                }
315              $this->valF['accord_tacite']=$row['accord_tacite'];              $this->valF['accord_tacite']=$row['accord_tacite'];
316              $this->valF['delai_notification']=$row['delai_notification'];              $this->valF['delai_notification']=$row['delai_notification'];
317              $this->valF['avis']=$row['avis'];              if(isset($row['avis_decision']) and !empty($row['avis_decision'])) {
318                    $this->valF['avis_decision']=$row['avis_decision'];
319                } else {
320                    $this->valF['avis_decision']=NULL;
321                }
322              if($row['lettretype']!="")              if($row['lettretype']!="")
323                  $this->valF['lettretype']=$row['lettretype'];                  $this->valF['lettretype']=$row['lettretype'];
324              else              else
325                  $this->valF['lettretype']="standard";                  $this->valF['lettretype']="standard";
326          }          }
327          $sql= "select * from dossier where dossier = '".$this->valF['dossier']."'";          $sql= "select * from ".DB_PREFIXE."dossier where dossier = '".$this->valF['dossier']."'";
328          $res = $db->query($sql);          $res = $db->query($sql);
329          if (database::isError($res))          if (database::isError($res))
330              die($res->getMessage());              die($res->getMessage());
# Line 315  class instruction extends instruction_ge Line 337  class instruction extends instruction_ge
337              $this->valF['archive_delai']=$row['delai'];              $this->valF['archive_delai']=$row['delai'];
338              $this->valF['archive_accord_tacite']=$row['accord_tacite'];              $this->valF['archive_accord_tacite']=$row['accord_tacite'];
339              $this->valF['archive_etat']=$row['etat'];              $this->valF['archive_etat']=$row['etat'];
340              $this->valF['archive_avis']=$row['avis'];              $this->valF['archive_avis']=$row['avis_decision'];
341              // compatibilite pgsql              // compatibilite pgsql
342              if($row['date_complet']!='')              if($row['date_complet']!='')
343                 $this->valF['archive_date_complet']=$row['date_complet'];                 $this->valF['archive_date_complet']=$row['date_complet'];
# Line 340  class instruction extends instruction_ge Line 362  class instruction extends instruction_ge
362            
363      function regle($regle){      function regle($regle){
364          $temp = explode ("+",$regle);          $temp = explode ("+",$regle);
365          echo '/'.$regle.sizeof($temp);          //echo '|'.$regle;
366          if(sizeof($temp)==1)          // cas rejet
367              if($temp[0]=="archive_date_depot")          if($regle=="null") // 1 dimension -> null
368                return null;
369            if(sizeof($temp)==1) // 1 dimension
370                if($temp[0]=="archive_date_depot") // initialisation avec le depot
371                  return $this->$regle;                  return $this->$regle;
372              else              else // cas general
373                  return $this->valF[$regle];                  return $this->valF[$regle];
374          else{          if(sizeof($temp)==2){ // 2 dimensions
375              if($temp[0]=="archive_date_depot")              if($temp[0]=="archive_date_depot") //initialisation avec le depot
376                  if(is_numeric($temp[1]))                  if(is_numeric($temp[1]))
377                      return  $this->moisdate($this->$temp[0], $temp[1]);                        return  $this->moisdate($this->$temp[0], $temp[1]);  
378                  else                  else
379                      return  $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);                      return  $this->moisdate($this->$temp[0], $this->valF[$temp[1]]);
380                if($temp[0]=="archive_delai") // majoration de delai
381                    return  $this->valF[$temp[0]]+$this->valF[$temp[1]];
382                // cas general 2 dimensions
383              if(is_numeric($temp[1]))              if(is_numeric($temp[1]))
384                  return $this->moisdate($this->valF[$temp[0]], $temp[1]);                  return $this->moisdate($this->valF[$temp[0]], $temp[1]);
385              else                            else              
386                 return  $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);                 return  $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
387          }          }
388            if(sizeof($temp)==3){ // 3 dimensions
389                // cas date de validite de sursis
390                if(is_numeric($temp[1]))
391                    $temp1 = $this->moisdate($this->valF[$temp[0]], $temp[1]);
392                else              
393                    $temp1 = $this->moisdate($this->valF[$temp[0]], $this->valF[$temp[1]]);
394                if(is_numeric($temp[2]))
395                    return $this->moisdate($temp1, $temp[2]);
396                else
397                    return $this->moisdate($temp1, $this->valF[$temp[2]]);
398            }
399      }      }
400            
401            
# Line 369  class instruction extends instruction_ge Line 408  class instruction extends instruction_ge
408          // voir parametrage CU en dur          // voir parametrage CU en dur
409          // voir parametrage des actions en dur          // voir parametrage des actions en dur
410          $param=1;          $param=1;
           
411          if($param==1){          if($param==1){
412          $sql="select * from action where action = '".$this->valF['action']."'";          $sql="select * from ".DB_PREFIXE."action where action = '".$this->valF['action']."'";
413          $res = $db->query($sql);          $res = $db->query($sql);
414          if (database::isError($res))          if (database::isError($res))
415              die($res->getMessage());              die($res->getMessage());
# Line 385  class instruction extends instruction_ge Line 423  class instruction extends instruction_ge
423              if($row['regle_accord_tacite']!=''){              if($row['regle_accord_tacite']!=''){
424                  $valF['accord_tacite']= $this->regle($row['regle_accord_tacite']);                  $valF['accord_tacite']= $this->regle($row['regle_accord_tacite']);
425              }              }
426                if($row['regle_avis']!=''){
427                    $valF['avis_decision']= $this->regle($row['regle_avis']);
428                }
429              if($row['regle_date_limite']!=''){              if($row['regle_date_limite']!=''){
430                  $valF['date_limite']= $this->regle($row['regle_date_limite']);                  $valF['date_limite']= $this->regle($row['regle_date_limite']);
431              }              }
# Line 394  class instruction extends instruction_ge Line 435  class instruction extends instruction_ge
435              if($row['regle_date_notification_delai']!=''){              if($row['regle_date_notification_delai']!=''){
436                  $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);                  $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
437              }              }
438                if($row['regle_date_decision']!=''){
439                    $valF['date_decision']= $this->regle($row['regle_date_decision']);
440                }
441                if($row['regle_date_rejet']!=''){
442                    $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
443                }
444               if($row['regle_date_validite']!=''){
445                    $valF['date_validite']= $this->regle($row['regle_date_validite']);
446                }
447               if($row['regle_date_chantier']!=''){
448                    $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
449                }
450               if($row['regle_date_achevement']!=''){
451                    $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
452                }
453               if($row['regle_date_conformite']!=''){
454                    $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
455                }
456          }          }
457          }else{          }else{
458                        switch ($this->valF['action']) {
459          switch ($this->valF['action']) {              case "initialisation" :
460          case "initialisation" :                  $valF['delai']= $this->valF['delai'];
461              $valF['delai']= $this->valF['delai'];                  $valF['etat']= $this->valF['etat'];
462              $valF['etat']= $this->valF['etat'];                  $valF['accord_tacite']= $this->valF['accord_tacite'];
463              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // la date_complet est la date de depot
464              // la date_complet est la date de depot                  $valF['date_complet']= $this->archive_date_depot; // ****
465              $valF['date_complet']= $this->archive_date_depot; // ****                  $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
466              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
467              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  break;
468              break;              case "notification" :
469          case "notification" :                  $valF['delai']= $this->valF['delai'];
470              $valF['delai']= $this->valF['delai'];                  $valF['etat']= $this->valF['etat'];
471              $valF['etat']= $this->valF['etat'];                  $valF['accord_tacite']= $this->valF['accord_tacite'];
472              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // la date_complet est celle precedemment saisie
473              // la date_complet est celle precedemment saisie                  $valF['date_complet']=$this->valF['archive_date_complet'];
474              $valF['date_complet']=$this->valF['archive_date_complet'];                  $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
475              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
476              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  // la date du courrier ne doit pas etre depasse par rapport au delai de
477              // la date du courrier ne doit pas etre depasse par rapport au delai de                  // notification    [verify notification date]
478              // notification    [verify notification date]                  if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
479              if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])                      $this->msg=$this->msg."<br><img src='../img/erreur.gif'> "._("date_notification_delai")." ".
480                  $this->msg=$this->msg."<br><img src='../img/erreur.gif'> "._("date_notification_delai")." ".                      $this->valF['archive_date_notification_delai']." < "._('datecourrier');
481                    //
482                    break;
483                case "retour" :
484                    $valF['delai']= $this->valF['delai'];
485                    $valF['etat']= $this->valF['etat'];
486                    $valF['accord_tacite']= $this->valF['accord_tacite'];
487                    // la date_complet est celle de l evenement
488                    $valF['date_complet']= $this->valF['datecourrier'];
489                    $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
490                    $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
491                    break;
492                case "rejet" :
493                    //$valF['delai']=0;   // *** delai a garder pour etat dpc
494                    $valF['etat']= $this->valF['etat'];
495                    $valF['accord_tacite']= $this->valF['accord_tacite'];
496                    // la date rejet est initialisee
497                    $valF['date_rejet']= $this->valF['datecourrier'];
498                    // les dates de depart et fin d instruction sont annulées
499                    $valF['date_limite'] =null;
500                    $valF['date_notification_delai'] =null;
501                    $valF['date_complet']=null;
502                    break;
503                case "majoration" :
504                    $valF['delai']= $this->valF['archive_delai']+$this->valF['delai'];
505                    $valF['etat']= $this->valF['etat'];
506                    $valF['accord_tacite']= $this->valF['accord_tacite'];
507                    $valF['date_complet']=$this->valF['archive_date_complet'];
508                    // majoration de la date limite
509                    $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);
510                    $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);
511                    // la date du courrier ne doit pas etre depasse par rapport au delai de
512                    // notification
513                    if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])
514                        $this->msg=$this->msg."<br><img src='../img/erreur.gif'>"._("date_notification_delai").
515                  $this->valF['archive_date_notification_delai']." < "._('datecourrier');                  $this->valF['archive_date_notification_delai']." < "._('datecourrier');
516              //                  break;
517              break;              case "acceptation" :
518          case "retour" :                  $valF['etat']= $this->valF['etat'];
519              $valF['delai']= $this->valF['delai'];                  $valF['date_decision']= $this->valF['datecourrier'];
520              $valF['etat']= $this->valF['etat'];                  $valF['avis_decision']= $this->valF['avis_decision'];
521              $valF['accord_tacite']= $this->valF['accord_tacite'];                  // date de validite = date de l evenement + delai
522              // la date_complet est celle de l evenement                  $valF['date_validite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
523              $valF['date_complet']= $this->valF['datecourrier'];                     break;
524              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);              case "refus" :
525              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  $valF['etat']= $this->valF['etat'];
526              break;                  $valF['date_decision']= $this->valF['datecourrier'];
527          case "rejet" :                  $valF['avis_decision']= $this->valF['avis_decision'];
528              //$valF['delai']=0;   // *** delai a garder pour etat dpc                  break;
529              $valF['etat']= $this->valF['etat'];              case "prolongation" :
530              $valF['accord_tacite']= $this->valF['accord_tacite'];                  $valF['date_validite'] =  $this->moisdate($this->valF['archive_date_validite'],$this->valF['delai']);
531              // la date rejet est initialisee                  break;
532              $valF['date_rejet']= $this->valF['datecourrier'];              case "sursis" :
533              // les dates de depart et fin d instruction sont annulées                  $valF['date_limite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);
534              $valF['date_limite'] =null;                  $valF['etat']= $this->valF['etat'];
535              $valF['date_notification_delai'] =null;                  $valF['accord_tacite']= $this->valF['accord_tacite'];
536              $valF['date_complet']=null;                  $valF['avis_decision']= $this->valF['avis_decision'];
537              break;                  $valF['date_decision']= $this->valF['datecourrier'];
538          case "majoration" :                  $temp = $valF['date_limite'];
539              $valF['delai']= $this->valF['archive_delai']+$this->valF['delai'];                  $valF['date_validite']= $this->moisdate($temp,2);
540              $valF['etat']= $this->valF['etat'];                  break;
541              $valF['accord_tacite']= $this->valF['accord_tacite'];              case "execution" :
542              $valF['date_complet']=$this->valF['archive_date_complet'];                  $valF['etat']= $this->valF['etat'];
543              // majoration de la date limite                  $valF['date_chantier'] =  $this->valF['datecourrier'];
544              $valF['date_limite'] =  $this->moisdate($valF['date_complet'],$valF['delai']);                  //echo $this->msg=$this->msg.$valF['date_chantier']."";
545              $valF['date_notification_delai'] =  $this->moisdate($valF['date_complet'],1);                  break;
546              // la date du courrier ne doit pas etre depasse par rapport au delai de              case "achevement" :
547              // notification                  $valF['etat']= $this->valF['etat'];
548              if($this->valF['archive_date_notification_delai']<$this->valF['datecourrier'])                  $valF['date_achevement'] = $this->valF['datecourrier'];
549                  $this->msg=$this->msg."<br><img src='../img/erreur.gif'>"._("date_notification_delai").                  break;
550              $this->valF['archive_date_notification_delai']." < "._('datecourrier');              case "archivage" :
551              break;                  $valF['etat']= $this->valF['etat'];
552          case "acceptation" :                  $valF['date_conformite'] = $this->valF['datecourrier'];
553              $valF['etat']= $this->valF['etat'];                  break;
554              $valF['date_decision']= $this->valF['datecourrier'];      
555              $valF['avis']= $this->valF['avis'];              default:
556              // date de validite = date de l evenement + delai              if ($this->valF['etat']!="")
557              $valF['date_validite'] =  $this->moisdate($this->valF['datecourrier'],$this->valF['delai']);                 $valF['etat']= $this->valF['etat'];
558                 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  
559          } // end param          } // end param
         // mise à jour dossier [modify dossier]  
         print_r($valF);  
560          if($valF!=""){          if($valF!=""){
561              $cle= " dossier = '".$this->valF['dossier']."'";              $cle= " dossier = '".$this->valF['dossier']."'";
562              $res1= $db->autoExecute('dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);              $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
563              if (database::isError($res1))              if (database::isError($res1))
564                  die($res->getMessage());                  die($res->getMessage());
565              if ($DEBUG == 1)              if ($DEBUG == 1)
# Line 513  class instruction extends instruction_ge Line 569  class instruction extends instruction_ge
569              $db->affectedRows()." "._('enregistrement').              $db->affectedRows()." "._('enregistrement').
570              " "._('mis_a_jour')."]" ;              " "._('mis_a_jour')."]" ;
571          }          }
572            // la nature du dossier
573            $nature_dossier = substr($this->idxformulaire,0,2);
574            $dossier_erp = $this->getFromDB("SELECT erp FROM ".DB_PREFIXE."dossier WHERE dossier = '" .
575                                        $this->valF['dossier'] . "'");
576            $evenement_libelle = $this->getFromDB(
577                    "SELECT libelle FROM ".DB_PREFIXE."evenement WHERE evenement = '" .
578                    $this->valF['evenement'] . "'");
579            if ($dossier_erp == 't') {
580                // envoi du message en cas d'un PC qui est ERP et sur lequel un evenement
581                // d'acceptation etait fait
582                if ($nature_dossier ==
583                        $this->f->getParameter('erp_evenement_accepter_dossier_PC')
584                    && $this->valF['evenement'] ==
585                        $this->f->getParameter('erp_evenement_accepter_sans_reserve')) {
586                    $msgenque = new MessageEnqueuer();
587                    $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
588                    $msgenque->setDecision($evenement_libelle);
589                    $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);
590                }
591                if ($this->valF['evenement'] ==
592                        $this->f->getParameter('erp_evenement_refuser_dossier')) {
593                    $msgenque = new MessageEnqueuer();
594                    $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
595                    $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);                
596                }
597            }
598        }
599        
600        
601        /**
602         * Fait une requette sql pour extraire la valeur d'un champ, et retourne
603         * cette valeur
604         * @param string $sql La requete sql a executer
605         * @return La valeur du champs cherche, sinon NULL. En cas d'erreur de la BD
606         * l'execution s'arrete.
607         */
608        function getFromDB($sql) {
609            //$sql = "SELECT libelle FROM ".DB_PREFIXE."dossier WHERE dossier = '" . $dossier . "'";
610            $res = $this->db->limitquery($sql, 0, 1);
611            $this->addToLog("getDossierERPSpecification(): db->limitquery(\"".
612                            str_replace(",",", ",$sql)."\", 0, 1);", VERBOSE_MODE);
613            // Si une erreur survient on die
614            if (database::isError($res, true)) {
615                // Appel de la methode de recuperation des erreurs
616                $this->erreur_db($res->getDebugInfo(), $res->getMessage(), 'instruction');
617            }
618            // retourne la nature du dossier
619            while ($row =& $res->fetchRow()) {
620                return $row[0];
621            }
622            // la nature n'etait pas trouve, ce qui ne devrait pas se passer
623            return NULL;
624    
625      }      }
626            
627    
628        function triggermodifierapres($id,&$db,$val,$DEBUG) {
629            /*
630             * cette fonction apour objet de permettre de modifier la date courrier
631            */
632            $valF=array();
633            $sql= "select action from ".DB_PREFIXE."evenement where evenement =".$this->valF['evenement'];
634            $action = $db->getOne($sql);
635            if (database::isError($action)) die($action->getMessage().$sql);
636            $sql="select * from ".DB_PREFIXE."action where action = '".$action."'";
637            $res = $db->query($sql);
638            if (database::isError($res)) die($res->getMessage().$sql);
639            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
640                // application des regles sur le courrier + delai
641                if(preg_match("/datecourrier/",$row['regle_date_limite'])){
642                    $valF['date_limite']= $this->regle($row['regle_date_limite']);
643                }
644                if(preg_match("/datecourrier/",$row['regle_date_complet'])){
645                    $valF['date_complet']= $this->regle($row['regle_date_complet']);
646                }
647                if(preg_match("/datecourrier/",$row['regle_date_notification_delai'])){
648                    $valF['date_notification_delai']= $this->regle($row['regle_date_notification_delai']);
649                }
650                if(preg_match("/datecourrier/",$row['regle_date_decision'])){
651                    $valF['date_decision']= $this->regle($row['regle_date_decision']);
652                }
653                if(preg_match("/datecourrier/",$row['regle_date_rejet'])){
654                    $valF['date_rejet']= $this->regle($row['regle_date_rejet']);
655                }
656                if(preg_match("/datecourrier/",$row['regle_date_validite'])){
657                    $valF['date_validite']= $this->regle($row['regle_date_validite']);
658                }
659                if(preg_match("/datecourrier/",$row['regle_date_chantier'])){
660                    $valF['date_chantier']= $this->regle($row['regle_date_chantier']);
661                }
662                if(preg_match("/datecourrier/",$row['regle_date_achevement'])){
663                    $valF['date_achevement']= $this->regle($row['regle_date_achevement']);
664                }
665                if(preg_match("/datecourrier/",$row['regle_date_conformite'])){
666                    $valF['date_conformite']= $this->regle($row['regle_date_conformite']);
667                }
668            } // while
669            if($valF!=array()){
670                $cle= " dossier = '".$this->valF['dossier']."'";
671                $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
672                if (database::isError($res1))
673                    die($res->getMessage());
674                if ($DEBUG == 1)
675                  echo "La requête de mise à jour est effectuée.<br>";
676                $this->msg=$this->msg."<br>"._('enregistrement')." ".
677                $this->valF['dossier']." "._('table')." dossier [".
678                $db->affectedRows()." "._('enregistrement').
679                " "._('mis_a_jour')."]" ;
680            }
681        }
682    
683    
684        
685      // trigger before delete      // trigger before delete
686      function triggersupprimer($id,&$db,$val,$DEBUG) {      function triggersupprimer($id,&$db,$val,$DEBUG) {
687          // 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 689  class instruction extends instruction_ge
689          $valF['accord_tacite']=$val['archive_accord_tacite'];          $valF['accord_tacite']=$val['archive_accord_tacite'];
690          $valF['etat']=$val['archive_etat'];          $valF['etat']=$val['archive_etat'];
691          if($val['archive_avis']=='')          if($val['archive_avis']=='')
692              $valF['avis']= null;              $valF['avis_decision']= null;
693          else          else
694              $valF['avis']=$val['archive_avis'];              $valF['avis_decision']=$val['archive_avis'];
695          // if= compatibilite pgsql          // if= compatibilite pgsql
696          if($val['archive_date_complet']!='')          if($val['archive_date_complet']!='')
697              $valF['date_complet']=$val['archive_date_complet'];              $valF['date_complet']=$val['archive_date_complet'];
# Line 546  class instruction extends instruction_ge Line 713  class instruction extends instruction_ge
713              $valF['date_conformite']= $val['archive_date_conformite'];              $valF['date_conformite']= $val['archive_date_conformite'];
714                    
715          $cle= " dossier = '".$val['dossier']."'";          $cle= " dossier = '".$val['dossier']."'";
716          $res= $db->autoExecute('dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);          $res= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
717          if (database::isError($res))          if (database::isError($res))
718              die($res->getMessage());              die($res->getMessage());
719          else{          else{
# Line 606  class instruction extends instruction_ge Line 773  class instruction extends instruction_ge
773      }      }
774    
775  }// fin classe  }// fin classe
 ?>  
776    ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26