/[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 2792 by vpihour, Fri Mar 7 15:14:23 2014 UTC revision 2944 by nmeucci, Wed Apr 16 08:03:07 2014 UTC
# Line 33  class instruction extends instruction_ge Line 33  class instruction extends instruction_ge
33      var $retourformulaire;   // specific      var $retourformulaire;   // specific
34      var $idxformulaire;      // specific      var $idxformulaire;      // specific
35      var $valEvenement;      var $valEvenement;
36        var $restriction_valid = null;
37      // Tableau contenant une partie des métadonnées arrêtés      // Tableau contenant une partie des métadonnées arrêtés
38      var $metadonneesArrete;      var $metadonneesArrete;
39    
# Line 82  class instruction extends instruction_ge Line 83  class instruction extends instruction_ge
83              && $this->val[array_search("lu", $this->champs)]== "t") {              && $this->val[array_search("lu", $this->champs)]== "t") {
84              unset($this->actions_sup["lu"]);              unset($this->actions_sup["lu"]);
85          }          }
86    
87            //Si pas de lettretype associée
88            if($this->getVal("lettretype") == "") {
89                // Suppression des actions sur fichier dans le portlet actions
90                $this->actions_sup["pdfetat"] = NULL;
91                $this->actions_sup["finalisation"] = NULL;
92                $this->actions_sup["definalisation"] = NULL;
93            }
94                            
95          //Si le document est déjà finalisé, on affiche uniquement le lien de          //Si le document est déjà finalisé, on affiche uniquement le lien de
96          //dé-finalisation          //dé-finalisation
# Line 301  class instruction extends instruction_ge Line 310  class instruction extends instruction_ge
310          $form->setType('archive_etat', 'hidden');          $form->setType('archive_etat', 'hidden');
311          $form->setType('archive_accord_tacite', 'hidden');          $form->setType('archive_accord_tacite', 'hidden');
312          $form->setType('archive_avis', 'hidden');          $form->setType('archive_avis', 'hidden');
313          $form->setType('archive_date_complet', 'hidden');          $form->setType('archive_date_complet', 'hiddendate');
314          $form->setType('archive_date_dernier_depot', 'hidden');          $form->setType('archive_date_dernier_depot', 'hiddendate');
315          $form->setType('archive_date_rejet', 'hidden');          $form->setType('archive_date_rejet', 'hiddendate');
316          $form->setType('archive_date_limite', 'hidden');          $form->setType('archive_date_limite', 'hiddendate');
317          $form->setType('archive_date_notification_delai', 'hidden');          $form->setType('archive_date_notification_delai', 'hiddendate');
318          $form->setType('archive_date_decision', 'hidden');          $form->setType('archive_date_decision', 'hiddendate');
319          $form->setType('archive_date_validite', 'hidden');          $form->setType('archive_date_validite', 'hiddendate');
320          $form->setType('archive_date_achevement', 'hidden');          $form->setType('archive_date_achevement', 'hiddendate');
321          $form->setType('archive_date_conformite', 'hidden');          $form->setType('archive_date_conformite', 'hiddendate');
322          $form->setType('archive_date_chantier', 'hidden');          $form->setType('archive_date_chantier', 'hiddendate');
323          $form->setType('archive_autorite_competente','hidden');          $form->setType('archive_autorite_competente','hidden');
324          //          //
325          $form->setType('numero_arrete', 'hidden');          $form->setType('numero_arrete', 'hidden');
# Line 322  class instruction extends instruction_ge Line 331  class instruction extends instruction_ge
331          $form->setType('archive_evenement_suivant_tacite','hidden');          $form->setType('archive_evenement_suivant_tacite','hidden');
332          $form->setType('archive_evenement_suivant_tacite_incompletude','hidden');          $form->setType('archive_evenement_suivant_tacite_incompletude','hidden');
333          $form->setType('archive_etat_pendant_incompletude','hidden');          $form->setType('archive_etat_pendant_incompletude','hidden');
334          $form->setType('archive_date_limite_incompletude','hidden');          $form->setType('archive_date_limite_incompletude','hiddendate');
335          $form->setType('archive_delai_incompletude','hidden');          $form->setType('archive_delai_incompletude','hidden');
336    
337          //          //
# Line 347  class instruction extends instruction_ge Line 356  class instruction extends instruction_ge
356              $form->setType('date_retour_controle_legalite','datedisabled');              $form->setType('date_retour_controle_legalite','datedisabled');
357              $form->setType('date_finalisation_courrier','datedisabled');              $form->setType('date_finalisation_courrier','datedisabled');
358    
359              // l'administrateur peut modifier les champs de retour de date              
             if ($this->f->user_is_admin == true) {  
                 $form->setType('date_retour_signature','date');  
                 $form->setType('date_retour_rar','date');  
                 $form->setType('date_retour_controle_legalite','date');  
             }  
