/[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 6565 by softime, Fri Apr 21 16:14:15 2017 UTC revision 8329 by softime, Wed Nov 14 11:20:57 2018 UTC
# Line 1  Line 1 
1  <?php  <?php
2  /**  /**
3     * DBFORM - 'instruction' - Surcharge gen.
4     *
5   * specific :   * specific :
6   * - cle secondaire   * - cle secondaire
7   *   destruction autorisée que pour le dernier evenement   *   destruction autorisée que pour le dernier evenement
# Line 12  Line 14 
14   * - function mois_date : pour ajouter des mois a une date   * - function mois_date : pour ajouter des mois a une date
15   *   [add months (delay) and calculation final date]   *   [add months (delay) and calculation final date]
16   * - voir script_lang.js : bible ...   * - voir script_lang.js : bible ...
17   *   *
18   * @package openfoncier   * @package openfoncier
19   * @version SVN : $Id$   * @version SVN : $Id$
20   */   */
# Line 88  class instruction extends instruction_ge Line 90  class instruction extends instruction_ge
90          ),          ),
91      );      );
92    
     function __construct($id, &$db, $debug) {  
         $this->constructeur($id, $db, $debug);  
     }  
   
93      // {{{ Gestion de la confidentialité des données spécifiques      // {{{ Gestion de la confidentialité des données spécifiques
94            
95      /**      /**
# Line 290  class instruction extends instruction_ge Line 288  class instruction extends instruction_ge
288              "view" => "view_generate_suivi_bordereaux",              "view" => "view_generate_suivi_bordereaux",
289              "permission_suffix" => "consulter",              "permission_suffix" => "consulter",
290          );          );
291    
292            // ACTION - 777 - pdf_temp
293            // Crée un PDF temporaire et affiche son contenu en base64
294            $this->class_actions[777] = array(
295                "identifier" => "pdf_temp",
296                "view" => "view_pdf_temp",
297                "permission_suffix" => "modifier",
298                "condition" => array("can_user_access_dossier_contexte_modification"),
299            );
300      }      }
301    
302    
# Line 395  class instruction extends instruction_ge Line 402  class instruction extends instruction_ge
402    
403          //          //
404          $form->setType('created_by_commune','hidden');          $form->setType('created_by_commune','hidden');
405            $form->setType('om_fichier_instruction_dossier_final','hidden');
406          //          //
407          // gestion du champ "finalisé par"          // gestion du champ "finalisé par"
408          if ($this->getVal("om_final_instruction") == 't') {          if ($this->getVal("om_final_instruction") == 't') {
# Line 415  class instruction extends instruction_ge Line 423  class instruction extends instruction_ge
423              $form->setType('bible2', 'httpclick');              $form->setType('bible2', 'httpclick');
424              $form->setType('bible3', 'httpclick');              $form->setType('bible3', 'httpclick');
425              $form->setType('bible4', 'httpclick');              $form->setType('bible4', 'httpclick');
426              $form->setType('dossier', 'hidden');                $form->setType('btn_refresh', 'hidden');
427                $form->setType('live_preview', 'hidden');
428                $form->setType('dossier', 'hidden');
429              $form->setType('libelle', 'hiddenstatic');              $form->setType('libelle', 'hiddenstatic');
430              $form->setType('signataire_arrete','select');              $form->setType('signataire_arrete','select');
431              $form->setType('date_envoi_signature','datedisabled');              $form->setType('date_envoi_signature','datedisabled');
# Line 436  class instruction extends instruction_ge Line 446  class instruction extends instruction_ge
446                  $form->setType('evenement', 'selecthiddenstatic');                  $form->setType('evenement', 'selecthiddenstatic');
447                  //$form->setType('date_evenement', 'hiddenstaticdate');                  //$form->setType('date_evenement', 'hiddenstaticdate');
448                  $form->setType('date_evenement', 'date2');                  $form->setType('date_evenement', 'date2');
449    
450                    // Récupère la collectivité du dossier d'instruction
451                    $collectivite_di = $this->get_dossier_instruction_om_collectivite();
452    
453                    //
454                    if ($this->f->is_option_preview_pdf_enabled($collectivite_di) === true
455                        && $this->has_an_edition() === true) {
456                        $form->setType('btn_refresh', 'httpclick');
457                        $form->setType('live_preview', 'pdf');
458                    }
459                  // necessaire pour calcul de date en modification                  // necessaire pour calcul de date en modification
460                  //$form->setType('delai', 'hiddenstatic');                  //$form->setType('delai', 'hiddenstatic');
461                  // les administrateurs technique et fonctionnel peuvent                  // les administrateurs technique et fonctionnel peuvent
462                  // modifier tous les champs de date                  // modifier tous les champs de date
463                  // si l'instruction a déjà été finalisée au moins une fois                  // si l'instruction a déjà été finalisée au moins une fois
464                  if (($this->f->isAccredited(array(get_class($this), get_class($this)."modification_dates"), "OR")                  if (($this->f->isAccredited(array($this->get_absolute_class_name(), $this->get_absolute_class_name()."modification_dates"), "OR")
465                          || $this->f->isAccredited(array('instruction', 'instruction_modification_dates'), "OR"))                          || $this->f->isAccredited(array('instruction', 'instruction_modification_dates'), "OR"))
466                      && $this->getVal("date_finalisation_courrier") != '') {                      && $this->getVal("date_finalisation_courrier") != '') {
467                      $form->setType('date_envoi_signature', 'date');                      $form->setType('date_envoi_signature', 'date');
# Line 463  class instruction extends instruction_ge Line 483  class instruction extends instruction_ge
483                          $form->setType('bible2', 'hidden');                          $form->setType('bible2', 'hidden');
484                          $form->setType('bible3', 'hidden');                          $form->setType('bible3', 'hidden');
485                          $form->setType('bible4', 'hidden');                          $form->setType('bible4', 'hidden');
486                            $form->setType('live_preview', 'hidden');
487                          $form->setType('signataire_arrete','selecthiddenstatic');                          $form->setType('signataire_arrete','selecthiddenstatic');
488                          $form->setType('om_final_instruction_utilisateur', 'hiddenstatic');                          $form->setType('om_final_instruction_utilisateur', 'hiddenstatic');
489                      }                      }
# Line 475  class instruction extends instruction_ge Line 496  class instruction extends instruction_ge
496              $form->setType('bible2', 'hidden');              $form->setType('bible2', 'hidden');
497              $form->setType('bible3', 'hidden');              $form->setType('bible3', 'hidden');
498              $form->setType('bible4', 'hidden');              $form->setType('bible4', 'hidden');
499                $form->setType('btn_refresh', 'hidden');
500                $form->setType('live_preview', 'hidden');
501          }else {          }else {
502              $form->setType('destinataire', 'hidden');              $form->setType('destinataire', 'hidden');
503              $form->setType('dossier', 'hidden');              $form->setType('dossier', 'hidden');
# Line 483  class instruction extends instruction_ge Line 506  class instruction extends instruction_ge
506              $form->setType('bible2', 'hidden');              $form->setType('bible2', 'hidden');
507              $form->setType('bible3', 'hidden');              $form->setType('bible3', 'hidden');
508              $form->setType('bible4', 'hidden');              $form->setType('bible4', 'hidden');
509                $form->setType('btn_refresh', 'hidden');
510                $form->setType('live_preview', 'hidden');
511          }          }
512    
513          //Cache les champs pour la finalisation          //Cache les champs pour la finalisation
# Line 511  class instruction extends instruction_ge Line 536  class instruction extends instruction_ge
536          }          }
537      }      }
538    
539      function setSelect(&$form, $maj,&$db,$debug) {      function setSelect(&$form, $maj, &$db = null, $debug = null) {
540          /**          /**
541           * On ne surcharge pas la méthode parent car une requête sur la table           * On ne surcharge pas la méthode parent car une requête sur la table
542           * dossier est mauvaise pour les performances, car la requête qui           * dossier est mauvaise pour les performances, car la requête qui
# Line 557  class instruction extends instruction_ge Line 582  class instruction extends instruction_ge
582                  || $this->getParameter("retourformulaire") == "dossier_contentieux_mes_recours"                  || $this->getParameter("retourformulaire") == "dossier_contentieux_mes_recours"
583                  || $this->getParameter("retourformulaire") == "dossier_contentieux_tous_recours") {                  || $this->getParameter("retourformulaire") == "dossier_contentieux_tous_recours") {
584              // on recupère les signataires de la multicollectivité et de celle du DI              // on recupère les signataires de la multicollectivité et de celle du DI
585              require_once "../obj/dossier_instruction.class.php";              $di = $this->f->get_inst__om_dbform(array(
586              $di = new dossier_instruction($this->getParameter('idxformulaire'), $db, $debug);                  "obj" => "dossier_instruction",
587                    "idx" => $this->getParameter('idxformulaire'),
588                ));
589              $sql_signataire_arrete_by_di = str_replace('<collectivite_di>', $di->getVal("om_collectivite"), $sql_signataire_arrete_by_di);              $sql_signataire_arrete_by_di = str_replace('<collectivite_di>', $di->getVal("om_collectivite"), $sql_signataire_arrete_by_di);
590              $this->init_select($form, $db, $maj, $debug, "signataire_arrete",              $this->init_select($form, $db, $maj, $debug, "signataire_arrete",
591                  $sql_signataire_arrete_by_di, $sql_signataire_arrete_by_id, true);                  $sql_signataire_arrete_by_di, $sql_signataire_arrete_by_id, true);
# Line 649  class instruction extends instruction_ge Line 676  class instruction extends instruction_ge
676          // lien bible4          // lien bible4
677          $contenu = array(_("bible"));          $contenu = array(_("bible"));
678          $form->setSelect("bible4",$contenu);          $form->setSelect("bible4",$contenu);
679    
680            if ($maj == 1) {
681                $base64 = $this->init_pdf_temp();
682                $form->setSelect('live_preview', array('base64'=>$base64));
683                $form->setSelect("btn_refresh", array(_('Actualiser')));
684            }
685      }      }
686    
687      function cleSecondaire($id, &$db, $val, $DEBUG) {      function cleSecondaire($id, &$db = null, $val = array(), $DEBUG = null) {
688          //          //
689          parent::cleSecondaire($id, $db, $val, $DEBUG);          parent::cleSecondaire($id, $db, $val, $DEBUG);
690                    
# Line 689  class instruction extends instruction_ge Line 722  class instruction extends instruction_ge
722    
723              //Si c'est un événement d'instruction lié à une demande              //Si c'est un événement d'instruction lié à une demande
724              if ($res != null || $res != ""){              if ($res != null || $res != ""){
725                                    $demande = $this->f->get_inst__om_dbform(array(
726                  require_once "../obj/demande.class.php";                      "obj" => "demande",
727                  $demande = new demande($res, $this->db, DEBUG);                      "idx" => $res,
728                    ));
729    
730                  //On met à jour la demande en supprimant la liaison vers                  //On met à jour la demande en supprimant la liaison vers
731                  //l'événement d'instruction                  //l'événement d'instruction
# Line 767  class instruction extends instruction_ge Line 801  class instruction extends instruction_ge
801      }      }
802    
803      /*Met des valeurs par défaut dans certains des sous-formulaire*/      /*Met des valeurs par défaut dans certains des sous-formulaire*/
804      function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){      function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$db = null, $DEBUG = null) {
805    
806          //          //
807          $this->retourformulaire=$retourformulaire;          $this->retourformulaire=$retourformulaire;
# Line 808  class instruction extends instruction_ge Line 842  class instruction extends instruction_ge
842                  || $this->getParameter("retourformulaire") == "dossier_contentieux_mes_recours"                  || $this->getParameter("retourformulaire") == "dossier_contentieux_mes_recours"
843                  || $this->getParameter("retourformulaire") == "dossier_contentieux_tous_recours") {                  || $this->getParameter("retourformulaire") == "dossier_contentieux_tous_recours") {
844                  // on recupère les signataires de la multicollectivité et de celle du DI                  // on recupère les signataires de la multicollectivité et de celle du DI
845                  require_once "../obj/dossier_instruction.class.php";                  $di = $this->f->get_inst__om_dbform(array(
846                  $di = new dossier_instruction($this->getParameter('idxformulaire'), $db, DEBUG);                      "obj" => "dossier_instruction",
847                        "idx" => $this->getParameter('idxformulaire'),
848                    ));
849                  $sql = str_replace('<collectivite_di>', $di->getVal("om_collectivite"), $sql_signataire_arrete_defaut_by_di);                  $sql = str_replace('<collectivite_di>', $di->getVal("om_collectivite"), $sql_signataire_arrete_defaut_by_di);
850              } else {              } else {
851                  $sql = $sql_signataire_arrete_defaut;                  $sql = $sql_signataire_arrete_defaut;
# Line 839  class instruction extends instruction_ge Line 875  class instruction extends instruction_ge
875              $form->setVal("bible3","bible(3)");              $form->setVal("bible3","bible(3)");
876              $form->setVal("bible4","bible(4)");              $form->setVal("bible4","bible(4)");
877          }          }
878    
879            // Récupère la collectivité du dossier d'instruction
880            $collectivite_di = $this->get_dossier_instruction_om_collectivite();
881    
882            // Modification
883            if ($maj == 1 && $this->f->is_option_preview_pdf_enabled($collectivite_di) === true
884                && $this->has_an_edition() === true) {
885                $form->setVal("live_preview",$this->getVal($this->clePrimaire));
886                $form->setVal("btn_refresh","reload_pdf_viewer()");
887            }
888      }      }
889    
890    
# Line 864  class instruction extends instruction_ge Line 910  class instruction extends instruction_ge
910                            
911              $form->setBloc('date_retour_controle_legalite','F');              $form->setBloc('date_retour_controle_legalite','F');
912    
913              $form->setBloc('complement_om_html','D',"","col_12");              if ($maj == 1) {
914              $form->setFieldset('complement_om_html','D',_('Complement'));                  // Récupère la collectivité du dossier d'instruction
915              $form->setFieldset('bible','F','');                  $collectivite_di = $this->get_dossier_instruction_om_collectivite();
916              $form->setBloc('bible','F');  
917                    //
918              $form->setBloc('complement2_om_html','D',"","col_12");                  if ($this->f->is_option_preview_pdf_enabled($collectivite_di) === true
919              $form->setFieldset('complement2_om_html','D',_('Complement 2'));                      && $this->has_an_edition() === true) {
920              $form->setFieldset('bible2','F','');                      $form->setBloc('complement_om_html','D',"","col_12 container_preview_pdf");
921              $form->setBloc('bible2','F');                      $form->setBloc('complement_om_html','D',"","col_6 hidelabel");
922                                    $form->setFieldset('complement_om_html','D',_('Complement'));
923              $form->setBloc('complement3_om_html','D',"","col_12");                      $form->setFieldset('bible','F','');
924              $form->setFieldset('complement3_om_html','D',_('Complement 3'));                      $form->setFieldset('complement2_om_html','D',_('Complement 2'));
925              $form->setFieldset('bible3','F','');                      $form->setFieldset('bible2','F','');
926              $form->setBloc('bible3','F');                      $form->setFieldset('complement3_om_html','D',_('Complement 3'));
927                                    $form->setFieldset('bible3','F','');
928              $form->setBloc('complement4_om_html','D',"","col_12");                      $form->setFieldset('complement4_om_html','D',_('Complement 4'));
929              $form->setFieldset('complement4_om_html','D',_('Complement 4'));                      $form->setFieldset('bible4','F','');
930              $form->setFieldset('bible4','F','');                      $form->setBloc('bible4','F');
931              $form->setBloc('bible4','F');                      $form->setBloc('btn_refresh','D',"","col_6 hidelabel");
932                        $form->setFieldset('btn_refresh','D',_('Prévisualisation'));
933                        $form->setFieldset('live_preview','F');
934                        $form->setBloc('live_preview','F');
935                        $form->setBloc('live_preview','F');
936                    } else {
937                        $form->setBloc('complement_om_html','D',"","col_12 hidelabel");
938                        $form->setFieldset('complement_om_html','D',_('Complement'));
939                        $form->setFieldset('bible','F','');
940                        $form->setFieldset('complement2_om_html','D',_('Complement 2'));
941                        $form->setFieldset('bible2','F','');
942                        $form->setFieldset('complement3_om_html','D',_('Complement 3'));
943                        $form->setFieldset('bible3','F','');
944                        $form->setFieldset('complement4_om_html','D',_('Complement 4'));
945                        $form->setFieldset('bible4','F','');
946                        $form->setBloc('bible4','F');
947                    }
948                } else {
949                    $form->setBloc('complement_om_html','D',"","col_12 hidelabel");
950                    $form->setFieldset('complement_om_html','D',_('Complement'));
951                    $form->setFieldset('bible','F','');
952                    $form->setFieldset('complement2_om_html','D',_('Complement 2'));
953                    $form->setFieldset('bible2','F','');
954                    $form->setFieldset('complement3_om_html','D',_('Complement 3'));
955                    $form->setFieldset('bible3','F','');
956                    $form->setFieldset('complement4_om_html','D',_('Complement 4'));
957                    $form->setFieldset('bible4','F','');
958                    $form->setBloc('bible4','F');
959                }
960          }          }
961      }      }
962            
# Line 895  class instruction extends instruction_ge Line 969  class instruction extends instruction_ge
969          $form->setLib('bible2', "");          $form->setLib('bible2', "");
970          $form->setLib('bible3', "");          $form->setLib('bible3', "");
971          $form->setLib('bible4', "");          $form->setLib('bible4', "");
972            $form->setLib('btn_refresh', "");
973            $form->setLib('live_preview', "");
974          $form->setLib('om_final_instruction_utilisateur', _("finalise par"));          $form->setLib('om_final_instruction_utilisateur', _("finalise par"));
975      }      }
976    
977      function triggerajouter($id, &$db, $val, $DEBUG) {      function triggerajouter($id, &$db = null, $val = array(), $DEBUG = null) {
978          /**          /**
979           * Le code suivant permet de récupérer des valeurs des tables evenement           * Le code suivant permet de récupérer des valeurs des tables evenement
980           * et dossier pour les stocker dans l'instruction :           * et dossier pour les stocker dans l'instruction :
# Line 1477  class instruction extends instruction_ge Line 1553  class instruction extends instruction_ge
1553                  $donnees_techniques = $this->getDonneesTechniques();                  $donnees_techniques = $this->getDonneesTechniques();
1554              }              }
1555              //              //
1556              require_once "../obj/donnees_techniques.class.php";              $this->inst_donnees_techniques = $this->f->get_inst__om_dbform(array(
1557              $this->inst_donnees_techniques = new donnees_techniques($donnees_techniques);                  "obj" => "donnees_techniques",
1558                    "idx" => $donnees_techniques,
1559                ));
1560          }          }
1561          //          //
1562          return $this->inst_donnees_techniques;          return $this->inst_donnees_techniques;
# Line 1516  class instruction extends instruction_ge Line 1594  class instruction extends instruction_ge
1594       *       *
1595       * @return boolean       * @return boolean
1596       */       */
1597      function triggerajouterapres($id, &$db, $val, $DEBUG) {      function triggerajouterapres($id, &$db = null, $val = array(), $DEBUG = null) {
1598    
1599          // On a besoin de l'instance du dossier lié à l'événement d'instruction          // On a besoin de l'instance du dossier lié à l'événement d'instruction
1600          $inst_di = $this->get_inst_dossier($this->valF['dossier']);          $inst_di = $this->get_inst_dossier($this->valF['dossier']);
# Line 1756  class instruction extends instruction_ge Line 1834  class instruction extends instruction_ge
1834          }          }
1835    
1836          /**          /**
1837             * Finalisation automatique de l'instruction si le paramétrage de l'événement l'autorise
1838             */
1839            // Si la finalisation automatique de l'événement est activée
1840            // ET si l'instruction n'a pas déjà été finalisée
1841            // ET s'il existe une lettre type associée
1842            if ($inst_evenement->getVal('finaliser_automatiquement') === 't'
1843                && $inst_evenement->getVal('om_final_instruction') !== 't'
1844                && $inst_evenement->getVal('lettretype') !== ''
1845                && $inst_evenement->getVal('lettretype') !== null) {
1846    
1847                 // On instancie l'instruction
1848                $inst_instruction = $this->f->get_inst__om_dbform(array(
1849                    "obj" => "instruction",
1850                    "idx" => $this->valF[$this->clePrimaire],
1851                ));
1852    
1853                // On finalise l'instruction dans le contexte de finalisation : action 100
1854                $inst_instruction->setParameter('maj', 100);
1855                $finalize = $inst_instruction->finalize($inst_instruction->valF);
1856    
1857                // Une erreur de finalisation renvoie 'false' : ajout dans les logs
1858                // et dans le message d'erreur
1859                if ($finalize === false) {
1860                    $this->f->addToLog(__METHOD__."() : ERROR - Impossible de finaliser l'instruction.", DEBUG_MODE);
1861                    $this->addToMessage(_("Erreur lors de la finalisation de l'instruction. Contactez votre administrateur."));
1862                    return false;
1863                }
1864            }
1865    
1866            /**
1867             * Finalisation automatique des instructions tacites ou retours.
1868             */
1869            // Si l'option de finalisation automatique des instructions tacites ou
1870            // retours est activée et l'événement d'instruction a une lettre type
1871            // associée
1872            $collectivite_di = $this->get_dossier_instruction_om_collectivite($val['dossier']);
1873            if ($this->f->is_option_finalisation_auto_enabled($collectivite_di) === true
1874                && $inst_evenement->getVal('lettretype') !== ''
1875                && $inst_evenement->getVal('lettretype') !== null) {
1876    
1877                // Rècupère l'identifiant de l'événement
1878                $evenement_id = $inst_evenement->getVal($inst_evenement->clePrimaire);
1879    
1880                // Si l'événement d'instruction est identifié comme un événement
1881                // retour
1882                // OU l'événement d'instruction est l'événement suivant tacite du
1883                // dossier d'instruction (incomplétude prise en compte)
1884                // ET l'événement d'instruction n'a pas déjà été finalisé
1885                if (($inst_evenement->getVal("retour") === 't'
1886                    || ($inst_di->getVal('evenement_suivant_tacite_incompletude') === $evenement_id
1887                        || $inst_di->getVal('evenement_suivant_tacite') === $evenement_id))
1888                        && ($inst_evenement->getVal('om_final_instruction') !== 't')) {
1889    
1890                    // Finalise l'instruction
1891                    $inst_instruction = $this->f->get_inst__om_dbform(array(
1892                        "obj" => "instruction",
1893                        "idx" => $this->valF[$this->clePrimaire],
1894                    ));
1895                    $inst_instruction->setParameter('maj', 100);
1896                    $finalize = $inst_instruction->finalize($inst_instruction->valF);
1897                    if ($finalize === false) {
1898                        //
1899                        return false;
1900                    }
1901                }
1902            }
1903    
1904            /**
1905             * Mise à jour de la date de dernière modification du dossier
1906             */
1907            $inst_di->update_last_modification_date();
1908    
1909            /**
1910           * Historisation de la vie du DI.           * Historisation de la vie du DI.
1911           */           */
1912          //          //
1913          return $this->add_log_to_dossier($id, array_merge($val, $this->valF));          return $this->add_log_to_dossier($id, array_merge($val, $this->valF));
1914      }      }
1915    
1916      function triggermodifierapres($id,&$db,$val,$DEBUG) {      function triggermodifierapres($id, &$db = null, $val = array(), $DEBUG = null) {
1917          /**          /**
1918           * L'objectif ici est d'effectuer les recalculs de date dans le dossier           * L'objectif ici est d'effectuer les recalculs de date dans le dossier
1919           * si la date de l'evenement est modifiee           * si la date de l'evenement est modifiee
# Line 1903  class instruction extends instruction_ge Line 2054  class instruction extends instruction_ge
2054                  if ($this->getVal('date_retour_signature') == "" AND                  if ($this->getVal('date_retour_signature') == "" AND
2055                      $this->valF['date_retour_signature'] != "" AND                      $this->valF['date_retour_signature'] != "" AND
2056                      $row['evenement_retour_signature'] != "") {                      $row['evenement_retour_signature'] != "") {
2057                      $new_instruction = new instruction("]", $db, $DEBUG);                      $new_instruction = $this->f->get_inst__om_dbform(array(
2058                            "obj" => "instruction",
2059                            "idx" => "]",
2060                        ));
2061                      // Création d'un tableau avec la liste des champs de l'instruction                      // Création d'un tableau avec la liste des champs de l'instruction
2062                      foreach($new_instruction->champs as $champ) {                      foreach($new_instruction->champs as $champ) {
2063                          $valNewInstr[$champ] = "";                          $valNewInstr[$champ] = "";
# Line 1945  class instruction extends instruction_ge Line 2099  class instruction extends instruction_ge
2099                      $this->valF['date_retour_rar'] != "") {                      $this->valF['date_retour_rar'] != "") {
2100                                            
2101                      if($row['evenement_retour_ar'] != "") {                      if($row['evenement_retour_ar'] != "") {
2102                          $new_instruction = new instruction("]", $db, $DEBUG);                          $new_instruction = $this->f->get_inst__om_dbform(array(
2103                                "obj" => "instruction",
2104                                "idx" => "]",
2105                            ));
2106                          // Création d'un tableau avec la liste des champs de l'instruction                          // Création d'un tableau avec la liste des champs de l'instruction
2107                          foreach($new_instruction->champs as $champ) {                          foreach($new_instruction->champs as $champ) {
2108                              $valNewInstr[$champ] = "";                              $valNewInstr[$champ] = "";
# Line 2012  class instruction extends instruction_ge Line 2169  class instruction extends instruction_ge
2169          }          }
2170    
2171          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
2172          require_once "../obj/dossier_autorisation.class.php";          $da = $this->f->get_inst__om_dbform(array(
2173          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($this->valF['dossier']), $this->db, DEBUG);              "obj" => "dossier_autorisation",
2174                "idx" => $this->getNumDemandeAutorFromDossier($this->valF['dossier']),
2175            ));
2176          if($da->majDossierAutorisation() === false) {          if($da->majDossierAutorisation() === false) {
2177              $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));              $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
2178              $this->correct = false;              $this->correct = false;
2179              return false;              return false;
2180          }          }
2181    
2182            /**
2183             * Mise à jour de la date de dernière modification du dossier
2184             * d'instruction
2185             */
2186            $inst_di = $this->get_inst_dossier($this->getVal('dossier'));
2187            $inst_di->update_last_modification_date();
2188    
2189          return $this->add_log_to_dossier($id, $val);          return $this->add_log_to_dossier($id, $val);
2190      }      }
2191    
2192      function triggersupprimer($id,&$db,$val,$DEBUG) {      function triggersupprimer($id, &$db = null, $val = array(), $DEBUG = null) {
2193          /**          /**
2194           * L'objectif ici est de repositionner les valeurs récupérées en           * L'objectif ici est de repositionner les valeurs récupérées en
2195           * archive dans le dossier d'instruction avant de supprimer l'événement           * archive dans le dossier d'instruction avant de supprimer l'événement
# Line 2180  class instruction extends instruction_ge Line 2347  class instruction extends instruction_ge
2347          // Mise à jour de la demande si un récépissé d'instruction correspond à l'instruction à supprimer          // Mise à jour de la demande si un récépissé d'instruction correspond à l'instruction à supprimer
2348      }      }
2349    
2350      function triggersupprimerapres($id,&$db,$val,$DEBUG) {      function triggersupprimerapres($id, &$db = null, $val = array(), $DEBUG = null) {
   
2351          // Mise à jour des données du dossier d'autorisation          // Mise à jour des données du dossier d'autorisation
2352          require_once "../obj/dossier_autorisation.class.php";          $da = $this->f->get_inst__om_dbform(array(
2353          $da = new dossier_autorisation($this->getNumDemandeAutorFromDossier($val["dossier"]), $this->db, DEBUG);              "obj" => "dossier_autorisation",
2354                "idx" => $this->getNumDemandeAutorFromDossier($val["dossier"]),
2355            ));
2356          if($da->majDossierAutorisation() === false) {          if($da->majDossierAutorisation() === false) {
2357              $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));              $this->addToMessage(_("Erreur lors de la mise a jour des donnees du dossier d'autorisation. Contactez votre administrateur."));
2358              $this->correct = false;              $this->correct = false;
2359              return false;              return false;
2360          }          }
2361          $val['evenement'] = $this->getVal('evenement');          $val['evenement'] = $this->getVal('evenement');
2362    
2363            /**
2364             * Mise à jour de la date de dernière modification du dossier
2365             * d'instruction
2366             */
2367            $inst_di = $this->get_inst_dossier($this->getVal('dossier'));
2368            $inst_di->update_last_modification_date();
2369    
2370            //
2371          return $this->add_log_to_dossier($id, $val);          return $this->add_log_to_dossier($id, $val);
2372      }      }
2373    
# Line 2241  class instruction extends instruction_ge Line 2418  class instruction extends instruction_ge
2418       *       *
2419       * @return [type] [description]       * @return [type] [description]
2420       */       */
2421      function verifier($val = array(), &$db, $DEBUG) {      function verifier($val = array(), &$db = null, $DEBUG = null) {
2422          parent::verifier($val, $db, $DEBUG);          parent::verifier($val, $db, $DEBUG);
2423    
2424          if ( isset($val['evenement']) && is_numeric($val['evenement'])){          if ( isset($val['evenement']) && is_numeric($val['evenement'])){
# Line 3091  class instruction extends instruction_ge Line 3268  class instruction extends instruction_ge
3268          // Récupère la valeur du champ lettretype          // Récupère la valeur du champ lettretype
3269          $lettretype = $this->getVal("lettretype");          $lettretype = $this->getVal("lettretype");
3270          // Si le champ est vide          // Si le champ est vide
3271          if (empty($lettretype)) {          if ($lettretype !== '' && $lettretype !== null) {
3272              //              //
3273              return false;              return true;
3274          }          }
3275    
3276          //          //
3277          return true;          return false;
3278      }      }
3279    
3280      /**      /**
# Line 3109  class instruction extends instruction_ge Line 3286  class instruction extends instruction_ge
3286       */       */
3287      function is_editable() {      function is_editable() {
3288          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass
3289          $bypass = $this->f->isAccredited(get_class($this)."_modifier_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_modifier_bypass");
3290          //          //
3291          if ($bypass == true) {          if ($bypass == true) {
3292              //              //
# Line 3153  class instruction extends instruction_ge Line 3330  class instruction extends instruction_ge
3330      /**      /**
3331       * CONDITION - is_deletable.       * CONDITION - is_deletable.
3332       *       *
3333       * Condition pour lma modification.       * Condition pour la suppression.
3334       *       *
3335       * @return boolean       * @return boolean
3336       */       */
3337      function is_deletable() {      function is_deletable() {
3338          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass intégral
3339          $bypass = $this->f->isAccredited(get_class($this)."_supprimer_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_supprimer_bypass");
3340          //          //
3341          if ($bypass == true) {          if ($bypass == true) {
3342    
# Line 3168  class instruction extends instruction_ge Line 3345  class instruction extends instruction_ge
3345          }          }
3346    
3347          // Si l'utilisateur est un intructeur qui ne correspond pas à la          // Si l'utilisateur est un intructeur qui ne correspond pas à la
3348          // division du dossier          // division du dossier et si l'utilisateur n'a pas la permission bypass
3349          if ($this->is_instructeur_from_division_dossier() !== true) {          // de la division
3350            if ($this->is_instructeur_from_division_dossier() === false
3351                && $this->f->isAccredited($this->get_absolute_class_name()."_supprimer_bypass_division") === false) {
3352    
3353              //              //
3354              return false;              return false;
# Line 3178  class instruction extends instruction_ge Line 3357  class instruction extends instruction_ge
3357          // l'événement est-il le dernier ?          // l'événement est-il le dernier ?
3358          $dernier_evenement = false;          $dernier_evenement = false;
3359          // instanciation dossier          // instanciation dossier
3360          require_once "../obj/dossier.class.php";          $dossier = $this->f->get_inst__om_dbform(array(
3361          $dossier = new dossier($this->getVal('dossier'), $this->db, DEBUG);              "obj" => "dossier",
3362                "idx" => $this->getVal('dossier'),
3363            ));
3364          // récupération dernier événement          // récupération dernier événement
3365          $id_dernier_evenement = $dossier->get_dernier_evenement();          $id_dernier_evenement = $dossier->get_dernier_evenement();
3366          if ($id_dernier_evenement == $this->getVal($this->clePrimaire)) {          if ($id_dernier_evenement == $this->getVal($this->clePrimaire)) {
# Line 3230  class instruction extends instruction_ge Line 3411  class instruction extends instruction_ge
3411       */       */
3412      function is_addable() {      function is_addable() {
3413          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass
3414          $bypass = $this->f->isAccredited(get_class($this)."_ajouter_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_ajouter_bypass");
3415          //          //
3416          if ($bypass == true) {          if ($bypass == true) {
3417    
# Line 3258  class instruction extends instruction_ge Line 3439  class instruction extends instruction_ge
3439       */       */
3440      function is_finalizable() {      function is_finalizable() {
3441          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass
3442          $bypass = $this->f->isAccredited(get_class($this)."_finaliser_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_finaliser_bypass");
3443          //          //
3444          if ($bypass == true) {          if ($bypass == true) {
3445              //              //
# Line 3330  class instruction extends instruction_ge Line 3511  class instruction extends instruction_ge
3511       */       */
3512      function is_unfinalizable(){      function is_unfinalizable(){
3513          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass
3514          $bypass = $this->f->isAccredited(get_class($this)."_definaliser_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_definaliser_bypass");
3515          //          //
3516          if ($bypass == true) {          if ($bypass == true) {
3517              //              //
# Line 3483  class instruction extends instruction_ge Line 3664  class instruction extends instruction_ge
3664          }          }
3665    
3666          // Contrôle si l'utilisateur possède un bypass          // Contrôle si l'utilisateur possède un bypass
3667          $bypass = $this->f->isAccredited(get_class($this)."_modification_dates_bypass");          $bypass = $this->f->isAccredited($this->get_absolute_class_name()."_modification_dates_bypass");
3668          if ($bypass === true) {          if ($bypass === true) {
3669              return true;              return true;
3670          }          }
# Line 3610  class instruction extends instruction_ge Line 3791  class instruction extends instruction_ge
3791              && $this->getVal("om_final_instruction") != null) {              && $this->getVal("om_final_instruction") != null) {
3792    
3793              // Ouvre le document              // Ouvre le document
3794              $lien = '../spg/file.php?obj='.$this->table.'&'.              $lien = '../app/index.php?module=form&snippet=file&obj='.$this->table.'&'.
3795                      'champ=om_fichier_instruction&id='.$this->getVal($this->clePrimaire);                      'champ=om_fichier_instruction&id='.$this->getVal($this->clePrimaire);
3796              //              //
3797              header("Location: ".$lien);              header("Location: ".$lien);
# Line 3643  class instruction extends instruction_ge Line 3824  class instruction extends instruction_ge
3824      /**      /**
3825       * Récupère la collectivité du dossier d'instruction.       * Récupère la collectivité du dossier d'instruction.
3826       *       *
3827         * @param string $dossier_instruction_id Identifiant du DI.
3828         *
3829       * @return integer       * @return integer
3830       */       */
3831      function get_dossier_instruction_om_collectivite() {      function get_dossier_instruction_om_collectivite($dossier_instruction_id = null) {
3832    
3833            // Si l'identifiant n'est pas renseigné
3834            if ($dossier_instruction_id === null) {
3835                // Récupère la valeur en base de données
3836                $dossier_instruction_id = $this->getVal('dossier');
3837            }
3838    
3839          //          //
3840          require_once "../obj/dossier_instruction.class.php";          $dossier_instruction = $this->f->get_inst__om_dbform(array(
3841          $dossier_instruction = new dossier_instruction($this->getVal('dossier'), $this->f->db, false);              "obj" => "dossier_instruction",
3842                "idx" => $dossier_instruction_id,
3843            ));
3844    
3845          //          //
3846          return $dossier_instruction->getVal('om_collectivite');          return $dossier_instruction->getVal('om_collectivite');
# Line 3705  class instruction extends instruction_ge Line 3896  class instruction extends instruction_ge
3896          ($f->get_submitted_get_value("complement") ? $complement = $f->get_submitted_get_value("complement") : $complement = "1");          ($f->get_submitted_get_value("complement") ? $complement = $f->get_submitted_get_value("complement") : $complement = "1");
3897    
3898          // Récupération de la collectivité du dossier          // Récupération de la collectivité du dossier
3899          require_once "../obj/dossier.class.php";          $dossier = $this->f->get_inst__om_dbform(array(
3900          $dossier = new dossier($idx, $f->db, DEBUG);              "obj" => "dossier",
3901                "idx" => $idx,
3902            ));
3903    
3904          /**          /**
3905           *           *
# Line 3718  class instruction extends instruction_ge Line 3911  class instruction extends instruction_ge
3911              ON bible.dossier_autorisation_type=dossier_autorisation_type.dossier_autorisation_type              ON bible.dossier_autorisation_type=dossier_autorisation_type.dossier_autorisation_type
3912          LEFT JOIN ".DB_PREFIXE."om_collectivite          LEFT JOIN ".DB_PREFIXE."om_collectivite
3913              ON bible.om_collectivite = om_collectivite.om_collectivite              ON bible.om_collectivite = om_collectivite.om_collectivite
3914          WHERE evenement=".$evenement."          WHERE (evenement=".$evenement." OR evenement IS NULL)
3915              AND complement=".$complement."              AND complement=".$complement."
3916              AND (bible.dossier_autorisation_type IS NULL              AND (bible.dossier_autorisation_type IS NULL
3917                  OR dossier_autorisation_type.code ='".$code_da_type."')                  OR dossier_autorisation_type.code ='".$code_da_type."')
# Line 3855  class instruction extends instruction_ge Line 4048  class instruction extends instruction_ge
4048                      $temp=$temp." du ".$date_retour_f;                      $temp=$temp." du ".$date_retour_f;
4049                  }                  }
4050                  // Concaténation des retours d'avis de consultation                  // Concaténation des retours d'avis de consultation
4051                  $retour['complement_om_html'] .= $temp;                  $retour['complement_om_html'] .= $temp . "<br/><br/>";
4052              } // while              } // while
4053                            
4054          } // consultation          } // consultation
# Line 3874  class instruction extends instruction_ge Line 4067  class instruction extends instruction_ge
4067      }      }
4068    
4069      /**      /**
4070         * VIEW - view_pdf_temp
4071         *
4072         * @return void
4073         */
4074        function view_pdf_temp() {
4075            $this->checkAccessibility();
4076            $this->f->set_submitted_value();
4077            $merge_fields = array(
4078                '[complement_instruction]' => urldecode($_POST['c1']),
4079                '[complement1_instruction]' => urldecode($_POST['c1']),
4080                '[complement2_instruction]' => urldecode($_POST['c2']),
4081                '[complement3_instruction]' => urldecode($_POST['c3']),
4082                '[complement4_instruction]' => urldecode($_POST['c4']),
4083            );
4084            $params = array(
4085                "watermark" => true,
4086                "specific" => array(
4087                    "merge_fields" => $merge_fields,
4088                ),
4089            );
4090            $dossier_instruction_om_collectivite = $this->get_dossier_instruction_om_collectivite();
4091            $collectivite = $this->f->getCollectivite($dossier_instruction_om_collectivite);
4092            $result = $this->compute_pdf_output('lettretype', $this->getVal('lettretype'), $collectivite, null, $params);
4093            $retour = array(
4094                'base' => base64_encode($result['pdf_output']),
4095            );
4096            echo json_encode($retour);
4097        }
4098    
4099        /**
4100         * Dans le contexte de prévisualisation des éditions, génère le rendu du
4101         * PDF sans prise en compte de la valeur des compléments et le retourne en
4102         * base 64.
4103         *
4104         * @return string Rendu PDF converti en base 64.
4105         */
4106        function init_pdf_temp() {
4107            $params = array(
4108                "watermark" => true,
4109            );
4110            $dossier_instruction_om_collectivite = $this->get_dossier_instruction_om_collectivite();
4111            $collectivite = $this->f->getCollectivite($dossier_instruction_om_collectivite);
4112            $result = $this->compute_pdf_output('lettretype', $this->getVal('lettretype'), $collectivite, null, $params);
4113    
4114            return base64_encode($result['pdf_output']);
4115        }
4116    
4117        /**
4118       * Récupération des éléments de bible.       * Récupération des éléments de bible.
4119       *       *
4120       * @param utils   $f      handler de om_application       * @param utils   $f      handler de om_application
# Line 3885  class instruction extends instruction_ge Line 4126  class instruction extends instruction_ge
4126       */       */
4127      function getBible($f, $event, $idx, $compnb) {      function getBible($f, $event, $idx, $compnb) {
4128          // Récupération de la collectivité du dossier          // Récupération de la collectivité du dossier
4129          require_once "../obj/dossier.class.php";          $dossier = $this->f->get_inst__om_dbform(array(
4130          $dossier = new dossier($idx, $f->db, DEBUG);              "obj" => "dossier",
4131                "idx" => $idx,
4132            ));
4133          // Récupération du code du type de DA          // Récupération du code du type de DA
4134          $code_da_type = '';          $code_da_type = '';
4135          if (preg_match('/[A-Za-z]{2,3}/', $idx, $matches) !== false) {          if (preg_match('/[A-Za-z]{2,3}/', $idx, $matches) !== false) {
# Line 3900  class instruction extends instruction_ge Line 4143  class instruction extends instruction_ge
4143              LEFT JOIN              LEFT JOIN
4144                      ".DB_PREFIXE."om_collectivite                      ".DB_PREFIXE."om_collectivite
4145                      ON bible.om_collectivite = om_collectivite.om_collectivite                      ON bible.om_collectivite = om_collectivite.om_collectivite
4146              WHERE evenement =".$event." and              WHERE (evenement =".$event." or evenement IS NULL) and
4147                  complement=".$compnb." and                  complement=".$compnb." and
4148                  automatique='Oui' and                  automatique='Oui' and
4149                  (dossier_autorisation_type.code ='".$code_da_type."' or                  (dossier_autorisation_type.code ='".$code_da_type."' or
# Line 3915  class instruction extends instruction_ge Line 4158  class instruction extends instruction_ge
4158              $temp .= preg_replace(              $temp .= preg_replace(
4159                  '#(\\\r|\\\r\\\n|\\\n)#', '<br/>', $row['contenu']                  '#(\\\r|\\\r\\\n|\\\n)#', '<br/>', $row['contenu']
4160              );              );
4161                // Ajout d'un saut de ligne entre chaque bible.
4162                $temp .= '<br/>';
4163          } // fin while          } // fin while
4164          return $temp;          return $temp;
4165      }      }
# Line 3956  class instruction extends instruction_ge Line 4201  class instruction extends instruction_ge
4201                  $message_class = "error";                  $message_class = "error";
4202                  $message = _("Veuillez saisir une date valide.");                  $message = _("Veuillez saisir une date valide.");
4203              }              }
4204                // Sinon si les dates ne sont pas valides
4205                elseif ($f->get_submitted_post_value("bordereau") === "bordereau_avis_maire_prefet"
4206                    && $f->getParameter("id_evenement_bordereau_avis_maire_prefet") == null) {
4207                    // Si aucune date n'a été saisie
4208                    $message_class = "error";
4209                    $message = _("Erreur de parametrage. Contactez votre administrateur.");
4210                }
4211              // Affiche le message de validation              // Affiche le message de validation
4212              else {              else {
4213                  // On récupère le libellé du bordereau pour l'afficher à l'utilisateur                  // On récupère le libellé du bordereau pour l'afficher à l'utilisateur
# Line 3971  class instruction extends instruction_ge Line 4223  class instruction extends instruction_ge
4223                  $message .= " : <br/><br/>";                  $message .= " : <br/><br/>";
4224                  $message .= "<a class='om-prev-icon pdf-16'";                  $message .= "<a class='om-prev-icon pdf-16'";
4225                  $message .= " title=\""._("Bordereau")."\"";                  $message .= " title=\""._("Bordereau")."\"";
4226                  $message .= "href='../scr/form.php?obj=instruction";                  $message .= "href='".OM_ROUTE_FORM."&obj=instruction";
4227                  $message .= "&action=220";                  $message .= "&action=220";
4228                  $message .= "&idx=0";                  $message .= "&idx=0";
4229                  $message .= "&type_bordereau=".$f->get_submitted_post_value("bordereau");                  $message .= "&type_bordereau=".$f->get_submitted_post_value("bordereau");
# Line 3995  class instruction extends instruction_ge Line 4247  class instruction extends instruction_ge
4247          if (isset($message) && isset($message_class) && $message != "") {          if (isset($message) && isset($message_class) && $message != "") {
4248              $f->displayMessage($message_class, $message);              $f->displayMessage($message_class, $message);
4249          }          }
         // Inclusion de la classe de gestion des formulaires  
         require_once "../obj/om_formulaire.class.php";  
4250          // Ouverture du formulaire          // Ouverture du formulaire
4251          printf("\t<form");          printf("\t<form");
4252          printf(" method=\"post\"");          printf(" method=\"post\"");
# Line 4011  class instruction extends instruction_ge Line 4261  class instruction extends instruction_ge
4261              array_push($champs, "om_collectivite");              array_push($champs, "om_collectivite");
4262          }          }
4263          // Création d'un nouvel objet de type formulaire          // Création d'un nouvel objet de type formulaire
4264          $form = new formulaire(NULL, 0, 0, $champs);          $form = $this->f->get_inst__om_formulaire(array(
4265                "validation" => 0,
4266                "maj" => 0,
4267                "champs" => $champs,
4268            ));
4269          // Paramétrage du champ date_bordereau_debut          // Paramétrage du champ date_bordereau_debut
4270          $form->setLib("date_bordereau_debut", _("date_bordereau_debut"));          $form->setLib("date_bordereau_debut", _("date_bordereau_debut"));
4271          $form->setType("date_bordereau_debut", "date");          $form->setType("date_bordereau_debut", "date");
# Line 4209  class instruction extends instruction_ge Line 4463  class instruction extends instruction_ge
4463                                              ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type                                              ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
4464                                          INNER JOIN ".DB_PREFIXE."groupe                                          INNER JOIN ".DB_PREFIXE."groupe
4465                                              ON dossier_autorisation_type.groupe = groupe.groupe                                              ON dossier_autorisation_type.groupe = groupe.groupe
                                                 AND groupe.code != 'CTX'  
4466                                          WHERE code_barres='".$this->f->db->escapesimple($code_barres)."'";                                          WHERE code_barres='".$this->f->db->escapesimple($code_barres)."'";
4467                                            
4468                                // Ajout d'un filtre sur les groupes auxquels l'utilisateur a accès
4469                                $group_clause = array();
4470                                foreach ($_SESSION["groupe"] as $key => $value) {
4471                                    $group_clause[$key] = "(groupe.code = '".$key."'";
4472                                    if($value["confidentiel"] !== true) {
4473                                        $group_clause[$key] .= " AND dossier_autorisation_type.confidentiel IS NOT TRUE";
4474                                    }
4475                                    $group_clause[$key] .= ")";
4476                                }
4477                                $conditions = implode(" OR ", $group_clause);
4478                                $sql .= " AND (" . $conditions . ")";
4479    
4480                              $nbInstr = $f->db->getone($sql);                              $nbInstr = $f->db->getone($sql);
4481                              $f->addToLog(__METHOD__.": db->getone(\"".$sql."\")", VERBOSE_MODE);                              $f->addToLog(__METHOD__.": db->getone(\"".$sql."\")", VERBOSE_MODE);
4482                              $f->isDatabaseError($nbInstr);                              $f->isDatabaseError($nbInstr);
# Line 4225  class instruction extends instruction_ge Line 4491  class instruction extends instruction_ge
4491                                  // Si pas de date ou correspond à la date du formulaire on                                  // Si pas de date ou correspond à la date du formulaire on
4492                                  // effectue le traitement                                  // effectue le traitement
4493                                  if ($row["date_envoi_rar"] == "" || $row["date_envoi_rar"] == $date) {                                  if ($row["date_envoi_rar"] == "" || $row["date_envoi_rar"] == $date) {
4494                                                                            $instr = $this->f->get_inst__om_dbform(array(
4495                                      require_once '../obj/instruction.class.php';                                          "obj" => "instruction",
4496                                      require_once '../obj/dossier.class.php';                                          "idx" => $row['instruction'],
4497                                                                ));
                                     $instr = new instruction($row['instruction'], $f->db, DEBUG);  
4498                                      $valF = array();                                      $valF = array();
4499                                      foreach($instr->champs as $id => $champ) {                                      foreach($instr->champs as $id => $champ) {
4500                                          $valF[$champ] = $instr->val[$id];                                          $valF[$champ] = $instr->val[$id];
# Line 4238  class instruction extends instruction_ge Line 4503  class instruction extends instruction_ge
4503                                      # Si on peut consulter les dossiers et que le dossier n'existe pas déjà dans la liste                                      # Si on peut consulter les dossiers et que le dossier n'existe pas déjà dans la liste
4504                                      if ($isAccredited === true                                      if ($isAccredited === true
4505                                          && array_key_exists($instr->getVal("dossier"), $dossierTab) === false) {                                          && array_key_exists($instr->getVal("dossier"), $dossierTab) === false) {
4506                                          $dossier = new dossier($instr->getVal("dossier"));                                          $dossier = $this->f->get_inst__om_dbform(array(
4507                                                "obj" => "dossier",
4508                                                "idx" => $instr->getVal("dossier"),
4509                                            ));
4510                                          if ($dossier->is_user_from_allowed_collectivite()){                                          if ($dossier->is_user_from_allowed_collectivite()){
4511                                              $dossierTab[$instr->getVal("dossier")] = $dossier;                                              $dossierTab[$instr->getVal("dossier")] = $dossier;
4512                                          } else {                                          } else {
# Line 4364  class instruction extends instruction_ge Line 4632  class instruction extends instruction_ge
4632              echo " : \n<br/><br/>";              echo " : \n<br/><br/>";
4633              echo "\n<a class='om-prev-icon pdf-16'";              echo "\n<a class='om-prev-icon pdf-16'";
4634              echo "\n title=\""._("imprimer les RAR")."\"";              echo "\n title=\""._("imprimer les RAR")."\"";
4635              echo "\n href=\"../scr/form.php?obj=instruction&action=180&idx=0&liste=".implode(",",$id4Gen)."\"";              echo "\n href=\"".OM_ROUTE_FORM."&obj=instruction&action=180&idx=0&liste=".implode(",",$id4Gen)."\"";
4636              echo "\n target='_blank'>";              echo "\n target='_blank'>";
4637              echo _("Telecharger le document pour")." ".$nbLettres." "._("RAR");              echo _("Telecharger le document pour")." ".$nbLettres." "._("RAR");
4638              echo "\n</a>";              echo "\n</a>";
# Line 4388  class instruction extends instruction_ge Line 4656  class instruction extends instruction_ge
4656                      echo "\n<br/>";                      echo "\n<br/>";
4657                  }                  }
4658                  foreach ($dossierTab as $dossier) {                  foreach ($dossierTab as $dossier) {
4659                      
4660                        $inst_da = $this->get_inst_common("dossier_autorisation", $dossier->getVal('dossier_autorisation'));
4661                        $inst_datd = $this->get_inst_common("dossier_autorisation_type_detaille", $inst_da->getVal('dossier_autorisation_type_detaille'));
4662                        $code_datd = $inst_datd->getVal('code');
4663    
4664                        $obj = "dossier_instruction";
4665                        if ($code_datd === 'REC' OR $code_datd === 'REG') {
4666                            $obj = "dossier_contentieux_tous_recours";
4667                        }
4668                        if ($code_datd === 'IN') {
4669                            $obj = "dossier_contentieux_toutes_infractions";
4670                        }
4671    
4672                      echo "\n<div class=\"bloc group\">";                      echo "\n<div class=\"bloc group\">";
4673                      echo "\n<div class=\"field field-type-text\">";                      echo "\n<div class=\"field field-type-text\">";
4674    
4675                      echo "\n<p>";                      echo "\n<p>";
4676                      echo "\n<span class='text'>";                      echo "\n<span class='text'>";
4677                      echo "\n<a class=\"om-icon om-icon-16 consult-16\" title=\"" . _('Consulter') . "\"";                      echo "\n<a class=\"om-icon om-icon-16 consult-16\" title=\"" . _('Consulter') . "\"";
4678                      echo "\n href=\"../scr/form.php?obj=dossier_instruction&action=3&idx=";                      echo "\n href=\"".OM_ROUTE_FORM."&obj=dossier_instruction&action=3&idx=";
4679                      echo $dossier->getVal("dossier");                      echo $dossier->getVal("dossier");
4680                      echo "\">";                      echo "\">";
4681                      echo "\n</a>";                      echo "\n</a>";
4682    
4683                      echo "\n<a title=\""._("Consulter")."\" style=\"vertical-align:middle;\"";                      echo "\n<a title=\""._("Consulter")."\" style=\"vertical-align:middle;\"";
4684                      echo " href=\"../scr/form.php?obj=dossier_instruction&action=3&idx=";                      echo " href=\"".OM_ROUTE_FORM."&obj=";
4685                        echo $obj;
4686                        echo "&action=3&idx=";
4687                      echo $dossier->getVal("dossier");                      echo $dossier->getVal("dossier");
4688                      echo "\">";                      echo "\">";
4689                      echo $dossier->getVal("dossier_libelle");                      echo $dossier->getVal("dossier_libelle");
# Line 4417  class instruction extends instruction_ge Line 4700  class instruction extends instruction_ge
4700              echo "\n</div>";              echo "\n</div>";
4701              echo "\n</div>";              echo "\n</div>";
4702          }          }
         // Inclusion de la classe de gestion des formulaires  
         require_once "../obj/om_formulaire.class.php";  
4703          // Ouverture du formulaire          // Ouverture du formulaire
4704          echo "\t<form";          echo "\t<form";
4705          echo " method=\"post\"";          echo " method=\"post\"";
# Line 4428  class instruction extends instruction_ge Line 4709  class instruction extends instruction_ge
4709          // Paramétrage des champs du formulaire          // Paramétrage des champs du formulaire
4710          $champs = array("date", "liste_code_barres_instruction");          $champs = array("date", "liste_code_barres_instruction");
4711          // Création d'un nouvel objet de type formulaire          // Création d'un nouvel objet de type formulaire
4712          $form = new formulaire(NULL, 0, 0, $champs);          $form = $this->f->get_inst__om_formulaire(array(
4713                "validation" => 0,
4714                "maj" => 0,
4715                "champs" => $champs,
4716            ));
4717          // Paramétrage du champ date du formulaire          // Paramétrage du champ date du formulaire
4718          $form->setLib("date", _("Date")."* :");          $form->setLib("date", _("Date")."* :");
4719          $form->setType("date", "date");          $form->setType("date", "date");
# Line 4515  class instruction extends instruction_ge Line 4800  class instruction extends instruction_ge
4800                                  ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type                                  ON dossier_autorisation_type_detaille.dossier_autorisation_type = dossier_autorisation_type.dossier_autorisation_type
4801                              INNER JOIN ".DB_PREFIXE."groupe                              INNER JOIN ".DB_PREFIXE."groupe
4802                                  ON dossier_autorisation_type.groupe = groupe.groupe                                  ON dossier_autorisation_type.groupe = groupe.groupe
                                     AND groupe.code != 'CTX'  
4803                              WHERE code_barres='".$this->f->db->escapesimple($code_barres)."'";                              WHERE code_barres='".$this->f->db->escapesimple($code_barres)."'";
4804    
4805                    // Ajout d'un filtre sur les groupes auxquels l'utilisateur a accès
4806                    $group_clause = array();
4807                    foreach ($_SESSION["groupe"] as $key => $value) {
4808                        $group_clause[$key] = "(groupe.code = '".$key."'";
4809                        if($value["confidentiel"] !== true) {
4810                            $group_clause[$key] .= " AND dossier_autorisation_type.confidentiel IS NOT TRUE";
4811                        }
4812                        $group_clause[$key] .= ")";
4813                    }
4814                    $conditions = implode(" OR ", $group_clause);
4815                    $sql .= " AND (" . $conditions . ")";
4816    
4817    
4818                  $res = $f->db->query($sql);                  $res = $f->db->query($sql);
4819                  $f->addToLog(__METHOD__.": db->query(\"".$sql."\")", VERBOSE_MODE);                  $f->addToLog(__METHOD__.": db->query(\"".$sql."\")", VERBOSE_MODE);
4820                  $f->isDatabaseError($res);                  $f->isDatabaseError($res);
# Line 4525  class instruction extends instruction_ge Line 4823  class instruction extends instruction_ge
4823                      $liste_champs = explode(";", $type_mise_a_jour);                      $liste_champs = explode(";", $type_mise_a_jour);
4824                      // Mise à jour des dates après l'écran de verification                      // Mise à jour des dates après l'écran de verification
4825                      if($f->get_submitted_post_value('is_valid') !== null and $f->get_submitted_post_value('is_valid') == "true") {                      if($f->get_submitted_post_value('is_valid') !== null and $f->get_submitted_post_value('is_valid') == "true") {
                         require_once '../obj/instruction.class.php';  
4826                          $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);                          $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
4827                          $instr = new instruction($row['instruction'], $f->db, DEBUG);                          $instr = $this->f->get_inst__om_dbform(array(
4828                                "obj" => "instruction",
4829                                "idx" => $row['instruction'],
4830                            ));
4831                          $valF = array();                          $valF = array();
4832                          foreach($instr->champs as $id => $champ) {                          foreach($instr->champs as $id => $champ) {
4833                              $valF[$champ] = $instr->val[$id];                              $valF[$champ] = $instr->val[$id];
# Line 4663  class instruction extends instruction_ge Line 4963  class instruction extends instruction_ge
4963          if($correct === true) {          if($correct === true) {
4964              $f->displayMessage("ok", _("Saisie enregistree"));              $f->displayMessage("ok", _("Saisie enregistree"));
4965          }          }
         // Inclusion de la classe de gestion des formulaires  
         require_once "../obj/om_formulaire.class.php";  
4966          // Ouverture du formulaire          // Ouverture du formulaire
4967          echo "\t<form";          echo "\t<form";
4968          echo " method=\"post\"";          echo " method=\"post\"";
# Line 4682  class instruction extends instruction_ge Line 4980  class instruction extends instruction_ge
4980              $champs = array("type_mise_a_jour", "date", "code_barres");              $champs = array("type_mise_a_jour", "date", "code_barres");
4981          }          }
4982          // Création d'un nouvel objet de type formulaire          // Création d'un nouvel objet de type formulaire
4983          $form = new formulaire(NULL, 0, 0, $champs);          $form = $this->f->get_inst__om_formulaire(array(
4984                "validation" => 0,
4985                "maj" => 0,
4986                "champs" => $champs,
4987            ));
4988          // Paramétrage des champs du formulaire          // Paramétrage des champs du formulaire
4989          // Parametrage du champ type_mise_a_jour          // Parametrage du champ type_mise_a_jour
4990          $form->setLib("type_mise_a_jour", _("Date a mettre a jour")."* :");          $form->setLib("type_mise_a_jour", _("Date a mettre a jour")."* :");
# Line 4812  class instruction extends instruction_ge Line 5114  class instruction extends instruction_ge
5114          }          }
5115          // Si pas sur l'écran de validation          // Si pas sur l'écran de validation
5116          if(isset($infos)) {          if(isset($infos)) {
5117              echo "<a class=\"retour\" href=\"../scr/form.php?obj=instruction_suivi_mise_a_jour_des_dates&action=170&idx=0";              echo "<a class=\"retour\" href=\"".OM_ROUTE_FORM."&obj=instruction_suivi_mise_a_jour_des_dates&action=170&idx=0";
5118                  echo "&amp;type_mise_a_jour=".$type_mise_a_jour."&amp;date=".$date."&amp;code_barres=".$code_barres;                  echo "&amp;type_mise_a_jour=".$type_mise_a_jour."&amp;date=".$date."&amp;code_barres=".$code_barres;
5119              echo "\">Retour</a>";              echo "\">Retour</a>";
5120          }          }
# Line 4847  class instruction extends instruction_ge Line 5149  class instruction extends instruction_ge
5149    
5150              foreach ($listeCodeBarres as $code_barres) {              foreach ($listeCodeBarres as $code_barres) {
5151    
5152                    // On récupère le dossier
5153                    $sql = "SELECT dossier
5154                            FROM " . DB_PREFIXE . "instruction
5155                            WHERE code_barres = '" . $code_barres . "'";
5156                    $dossier = $this->db->getOne($sql);
5157                    $this->f->addToLog(__METHOD__."(): db->getOne(\"".$sql."\")", VERBOSE_MODE);
5158                    $this->f->isDatabaseError($dossier);
5159                    $inst_dossier = $this->f->get_inst__om_dbform(array(
5160                        "obj" => "dossier",
5161                        "idx" => $dossier,
5162                    ));
5163    
5164                    // En fonction du type de dossier, on récupère un demandeur différent dans les requêtes
5165                    $groupe = $inst_dossier->get_type_affichage_formulaire();
5166                    switch ($groupe) {
5167                        case 'CTX IN':
5168                            $sql_demandeur = "(lien_dossier_demandeur.petitionnaire_principal IS TRUE AND demandeur.type_demandeur='plaignant')";
5169                            break;
5170                        case 'CTX RE':
5171                            $sql_demandeur = "(lien_dossier_demandeur.petitionnaire_principal IS TRUE AND demandeur.type_demandeur='requerant')";
5172                            break;
5173                        case 'ADS':
5174                        case 'DPC':
5175                        default:
5176                            $sql_demandeur = "((lien_dossier_demandeur.petitionnaire_principal IS TRUE AND demandeur.type_demandeur='petitionnaire') OR demandeur.type_demandeur='delegataire')";
5177                            break;
5178                    }
5179    
5180                  // Test si l'evenement est de type arrete et si un délégataire a été nommé                  // Test si l'evenement est de type arrete et si un délégataire a été nommé
5181                  $sql = "SELECT                  $sql = "SELECT
5182                              dossier.dossier_libelle,                              dossier.dossier_libelle,
# Line 4872  class instruction extends instruction_ge Line 5202  class instruction extends instruction_ge
5202                          inner join ".DB_PREFIXE."demandeur on                          inner join ".DB_PREFIXE."demandeur on
5203                              demandeur.demandeur=lien_dossier_demandeur.demandeur                              demandeur.demandeur=lien_dossier_demandeur.demandeur
5204                          WHERE code_barres='".$code_barres."'                          WHERE code_barres='".$code_barres."'
5205                              AND ((lien_dossier_demandeur.petitionnaire_principal IS TRUE AND demandeur.type_demandeur='petitionnaire')                              AND " . $sql_demandeur . "
                             OR demandeur.type_demandeur='delegataire')  
5206                          GROUP BY dossier.dossier_libelle, evenement.type, phase.code, division.libelle";                          GROUP BY dossier.dossier_libelle, evenement.type, phase.code, division.libelle";
5207    
5208                  $res = $f->db->query($sql);                  $res = $f->db->query($sql);
# Line 4927  class instruction extends instruction_ge Line 5256  class instruction extends instruction_ge
5256                  if($testDemandeur['type'] != 'arrete' AND $testDemandeur['nbdemandeur'] > 1) {                  if($testDemandeur['type'] != 'arrete' AND $testDemandeur['nbdemandeur'] > 1) {
5257                      $sqlAdresse .= " AND demandeur.type_demandeur='delegataire'";                      $sqlAdresse .= " AND demandeur.type_demandeur='delegataire'";
5258                  } else {                  } else {
5259                      $sqlAdresse .= " AND lien_dossier_demandeur.petitionnaire_principal IS TRUE AND demandeur.type_demandeur='petitionnaire'";                      $sqlAdresse .= " AND demandeur.type_demandeur='petitionnaire' AND lien_dossier_demandeur.petitionnaire_principal IS TRUE";
5260                  }                  }
5261    
5262                  $resAdresse = $f->db->query($sqlAdresse);                  $resAdresse = $f->db->query($sqlAdresse);
# Line 4963  class instruction extends instruction_ge Line 5292  class instruction extends instruction_ge
5292                  $specifique_content[] = $testDemandeur['dossier_libelle'];                  $specifique_content[] = $testDemandeur['dossier_libelle'];
5293                  $specifique_content[] = "|||||".$adresse_dest['code_barres']."|||||";                  $specifique_content[] = "|||||".$adresse_dest['code_barres']."|||||";
5294                  unset($adresse_dest['code_barres']);                  unset($adresse_dest['code_barres']);
   
5295                  // Ajout d'une page aux pdf                  // Ajout d'une page aux pdf
5296                  $pdf_lettre_rar->addLetter($adresse_destinataire, $specifique_content, $testDemandeur['code_phase']);                  $pdf_lettre_rar->addLetter($adresse_destinataire, $specifique_content, $testDemandeur['code_phase']);
5297    
5298              }              }
5299              $pdf_output = $pdf_lettre_rar->output("lettre_rar".date("dmYHis").".pdf","S");              $pdf_output = $pdf_lettre_rar->output("lettre_rar".date("dmYHis").".pdf","S");
5300              require_once PATH_OPENMAIRIE."om_edition.class.php";              $om_edition = $this->f->get_inst__om_edition();
             $om_edition = new edition();  
5301              $om_edition->expose_pdf_output($pdf_output, "lettre_rar".date("dmYHis").".pdf");              $om_edition->expose_pdf_output($pdf_output, "lettre_rar".date("dmYHis").".pdf");
5302          }          }
5303      }      }
# Line 5033  class instruction extends instruction_ge Line 5360  class instruction extends instruction_ge
5360                              $message .= "<a class='om-prev-icon pdf-16'";                              $message .= "<a class='om-prev-icon pdf-16'";
5361                              $message .= " id=\"generer_bordereau_envoi_maire\"";                              $message .= " id=\"generer_bordereau_envoi_maire\"";
5362                              $message .= " title=\""._("Bordereau")."\"";                              $message .= " title=\""._("Bordereau")."\"";
5363                              $message .= " href='../scr/form.php?obj=instruction";                              $message .= " href='".OM_ROUTE_FORM."&obj=instruction";
5364                              $message .= "&action=200";                              $message .= "&action=200";
5365                              $message .= "&idx=".$id_instruction."'";                              $message .= "&idx=".$id_instruction."'";
5366                              $message .= " target='_blank'>";                              $message .= " target='_blank'>";
# Line 5074  class instruction extends instruction_ge Line 5401  class instruction extends instruction_ge
5401              $this->f->displayMessage($message_class, $message);              $this->f->displayMessage($message_class, $message);
5402          }          }
5403    
         // Inclusion de la classe de gestion des formulaires  
         require_once "../obj/om_formulaire.class.php";  
5404          // Ouverture du formulaire          // Ouverture du formulaire
5405          $datasubmit = $this->getDataSubmit();          $datasubmit = $this->getDataSubmit();
5406          echo "\n<!-- ########## START DBFORM ########## -->\n";          echo "\n<!-- ########## START DBFORM ########## -->\n";
# Line 5092  class instruction extends instruction_ge Line 5417  class instruction extends instruction_ge
5417          $champs = array("code_barres","date");          $champs = array("code_barres","date");
5418    
5419          // Création d'un nouvel objet de type formulaire          // Création d'un nouvel objet de type formulaire
5420          $form = new formulaire(NULL, 0, 0, $champs);          $form = $this->f->get_inst__om_formulaire(array(
5421                "validation" => 0,
5422                "maj" => 0,
5423                "champs" => $champs,
5424            ));
5425    
5426          $template_required_label = '%s *';          $template_required_label = '%s *';
5427          // Parametrage du champ code_barres          // Parametrage du champ code_barres
# Line 5217  class instruction extends instruction_ge Line 5546  class instruction extends instruction_ge
5546       * validation du formulaire d'ajout.       * validation du formulaire d'ajout.
5547       * @param array $val tableau des valeurs retournées par le formulaire       * @param array $val tableau des valeurs retournées par le formulaire
5548       */       */
5549      function setValFAjout($val) {      function setValFAjout($val = array()) {
5550          // Mise à jour du flag created_by_commune lors d'un changement de décision          // Mise à jour du flag created_by_commune lors d'un changement de décision
5551          // par un utilisateur de commune sur un dossier instruit par la comcom          // par un utilisateur de commune sur un dossier instruit par la comcom
5552          if ($this->isInstrCanChangeDecision($this->valF["dossier"])) {          if ($this->isInstrCanChangeDecision($this->valF["dossier"])) {
# Line 5487  class instruction extends instruction_ge Line 5816  class instruction extends instruction_ge
5816       */       */
5817      public function formater_modele($modele, $id_di, $id_inst) {      public function formater_modele($modele, $id_di, $id_inst) {
5818          // Création du lien d'accès direct à l'instruction          // Création du lien d'accès direct à l'instruction
5819          $url_inst = PATH_BASE_URL.'spg/direct_link.php?obj=dossier_instruction&action=3'.          $url_inst = PATH_BASE_URL.'app/index.php?module=form&direct_link=true&obj=dossier_instruction&action=3'.
5820              '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$id_inst;              '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$id_inst;
5821          $url_inst = '<a href="'.$url_inst.'">'.$url_inst.'</a>';          $url_inst = '<a href="'.$url_inst.'">'.$url_inst.'</a>';
5822          // Remplacement des champs de fusion          // Remplacement des champs de fusion
# Line 5589  class instruction extends instruction_ge Line 5918  class instruction extends instruction_ge
5918              $this->f->get_submitted_get_value('idxformulaire') : $id_dossier = "");              $this->f->get_submitted_get_value('idxformulaire') : $id_dossier = "");
5919          //          //
5920          if ($id_dossier !== "") {          if ($id_dossier !== "") {
5921              require_once "../obj/dossier_instruction.class.php";              $dossier = $this->f->get_inst__om_dbform(array(
5922              $dossier = new dossier_instruction($id_dossier, $f->db, DEBUG);                  "obj" => "dossier_instruction",
5923                    "idx" => $id_dossier,
5924                ));
5925              //              //
5926              return $dossier->can_user_access_dossier();              return $dossier->can_user_access_dossier();
5927          }          }
# Line 5610  class instruction extends instruction_ge Line 5941  class instruction extends instruction_ge
5941          $id_dossier = $this->getVal('dossier');          $id_dossier = $this->getVal('dossier');
5942          //          //
5943          if ($id_dossier !== "" && $id_dossier !== null) {          if ($id_dossier !== "" && $id_dossier !== null) {
5944              require_once "../obj/dossier_instruction.class.php";              $dossier = $this->f->get_inst__om_dbform(array(
5945              $dossier = new dossier_instruction($id_dossier, $f->db, DEBUG);                  "obj" => "dossier_instruction",
5946                    "idx" => $id_dossier,
5947                ));
5948              //              //
5949              return $dossier->can_user_access_dossier();              return $dossier->can_user_access_dossier();
5950          }          }
# Line 5620  class instruction extends instruction_ge Line 5953  class instruction extends instruction_ge
5953    
5954  }// fin classe  }// fin classe
5955    
5956  ?>  

Legend:
Removed from v.6565  
changed lines
  Added in v.8329

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26