/[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 2920 by vpihour, Mon Apr 7 14:14:30 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                    // l'administrateur peut modifier les champs de retour de date
374                    if ($this->f->user_is_admin == true) {
375                        $form->setType('date_retour_signature','date');
376                        $form->setType('date_retour_rar','date');
377                        $form->setType('date_retour_controle_legalite','date');
378                    }
379              }              }
380          } elseif($maj==2){          } elseif($maj==2){
381              $form->setType('dossier', 'hidden');              $form->setType('dossier', 'hidden');
# Line 389  class instruction extends instruction_ge Line 400  class instruction extends instruction_ge
400          //date_retour_controle_legalite si ce n'est pas un arrêté          //date_retour_controle_legalite si ce n'est pas un arrêté
401          if ( !is_numeric($this->getVal("avis_decision"))){          if ( !is_numeric($this->getVal("avis_decision"))){
402                            
403              $form->setType("date_envoi_controle_legalite", "hidden");              $form->setType("date_envoi_controle_legalite", "hiddendate");
404              $form->setType("date_retour_controle_legalite", "hidden");              $form->setType("date_retour_controle_legalite", "hiddendate");
405          }          }
406      }      }
407    
# Line 444  class instruction extends instruction_ge Line 455  class instruction extends instruction_ge
455              // du dossier d'instruction en cours              // du dossier d'instruction en cours
456              $sql = "SELECT              $sql = "SELECT
457              evenement.evenement,              evenement.evenement,
458              CONCAT(evenement.libelle, ' ['||evenement.action||']') as lib              evenement.libelle as lib
459              FROM ".DB_PREFIXE."dossier              FROM ".DB_PREFIXE."dossier
460              INNER JOIN ".DB_PREFIXE."lien_dossier_instruction_type_evenement              INNER JOIN ".DB_PREFIXE."lien_dossier_instruction_type_evenement
461                  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 483  class instruction extends instruction_ge
483              $form->setSelect("evenement", $contenu);              $form->setSelect("evenement", $contenu);
484          } else {          } else {
485              $sql = "SELECT              $sql = "SELECT
486              CONCAT(evenement.libelle, ' ['||evenement.action||']') as lib              evenement.libelle as lib
487              FROM ".DB_PREFIXE."evenement              FROM ".DB_PREFIXE."evenement
488              WHERE evenement.evenement=".$this->getVal("evenement")."";              WHERE evenement.evenement=".$this->getVal("evenement")."";
489              $res = $db->getone($sql);              $res = $db->getone($sql);
# Line 766  class instruction extends instruction_ge Line 777  class instruction extends instruction_ge
777                  $this->valF['autorite_competente']=$row['autorite_competente'];                  $this->valF['autorite_competente']=$row['autorite_competente'];
778              }              }
779              // Récupération de la valeur de la lettre type              // Récupération de la valeur de la lettre type
780              // 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  
             }  