360    
361              if($maj==0){ // add              if($maj==0){ // add
362                  $form->setType('instruction', 'hiddenstatic');                  $form->setType('instruction', 'hidden');
363                    $form->setType('lettretype', 'hidden');
364                  $form->setType('evenement', 'select');                  $form->setType('evenement', 'select');
365                  $form->setType('date_evenement', 'date2');                  $form->setType('date_evenement', 'date2');
366              }else{ // modify              }else{ // modify
# Line 365  class instruction extends instruction_ge Line 370  class instruction extends instruction_ge
370                  $form->setType('date_evenement', 'date2');                  $form->setType('date_evenement', 'date2');
371                  // necessaire pour calcul de date en modification                  // necessaire pour calcul de date en modification
372                  //$form->setType('delai', 'hiddenstatic');                  //$form->setType('delai', 'hiddenstatic');
373                    // les administrateurs technique et fonctionnel peuvent
374                    // modifier tous les champs de date
375                    if ($this->f->isAccredited("instruction_modification_dates")) {
376                        $form->setType('date_envoi_signature', 'date');
377                        $form->setType('date_retour_signature', 'date');
378                        $form->setType('date_envoi_rar', 'date');
379                        $form->setType('date_retour_rar', 'date');
380                        $form->setType('date_envoi_controle_legalite', 'date');
381                        $form->setType('date_retour_controle_legalite', 'date');
382                        $form->setType('date_finalisation_courrier', 'date');
383                    }
384              }              }
385          } elseif($maj==2){          } elseif($maj==2){
386              $form->setType('dossier', 'hidden');              $form->setType('dossier', 'hidden');
# Line 389  class instruction extends instruction_ge Line 405  class instruction extends instruction_ge
405          //date_retour_controle_legalite si ce n'est pas un arrêté          //date_retour_controle_legalite si ce n'est pas un arrêté
406          if ( !is_numeric($this->getVal("avis_decision"))){          if ( !is_numeric($this->getVal("avis_decision"))){
407                            
408              $form->setType("date_envoi_controle_legalite", "hidden");              $form->setType("date_envoi_controle_legalite", "hiddendate");
409              $form->setType("date_retour_controle_legalite", "hidden");              $form->setType("date_retour_controle_legalite", "hiddendate");
410          }          }
411      }      }
412    
# Line 444  class instruction extends instruction_ge Line 460  class instruction extends instruction_ge
460              // du dossier d'instruction en cours              // du dossier d'instruction en cours
461              $sql = "SELECT              $sql = "SELECT
462              evenement.evenement,              evenement.evenement,
463              CONCAT(evenement.libelle, ' ['||evenement.action||']') as lib              evenement.libelle as lib
464              FROM ".DB_PREFIXE."dossier              FROM ".DB_PREFIXE."dossier
465              INNER JOIN ".DB_PREFIXE."lien_dossier_instruction_type_evenement              INNER JOIN ".DB_PREFIXE."lien_dossier_instruction_type_evenement
466                  ON dossier.dossier_instruction_type=lien_dossier_instruction_type_evenement.dossier_instruction_type                  ON dossier.dossier_instruction_type=lien_dossier_instruction_type_evenement.dossier_instruction_type
# Line 472  class instruction extends instruction_ge Line 488  class instruction extends instruction_ge
488              $form->setSelect("evenement", $contenu);              $form->setSelect("evenement", $contenu);
489          } else {          } else {
490              $sql = "SELECT              $sql = "SELECT
491              CONCAT(evenement.libelle, ' ['||evenement.action||']') as lib              evenement.libelle as lib
492              FROM ".DB_PREFIXE."evenement              FROM ".DB_PREFIXE."evenement
493              WHERE evenement.evenement=".$this->getVal("evenement")."";              WHERE evenement.evenement=".$this->getVal("evenement")."";
494              $res = $db->getone($sql);              $res = $db->getone($sql);
# Line 766  class instruction extends instruction_ge Line 782  class instruction extends instruction_ge
782                  $this->valF['autorite_competente']=$row['autorite_competente'];                  $this->valF['autorite_competente']=$row['autorite_competente'];
783              }              }
784              // Récupération de la valeur de la lettre type              // Récupération de la valeur de la lettre type
785              // Sinon on lui affecte lavaleur par défaut standard              $this->valF['lettretype']=$row['lettretype'];
             if ($row['lettretype'] != "") {  
                 $this->valF['lettretype']=$row['lettretype'];  
             } else {  
                 $this->valF['lettretype'] = "standard"; // XXX  
             }  