781          }          }
782          // 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
783          $sql = "SELECT * FROM ".DB_PREFIXE."dossier          $sql = "SELECT * FROM ".DB_PREFIXE."dossier
# Line 810  class instruction extends instruction_ge Line 816  class instruction extends instruction_ge
816      // Test si une restriction est valide      // Test si une restriction est valide
817      // return boolean      // return boolean
818      function restrictionIsValid($restriction){      function restrictionIsValid($restriction){
819            if($this->restriction_valid != null) {
820                return $this->restriction_valid;
821            }
822          // Liste des opérateurs possible          // Liste des opérateurs possible
823          $operateurs = array(">=", "<=", "+", "-");          $operateurs = array(">=", "<=", "+", "-");
824          // Liste des opérateurs avec espace          // Liste des opérateurs avec espace
# Line 924  class instruction extends instruction_ge Line 932  class instruction extends instruction_ge
932      }      }
933    
934      /**      /**
935         * Permet de définir si l'événement passé en paramètre est un événement retour.
936         * @param integer $evenement événement à tester
937         *
938         * @return boolean retourne true si événement retour sinon false
939         */
940        function is_evenement_retour($evenement) {
941            if(empty($evenement) || !is_numeric($evenement)) {
942                return "";
943            }
944            $sql = "SELECT retour
945                FROM ".DB_PREFIXE."evenement
946                WHERE evenement = ".$evenement;
947            $retour = $this->db->getOne($sql);
948            $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);
949            if (database::isError($retour)) {
950                die($retour->getMessage());
951            }
952            if ($retour == 't') {
953                return true;
954            } else {
955                return false;
956            }
957        }
958    
959        /**
960         * Retourne le champ restriction de l'événement passé en paramètre.
961         *
962         * @param integer $evenement id de l'événement sur lequel récupérer la restriction
963         *
964         * @return string             contenu du champ restriction
965         */
966        function get_restriction($evenement) {
967            if(empty($evenement) || !is_numeric($evenement)) {
968                return "";
969            }
970            //Récupère la restriction
971            $sql= "SELECT
972                      restriction
973                  FROM
974                      ".DB_PREFIXE."evenement
975                  WHERE
976                      evenement =".$evenement;
977    
978            $restriction = $this->db->getOne($sql);
979            $this->addToLog("verifier(): db->query(\"".$sql."\");", VERBOSE_MODE);
980            if (database::isError($restriction)) {
981                die($restriction->getMessage());
982            }        
983            return $restriction;
984        }
985    
986        /**
987       * Récupère la valeur du champ dans la restriction       * Récupère la valeur du champ dans la restriction
988       * @param  string   $restrictionValue   Nom du champ       * @param  string   $restrictionValue   Nom du champ
989       * @return mixed                        Valeur du champ       * @return mixed                        Valeur du champ
# Line 1235  class instruction extends instruction_ge Line 1295  class instruction extends instruction_ge
1295                      $msgenque = new MessageEnqueuer();                      $msgenque = new MessageEnqueuer();
1296                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
1297                      $msgenque->setDecision($evenement_libelle);                      $msgenque->setDecision($evenement_libelle);
1298                      $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);                      $return = $msgenque->enqueueMessage($msgenque::$ERP_ARRETE_PC_EFFECTUE);
1299                        //Si une erreur s'est produite on arrête le traitement et on
1300                        //retourne une erreur
1301                        if ($return !== 0){
1302                            
1303                            $this->addToMessage(_("Une erreur s'est produite lors de ".
1304                                "l'envoi du message au referentiel ERP. Merci de ".
1305                                "contacter votre administrateur"));
1306                            //On ne valide pas le formulaire
1307                            $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1308                            $this->correct = false;
1309                            return false;
1310                        }
1311                        else {
1312                            $this->addToMessage(_("Le message a ete transmis au ".
1313                                "referentiel ERP."));
1314                        }
1315                  }                  }
1316                  if ($this->valF['evenement'] ==                  if ($this->valF['evenement'] ==
1317                          $this->f->getParameter('erp_evenement_refuser_dossier')) {                          $this->f->getParameter('erp_evenement_refuser_dossier')) {
1318                      $msgenque = new MessageEnqueuer();                      $msgenque = new MessageEnqueuer();
1319                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);                      $msgenque->setDossierInstructionIdentifier($this->valF['dossier']);
1320                      $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);                                      $return = $msgenque->enqueueMessage($msgenque::$ERP_DECISION_CONFORMITE_EFFECTUE);
1321                        //Si une erreur s'est produite on arrête le traitement et on
1322                        //retourne une erreur
1323                        if ($return !== 0){
1324                            
1325                            $this->addToMessage(_("Une erreur s'est produite lors de ".
1326                                "l'envoi du message au referentiel ERP. Merci de ".
1327                                "contacter votre administrateur"));
1328                            //On ne valide pas le formulaire
1329                            $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1330                            $this->correct = false;
1331                            return false;
1332                        }
1333                        else {
1334                            $this->addToMessage(_("Le message a ete transmis au ".
1335                                "referentiel ERP."));
1336                        }                
1337                  }                  }
1338              }              }
1339          } // fin de if ($this->f->getParameter('option_erp') != "")          } // fin de if ($this->f->getParameter('option_erp') != "")
# Line 1249  class instruction extends instruction_ge Line 1341  class instruction extends instruction_ge
1341          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1342          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1343          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);
1344          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1345                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1346                $this->correct = false;
1347                return false;
1348            }
1349      }          }    
1350    
1351      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id,&$db,$val,$DEBUG) {
# Line 1325  class instruction extends instruction_ge Line 1421  class instruction extends instruction_ge
1421              $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')."]");
1422          }          }
1423    
1424          // Récupération de tous les paramètres de l'événement sélectionné          $restriction = $this->get_restriction($val['evenement']);
1425          $sql = "SELECT * FROM ".DB_PREFIXE."evenement          $this->restriction_valid = $this->restrictionIsValid($restriction);
1426          WHERE evenement=".$this->valF['evenement'];  
1427          $res = $db->query($sql);          if($restriction == "" || $this->restriction_valid ){
1428          $this->addToLog("triggermodifierapres(): db->query(\"".$sql."\");", VERBOSE_MODE);              // Récupération de tous les paramètres de l'événement sélectionné
1429          if (database::isError($res)) {              $sql = "SELECT * FROM ".DB_PREFIXE."evenement
1430              die($res->getMessage());              WHERE evenement=".$this->valF['evenement'];
1431          }              $res = $db->query($sql);
1432          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {              $this->addToLog("triggermodifierapres(): db->query(\"".$sql."\");", VERBOSE_MODE);
1433              // Si la date de retour signature est éditée on vérifie si il existe un événement automatique              if (database::isError($res)) {
1434              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);  
1435              }              }
1436                while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
1437                    // Si la date de retour signature est éditée on vérifie si il existe un événement automatique
1438                    if ($this->getVal('date_retour_signature') == "" AND
1439                        $this->valF['date_retour_signature'] != "" AND
1440                        $row['evenement_retour_signature'] != "") {
1441                        $new_instruction = new instruction("]", $db, $DEBUG);
1442                        // Création d'un tableau avec la liste des champs de l'instruction
1443                        foreach($new_instruction->champs as $champ) {
1444                            $valNewInstr[$champ] = "";
1445                        }
1446                        // Définition des valeurs de la nouvelle instruction
1447                        $valNewInstr["evenement"] = $row['evenement_retour_signature'];
1448                        $valNewInstr["destinataire"] = $this->valF['destinataire'];
1449                        $valNewInstr["dossier"] = $this->valF['dossier'];
1450                        $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_signature']);
1451                        $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);
1452                        $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);
1453                        $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);
1454                        $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);
1455                        $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);
1456                        $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);
1457                        $retour = $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
1458                        
1459                        //Si une erreur s'est produite et qu'il s'agit d'un problème
1460                        //de restriction
1461                        if ($retour == false && !$new_instruction->restriction_valid){
1462                            $this->msg .= $new_instruction->msg;
1463                            $this->addToLog("triggermodifierapres() : evenement retour ".
1464                                "instruction ".$this->valF[$this->clePrimaire]." : ".
1465                                $new_instruction->msg);
1466                        }
1467                        //Si une erreur s'est produite après le test de la restriction
1468                        elseif ($retour == false && $new_instruction->restriction_valid){
1469                            $this->correct = false ;
1470                            $this->msg .= $new_instruction->msg;
1471                            return false;
1472                        }
1473                    }
1474                    // Si la date de retour AR est éditée on vérifie si il existe un événement automatique
1475                    if ($this->getVal('date_retour_rar') == "" AND
1476                        $this->valF['date_retour_rar'] != "" AND
1477                        $row['evenement_retour_ar'] != "" ) {
1478                        $new_instruction = new instruction("]", $db, $DEBUG);
1479                        // Création d'un tableau avec la liste des champs de l'instruction
1480                        foreach($new_instruction->champs as $champ) {
1481                            $valNewInstr[$champ] = "";
1482                        }
1483                        // Définition des valeurs de la nouvelle instruction
1484                        $valNewInstr["evenement"] = $row['evenement_retour_ar'];
1485                        $valNewInstr["destinataire"] = $this->valF['destinataire'];
1486                        $valNewInstr["dossier"] = $this->valF['dossier'];
1487                        $valNewInstr["date_evenement"] = $this->f->formatDate($this->valF['date_retour_rar']);
1488                        $valNewInstr["date_envoi_signature"] = $this->f->formatDate($this->valF['date_envoi_signature']);
1489                        $valNewInstr["date_retour_signature"] = $this->f->formatDate($this->valF['date_retour_signature']);
1490                        $valNewInstr["date_envoi_rar"] = $this->f->formatDate($this->valF['date_envoi_rar']);
1491                        $valNewInstr["date_retour_rar"] = $this->f->formatDate($this->valF['date_retour_rar']);
1492                        $valNewInstr["date_envoi_controle_legalite"] = $this->f->formatDate($this->valF['date_envoi_controle_legalite']);
1493                        $valNewInstr["date_retour_controle_legalite"] = $this->f->formatDate($this->valF['date_retour_controle_legalite']);
1494                        $retour = $new_instruction->ajouter($valNewInstr,$db, $DEBUG);
1495                        
1496                                            //Si une erreur s'est produite et qu'il s'agit d'un problème
1497                        //de restriction
1498                        if ($retour == false && !$new_instruction->restriction_valid){
1499                            $this->msg .= $new_instruction->msg;
1500                            $this->addToLog("triggermodifierapres() : evenement retour ".
1501                                "instruction ".$this->valF[$this->clePrimaire]." : ".
1502                                $new_instruction->msg);
1503                        }
1504                        //Si une erreur s'est produite après le test de la restriction
1505                        elseif ($retour == false && $new_instruction->restriction_valid){
1506                            $this->correct = false ;
1507                            $this->msg .= $new_instruction->msg;
1508                            return false;
1509                        }
1510                    }
1511                }
1512            }
1513    
1514            //Récupération du type de l'événement
1515            $sql = "SELECT type
1516            FROM ".DB_PREFIXE."evenement
1517            WHERE evenement=".$this->valF['evenement'];
1518            $type_evmt = $db->getOne($sql);
1519            $this->addToLog("triggermodifierapres(): db->getone(\"".$sql."\");", VERBOSE_MODE);
1520            if (database::isError($type_evmt)) {
1521                die($type_evmt->getMessage());
1522          }          }
1523    
1524          /**          /**
# Line 1385  class instruction extends instruction_ge Line 1526  class instruction extends instruction_ge
1526           */           */
1527          // 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
1528          // arrêté          // arrêté
1529            
1530          if ($this->f->getParameter('option_referentiel_arrete') != "" AND          if ($this->f->getParameter('option_referentiel_arrete') != "" AND
1531              $type_evmt == "arrete") {              $type_evmt == "arrete") {
1532              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 1581  class instruction extends instruction_ge
1581            
1582                  $rowArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);                  $rowArrete = $resArrete->fetchRow(DB_FETCHMODE_ASSOC);
1583                  $msgenque->setArreteInfo($rowArrete);                  $msgenque->setArreteInfo($rowArrete);
1584                  $msgenque->enqueueMessage($msgenque::$ARRETE_ENVOI);                                  $return = $msgenque->enqueueMessage($msgenque::$ARRETE_ENVOI);
1585                    //Si une erreur s'est produite on arrête le traitement et on
1586                    //retourne une erreur
1587                    if ($return !== 0){
1588                        
1589                        //On supprime les messages précédents
1590                        $this->msg = '';
1591                        $this->addToMessage(_("Une erreur s'est produite lors de ".
1592                            "l'envoi du message au referentiel arrêté. Merci de ".
1593                            "contacter votre administrateur."));
1594                        //On ne valide pas le formulaire
1595                        $this->addToMessage("<br/>"._("SAISIE NON ENREGISTREE")."<br/>");
1596                        $this->correct = false;
1597                        return false;
1598                    }
1599                    else {
1600                        $this->addToMessage(_("Le message a ete transmis au ".
1601                            "referentiel arrêté."));
1602                    }
1603              }              }
1604          }          }
1605    
1606          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1607          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1608          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);
1609          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1610                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1611                $this->correct = false;
1612                return false;
1613            }
1614      }      }
1615    
1616      function triggersupprimer($id,&$db,$val,$DEBUG) {      function triggersupprimer($id,&$db,$val,$DEBUG) {
# Line 1572  class instruction extends instruction_ge Line 1736  class instruction extends instruction_ge
1736          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
1737          require_once "../obj/dossier_autorisation.class.php";          require_once "../obj/dossier_autorisation.class.php";
1738          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($val["dossier"]), $this->db, DEBUG);          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($val["dossier"]), $this->db, DEBUG);
1739          $da->majDossierAutorisation();          if($da->majDossierAutorisation() === false) {
1740                $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
1741                $this->correct = false;
1742                return false;
1743            }
1744      }      }
1745    
1746      // Vérifie la restriction sur l'événement      // Vérifie la restriction sur l'événement
# Line 1580  class instruction extends instruction_ge Line 1748  class instruction extends instruction_ge
1748          parent::verifier($val, $db, $DEBUG);          parent::verifier($val, $db, $DEBUG);
1749    
1750          if ( isset($val['evenement']) && is_numeric($val['evenement'])){          if ( isset($val['evenement']) && is_numeric($val['evenement'])){
1751              //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);  
1752            
1753              //Test qu'une restriction est présente              //Test qu'une restriction est présente
1754              if ( isset($row['restriction']) && $row['restriction'] != "" ){              if ($restriction != "" ){
   
                 $restriction = $row['restriction'];  
1755                                    
1756                  //Test si la restriction est valide                  //Test si la restriction est valide
1757                  if ( !$this->restrictionIsValid($restriction) ){                  $this->restriction_valid = $this->restrictionIsValid($restriction);
1758                    if ( !$this->restriction_valid ){
1759                                            
                     $this->correct=false;  
1760                      $this->addToMessage(_("Restriction non valide"));                      $this->addToMessage(_("Restriction non valide"));
1761                  }                      $this->correct = false;
1762                  else {                      return false;
                       
                     $this->correct = true;  
1763                  }                  }
1764    
1765                  // Liste des opérateurs possible                  // Liste des opérateurs possible
# Line 1763  class instruction extends instruction_ge Line 1914  class instruction extends instruction_ge
1914                  return -1;                  return -1;
1915              }              }
1916          }          }
   
1917          //Mise à jour des données          //Mise à jour des données
1918          if ( $uid != '' && $uid != 'OP_FAILURE' ){          if ( $uid != '' && $uid != 'OP_FAILURE' ){
1919              // Logger              // Logger

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26