786          }          }
787          // Récupération de toutes les valeurs du dossier d'instruction en cours          // Récupération de toutes les valeurs du dossier d'instruction en cours
788          $sql = "SELECT * FROM ".DB_PREFIXE."dossier          $sql = "SELECT * FROM ".DB_PREFIXE."dossier
# Line 810  class instruction extends instruction_ge Line 821  class instruction extends instruction_ge
821      // Test si une restriction est valide      // Test si une restriction est valide
822      // return boolean      // return boolean
823      function restrictionIsValid($restriction){      function restrictionIsValid($restriction){
824            if($this->restriction_valid != null) {
825                return $this->restriction_valid;
826            }
827          // Liste des opérateurs possible          // Liste des opérateurs possible
828          $operateurs = array(">=", "<=", "+", "-");          $operateurs = array(">=", "<=", "+", "-");
829          // Liste des opérateurs avec espace          // Liste des opérateurs avec espace
# Line 924  class instruction extends instruction_ge Line 937  class instruction extends instruction_ge
937      }      }
938    
939      /**      /**
940         * Permet de définir si l'événement passé en paramètre est un événement retour.
941         * @param integer $evenement événement à tester
942         *
943         * @return boolean retourne true si événement retour sinon false
944         */
945        function is_evenement_retour($evenement) {
946            if(empty($evenement) || !is_numeric($evenement)) {
947                return "";
948            }
949            $sql = "SELECT retour
950                FROM ".DB_PREFIXE."evenement
951                WHERE evenement = ".$evenement;
952            $retour = $this->db->getOne($sql);
953            $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);
954            if (database::isError($retour)) {
955                die($retour->getMessage());
956            }
957            if ($retour == 't') {
958                return true;
959            } else {
960                return false;
961            }
962        }
963    
964        /**
965         * Retourne le champ restriction de l'événement passé en paramètre.
966         *
967         * @param integer $evenement id de l'événement sur lequel récupérer la restriction
968         *
969         * @return string             contenu du champ restriction
970         */
971        function get_restriction($evenement) {
972            if(empty($evenement) || !is_numeric($evenement)) {
973                return "";
974            }
975            //Récupère la restriction
976            $sql= "SELECT
977                      restriction
978                  FROM
979                      ".DB_PREFIXE."evenement
980                  WHERE
981                      evenement =".$evenement;
982    
983            $restriction = $this->db->getOne($sql);
984            $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);
985            if (database::isError($restriction)) {
986                die($restriction->getMessage());
987            }        
988            return $restriction;
989        }
990    
991        /**
992       * Récupère la valeur du champ dans la restriction       * Récupère la valeur du champ dans la restriction
993       * @param  string   $restrictionValue   Nom du champ       * @param  string   $restrictionValue   Nom du champ
994       * @return mixed                        Valeur du champ       * @return mixed                        Valeur du champ
# Line 1235  class instruction extends instruction_ge Line 1300  class instruction extends instruction_ge
1300                      $msgenque = new MessageEnqueuer();                      $msgenque = new MessageEnqueuer();
1301                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
1302                      $msgenque->setDecision($evenement_libelle);                      $msgenque->setDecision($evenement_libelle);
1303                      $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);                      $return = $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);
1304                        //Si une erreur s'est produite on arrête le traitement et on
1305                        //retourne une erreur
1306                        if ($return !== 0){
1307                            
1308                            $this->addToMessage(_("Une erreur s'est produite lors de ".
1309                                "l'envoi du message au referentiel ERP. Merci de ".
1310                                "contacter votre administrateur"));
1311                            //On ne valide pas le formulaire
1312                            $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1313                            $this->correct = false;
1314                            return false;
1315                        }
1316                        else {
1317                            $this->addToMessage(_("Le message a ete transmis au ".
1318                                "referentiel ERP."));
1319                        }
1320                  }                  }
1321                  if ($this->valF['evenement'] ==                  if ($this->valF['evenement'] ==
1322                          $this->f->getParameter('erp_evenement_refuser_dossier')) {                          $this->f->getParameter('erp_evenement_refuser_dossier')) {
1323                      $msgenque = new MessageEnqueuer();                      $msgenque = new MessageEnqueuer();
1324                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
1325                      $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);                                      $return = $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);
1326                        //Si une erreur s'est produite on arrête le traitement et on
1327                        //retourne une erreur
1328                        if ($return !== 0){
1329                            
1330                            $this->addToMessage(_("Une erreur s'est produite lors de ".
1331                                "l'envoi du message au referentiel ERP. Merci de ".
1332                                "contacter votre administrateur"));
1333                            //On ne valide pas le formulaire
1334                            $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1335                            $this->correct = false;
1336                            return false;
1337                        }
1338                        else {
1339                            $this->addToMessage(_("Le message a ete transmis au ".
1340                                "referentiel ERP."));
1341                        }                
1342                  }                  }
1343              }              }
1344          } // fin de if ($this->f->getParameter('option_erp') != "")          } // fin de if ($this->f->getParameter('option_erp') != "")
# Line 1249  class instruction extends instruction_ge Line 1346  class instruction extends instruction_ge
1346          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1347          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1348          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);
1349          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1350                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1351                $this->correct = false;
1352                return false;
1353            }
1354      }          }    
1355    
1356      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id,&$db,$val,$DEBUG) {
# Line 1325  class instruction extends instruction_ge Line 1426  class instruction extends instruction_ge
1426              $this->addToMessage(_('enregistrement')." ".$this->valF['dossier']." "._('table')." dossier [".$db->affectedRows()." "._('enregistrement')." "._('mis_a_jour')."]");              $this->addToMessage(_('enregistrement')." ".$this->valF['dossier']." "._('table')." dossier [".$db->affectedRows()." "._('enregistrement')." "._('mis_a_jour')."]");
1427          }          }
1428    
1429          // Récupération de tous les paramètres de l'événement sélectionné          $restriction = $this->get_restriction($val['evenement']);
1430          $sql = "SELECT * FROM ".DB_PREFIXE."evenement          $this->restriction_valid = $this->restrictionIsValid($restriction);
1431          WHERE evenement=".$this->valF['evenement'];  
1432          $res = $db->query($sql);          if($restriction == "" || $this->restriction_valid ){
1433          $this->addToLog("triggermodifierapres(): db->query(\"".$sql."\");", VERBOSE_MODE);              // Récupération de tous les paramètres de l'événement sélectionné
1434          if (database::isError($res)) {              $sql = "SELECT * FROM ".DB_PREFIXE."evenement
1435              die($res->getMessage());              WHERE evenement=".$this->valF['evenement'];
1436          }              $res = $db->query($sql);
1437          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {              $this->addToLog("triggermodifierapres(): db->query(\"".$sql."\");", VERBOSE_MODE);
1438              // Si la date de retour signature est éditée on vérifie si il existe un événement automatique              if (database::isError($res)) {
1439              if ($this->getVal('date_retour_signature') == "" AND                  die($res->getMessage());
                 $this->valF['date_retour_signature'] != "" AND  
                 $row['evenement_retour_signature'] != "") {  
                 $new_instruction = new instruction("]", $db, $DEBUG);  
                 // Création d'un tableau avec la liste des champs de l'instruction  
                 foreach($new_instruction->champs as $champ) {  
                     $valNewInstr[$champ] = "";  
                 }  
                 // Définition des valeurs de la nouvelle instruction  
                 $valNewInstr["evenement"] = $row['evenement_retour_signature'];  
                 $valNewInstr["destinataire"] = $this->valF['destinataire'];  
                 $valNewInstr["dossier"] = $this->valF['dossier'];  
                 $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_signature']);  
                 $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);  
                 $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);  
                 $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);  
                 $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);  
                 $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);  
                 $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);  
                 $new_instruction->ajouter($valNewInstr,$db, $DEBUG);  
             }  
             // Si la date de retour AR est éditée on vérifie si il existe un événement automatique  
             if ($this->getVal('date_retour_rar') == "" AND  
                 $this->valF['date_retour_rar'] != "" AND  
                 $row['evenement_retour_ar'] != "" ) {  
                 $new_instruction = new instruction("]", $db, $DEBUG);  
                 // Création d'un tableau avec la liste des champs de l'instruction  
                 foreach($new_instruction->champs as $champ) {  
                     $valNewInstr[$champ] = "";  
                 }  
                 // Définition des valeurs de la nouvelle instruction  
                 $valNewInstr["evenement"] = $row['evenement_retour_ar'];  
                 $valNewInstr["destinataire"] = $this->valF['destinataire'];  
                 $valNewInstr["dossier"] = $this->valF['dossier'];  
                 $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_rar']);  
                 $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);  
                 $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);  
                 $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);  
                 $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);  
                 $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);  
                 $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);  
                 $new_instruction->ajouter($valNewInstr,$db, $DEBUG);  
1440              }              }
1441                while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
1442                    // Si la date de retour signature est éditée on vérifie si il existe un événement automatique
1443                    if ($this->getVal('date_retour_signature') == "" AND
1444                        $this->valF['date_retour_signature'] != "" AND
1445                        $row['evenement_retour_signature'] != "") {
1446                        $new_instruction = new instruction("]", $db, $DEBUG);
1447                        // Création d'un tableau avec la liste des champs de l'instruction
1448                        foreach($new_instruction->champs as $champ) {
1449                            $valNewInstr[$champ] = "";
1450                        }
1451                        // Définition des valeurs de la nouvelle instruction
1452                        $valNewInstr["evenement"] = $row['evenement_retour_signature'];
1453                        $valNewInstr["destinataire"] = $this->valF['destinataire'];
1454                        $valNewInstr["dossier"] = $this->valF['dossier'];
1455                        $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_signature']);
1456                        $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);
1457                        $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);
1458                        $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);
1459                        $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);
1460                        $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);
1461                        $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);
1462                        $retour = $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
1463                        
1464                        //Si une erreur s'est produite et qu'il s'agit d'un problème
1465                        //de restriction
1466                        if ($retour == false && !$new_instruction->restriction_valid){
1467                            $this->msg .= $new_instruction->msg;
1468                            $this->addToLog("triggermodifierapres() : evenement retour ".
1469                                "instruction ".$this->valF[$this->clePrimaire]." : ".
1470                                $new_instruction->msg);
1471                        }
1472                        //Si une erreur s'est produite après le test de la restriction
1473                        elseif ($retour == false && $new_instruction->restriction_valid){
1474                            $this->correct = false ;
1475                            $this->msg .= $new_instruction->msg;
1476                            return false;
1477                        }
1478                    }
1479                    // Si la date de retour AR est éditée on vérifie si il existe un événement automatique
1480                    if ($this->getVal('date_retour_rar') == "" AND
1481                        $this->valF['date_retour_rar'] != "" AND
1482                        $row['evenement_retour_ar'] != "" ) {
1483                        $new_instruction = new instruction("]", $db, $DEBUG);
1484                        // Création d'un tableau avec la liste des champs de l'instruction
1485                        foreach($new_instruction->champs as $champ) {
1486                            $valNewInstr[$champ] = "";
1487                        }
1488                        // Définition des valeurs de la nouvelle instruction
1489                        $valNewInstr["evenement"] = $row['evenement_retour_ar'];
1490                        $valNewInstr["destinataire"] = $this->valF['destinataire'];
1491                        $valNewInstr["dossier"] = $this->valF['dossier'];
1492                        $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_rar']);
1493                        $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);
1494                        $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);
1495                        $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);
1496                        $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);
1497                        $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);
1498                        $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);
1499                        $retour = $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
1500                        
1501                                            //Si une erreur s'est produite et qu'il s'agit d'un problème
1502                        //de restriction
1503                        if ($retour == false && !$new_instruction->restriction_valid){
1504                            $this->msg .= $new_instruction->msg;
1505                            $this->addToLog("triggermodifierapres() : evenement retour ".
1506                                "instruction ".$this->valF[$this->clePrimaire]." : ".
1507                                $new_instruction->msg);
1508                        }
1509                        //Si une erreur s'est produite après le test de la restriction
1510                        elseif ($retour == false && $new_instruction->restriction_valid){
1511                            $this->correct = false ;
1512                            $this->msg .= $new_instruction->msg;
1513                            return false;
1514                        }
1515                    }
1516                }
1517            }
1518    
1519            //Récupération du type de l'événement
1520            $sql = "SELECT type
1521            FROM ".DB_PREFIXE."evenement
1522            WHERE evenement=".$this->valF['evenement'];
1523            $type_evmt = $db->getOne($sql);
1524            $this->addToLog("triggermodifierapres(): db->getone(\"".$sql."\");", VERBOSE_MODE);
1525            if (database::isError($type_evmt)) {
1526                die($type_evmt->getMessage());
1527          }          }
1528    
1529          /**          /**
# Line 1385  class instruction extends instruction_ge Line 1531  class instruction extends instruction_ge
1531           */           */
1532          // Si l'option référentiel arrêté est activé et l'événement est de type          // Si l'option référentiel arrêté est activé et l'événement est de type
1533          // arrêté          // arrêté
1534            
1535          if ($this->f->getParameter('option_referentiel_arrete') != "" AND          if ($this->f->getParameter('option_referentiel_arrete') != "" AND
1536              $type_evmt == "arrete") {              $type_evmt == "arrete") {
1537              if ($this->valF['date_retour_signature'] != $this->getVal('date_retour_signature')) {              if ($this->valF['date_retour_signature'] != $this->getVal('date_retour_signature')) {
# Line 1439  class instruction extends instruction_ge Line 1586  class instruction extends instruction_ge
1586            
1587                  $rowArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);                  $rowArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);
1588                  $msgenque->setArreteInfo($rowArrete);                  $msgenque->setArreteInfo($rowArrete);
1589                  $msgenque->enqueueMessage($msgenque::$ARRETE_ENVOI);                                  $return = $msgenque->enqueueMessage($msgenque::$ARRETE_ENVOI);
1590                    //Si une erreur s'est produite on arrête le traitement et on
1591                    //retourne une erreur
1592                    if ($return !== 0){
1593                        
1594                        //On supprime les messages précédents
1595                        $this->msg = '';
1596                        $this->addToMessage(_("Une erreur s'est produite lors de ".
1597                            "l'envoi du message au referentiel arrêté. Merci de ".
1598                            "contacter votre administrateur."));
1599                        //On ne valide pas le formulaire
1600                        $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1601                        $this->correct = false;
1602                        return false;
1603                    }
1604                    else {
1605                        $this->addToMessage(_("Le message a ete transmis au ".
1606                            "referentiel arrêté."));
1607                    }
1608              }              }
1609          }          }
1610    
1611          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1612          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1613          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);
1614          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1615                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1616                $this->correct = false;
1617                return false;
1618            }
1619      }      }
1620    
1621      function triggersupprimer($id,&$db,$val,$DEBUG) {      function triggersupprimer($id,&$db,$val,$DEBUG) {
# Line 1572  class instruction extends instruction_ge Line 1741  class instruction extends instruction_ge
1741          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1742          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1743          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($val["dossier"]), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($val["dossier"]), $this->db, DEBUG);
1744          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1745                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1746                $this->correct = false;
1747                return false;
1748            }
1749      }      }
1750    
1751      // Vérifie la restriction sur l'événement      // Vérifie la restriction sur l'événement
# Line 1580  class instruction extends instruction_ge Line 1753  class instruction extends instruction_ge
1753          parent::verifier($val, $db, $DEBUG);          parent::verifier($val, $db, $DEBUG);
1754    
1755          if ( isset($val['evenement']) && is_numeric($val['evenement'])){          if ( isset($val['evenement']) && is_numeric($val['evenement'])){
1756              //Récupère la restriction              $restriction = $this->get_restriction($val['evenement']);
             $sql= "SELECT  
                       restriction  
                   FROM  
                       ".DB_PREFIXE."evenement  
                   WHERE  
                       evenement =".$val['evenement'];  
       
             $res = $db->query($sql);  
             $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);  
             if (database::isError($res)) {  
                 die($res->getMessage());  
             }          
             $row=& $res->fetchRow(DB_FETCHMODE_ASSOC);  
1757            
1758              //Test qu'une restriction est présente              //Test qu'une restriction est présente
1759              if ( isset($row['restriction']) && $row['restriction'] != "" ){              if ($restriction != "" ){
   
                 $restriction = $row['restriction'];  
1760                                    
1761                  //Test si la restriction est valide                  //Test si la restriction est valide
1762                  if ( !$this->restrictionIsValid($restriction) ){                  $this->restriction_valid = $this->restrictionIsValid($restriction);
1763                    if ( !$this->restriction_valid ){
1764                                            
                     $this->correct=false;  
1765                      $this->addToMessage(_("Restriction non valide"));                      $this->addToMessage(_("Restriction non valide"));
1766                  }                      $this->correct = false;
1767                  else {                      return false;
                       
                     $this->correct = true;  
1768                  }                  }
1769    
1770                  // Liste des opérateurs possible                  // Liste des opérateurs possible
# Line 1763  class instruction extends instruction_ge Line 1919  class instruction extends instruction_ge
1919                  return -1;                  return -1;
1920              }              }
1921          }          }
   
1922          //Mise à jour des données          //Mise à jour des données
1923          if ( $uid != '' && $uid != 'OP_FAILURE' ){          if ( $uid != '' && $uid != 'OP_FAILURE' ){
1924              // Logger              // Logger

Legend:
Removed from v.2792  
changed lines
  Added in v.2944

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26