/[openfoncier]/trunk/obj/action.class.php
ViewVC logotype

Diff of /trunk/obj/action.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 119 by fraynaud, Wed Sep 7 10:46:09 2011 UTC revision 2376 by softime, Mon Oct 7 17:11:43 2013 UTC
# Line 1  Line 1 
1  <?php  <?php
2  //$Id$  /**
3  //gen openMairie le 10/02/2011 20:15   * Ce fichier contient la déclaration de la classe "action".
4  require_once ("../gen/obj/action.class.php");   *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9    //
10    require_once "../gen/obj/action.class.php";
11    
12    /**
13     *
14     *
15     */
16  class action extends action_gen {  class action extends action_gen {
17    
18  function action($id,&$db,$debug) {      function action($id, &$db, $debug) {
19          $this->constructeur($id,$db,$debug);          $this->constructeur($id, $db, $debug);
20  }// fin constructeur      }
   
         function setType(&$form,$maj) {  
                 parent :: setType($form,$maj);  
                 if ($maj<2){  
                         $form->setType('regle_etat','select');  
                         $form->setType('regle_delai','select');  
                         $form->setType('regle_accord_tacite','select');  
                         $form->setType('regle_avis','select');  
                         $form->setType('regle_date_limite','select');  
                         $form->setType('regle_date_notification_delai','select');  
                         $form->setType('regle_date_complet','select');  
                         $form->setType('regle_date_validite','select');  
                         $form->setType('regle_date_decision','select');  
                         $form->setType('regle_date_chantier','select');  
                         $form->setType('regle_date_achevement','select');  
                         $form->setType('regle_date_conformite','select');  
                         $form->setType('regle_date_rejet','select');  
                 }  
         }  
   
21    
22        function verifier($val = array(), &$db, $DEBUG){
23            parent::verifier($val, $db, $DEBUG);
24    
25            // Requête SQL pour récupérer les champs de la table action contenant
26            // "regle_"
27            $sql = "SELECT column_name
28                    FROM information_schema.columns
29                    WHERE table_schema = '".substr(DB_PREFIXE, 0, -1)."'
30                    AND table_name = 'action'
31                    AND column_name LIKE 'regle_%'
32                    ORDER BY ordinal_position";
33            $this->addToLog("verifier() : db->query(\"".$sql."\")", VERBOSE_MODE);
34            $res = $db->query($sql);
35            $this->f->isDatabaseError($res);
36    
37            $list_column = array();
38            // Tant qu'il y a un résultat
39            while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
40                
41                // Le nom de la colonne est mise dans un tableau
42                $list_column[] = $row['column_name'];
43            }
44    
45            $list_fields = array();
46            // Pour chaque colonne
47            foreach ($list_column as $value) {
48                
49                // Vérifie que le champs existe dans le formulaire et qu'il n'est
50                // pas vide
51                if (isset($this->valF[$value])
52                    && $this->valF[$value] != ''
53                    && $this->valF[$value] != NULL) {
54                    $list_fields[$value] = $this->valF[$value];
55                }
56            }
57    
58            // Si le tableau contenant les champs à tester n'est pas vide
59            if (count($list_fields) > 0) {
60    
61                //
62                foreach ($list_fields as $key => $value) {
63    
64                    // Liste des opérateurs possible
65                    $operateurs = array(">=", "<=", "+", "-");
66    
67                    // Supprime tous les espaces de la chaîne de caractère
68                    $value = str_replace(' ', '', $value);
69                    
70                    // Remplace les opérateurs par un espace puis transforme la
71                    // chaine en un tableau
72                    $tabValue = str_replace($operateurs, " ", $value);
73                    // Tableau des champs
74                    $tabValue = explode(" ", $tabValue);
75                    // Supprime les numériques et null du tableau
76                    foreach ($tabValue as $key_tab => $value) {
77                        if (is_numeric($value)) {
78                            unset($tabValue[$key_tab]);
79                        } elseif ($value == "NULL" || $value == "null") {
80                            unset($tabValue[$key_tab]);
81                        }
82                    }
83    
84                    // Vérifie les champs utilisés pour la restriction
85                    $check_field_exist = $this->f->check_field_exist($tabValue,
86                        'instruction');
87                    if ($check_field_exist !== true) {
88    
89                        // Liste des champs en erreur
90                        $string_error_fields = implode(", ", $check_field_exist);
91    
92                        // Message d'erreur
93                        $error_message = _("Le champ %s n'est pas utilisable pour le champ %s");
94                        // Si plusieurs champs sont en erreur
95                        if (count($check_field_exist) > 1) {
96                            $error_message = _("Les champs %s ne sont pas utilisable pour le champ %s");
97                        }
98    
99                        // Affiche l'erreur
100                        $this->correct=false;
101                        $this->addToMessage(sprintf($error_message, $string_error_fields, _($key)));
102                    }
103                }
104            }
105            
106        }
107    
108  function setTaille(&$form, $maj) {      /**
109      parent::setTaille($form, $maj);       *
110      $form->setTaille('action',20);       */
111      $form->setTaille('libelle',60);      function formSpecificContent($maj) {
112          $form->setTaille('regle_etat',60);          /**
113          $form->setTaille('regle_delai',60);           * Affichage des champs qu'il est possible d'utiliser dans les règles
114          $form->setTaille('regle_accord_tacite',60);           */
115          $form->setTaille('regle_avis',60);          // Archives du dossier
116          $form->setTaille('regle_date_limite',60);          echo "<h4>"._("Valeurs du dossier avant l'evenement")."</h4>";
117          $form->setTaille('regle_date_notification_delai',60);          echo "[archive_etat] [archive_delai] [archive_accord_tacite]
118          $form->setTaille('regle_date_complet',60);          [archive_avis]";
119          $form->setTaille('regle_date_validite',60);          echo "<br/>";
120          $form->setTaille('regle_date_decision',60);          echo "[archive_date_dernier_depot] [archive_date_complet]
121          $form->setTaille('regle_date_chantier',60);          [archive_date_rejet] [archive_date_limite]
122          $form->setTaille('regle_date_achevement',60);          [archive_date_notification_delai] [archive_date_decision]
123          $form->setTaille('regle_date_conformite',60);          [archive_date_validite] [archive_date_achevement]
124          $form->setTaille('regle_date_rejet',60);          [archive_date_conformite] [archive_date_chantier]
125  }          [archive_etat_pendant_incompletude] [archive_date_limite_incompletude]
126            [archive_delai_incompletude] [archive_autorite_competente]
127            [duree_validite]";
128            // Champs de l'événement
129            echo "<h4>"._("Parametres de l'evenement")."</h4>";
130            echo "[etat] [delai] [accord_tacite] [avis_decision]
131            [delai_notification] [date_evenement] [autorite_competente]";
132            // Champs du type détaillé du dossier d'autorisation
133            echo "<h4>"._("Parametres du type detaille du dossier d'autorisation")
134                ."</h4>";
135            echo "[duree_validite_parametrage]";
136            echo "<h4>"._("Suppression de la valeur")."</h4>";
137            echo "[null]";
138        }
139    
 function setMax(&$form, $maj) {  
     parent::setMax($form, $maj);  
     $form->setMax('action',20);  
     $form->setMax('libelle',60);  
         $form->setMax('regle_etat',60);  
         $form->setMax('regle_delai',60);  
         $form->setMax('regle_accord_tacite',20);  
         $form->setMax('regle_avis',20);  
         $form->setMax('regle_date_limite',20);  
         $form->setMax('regle_date_notification_delai',20);  
         $form->setMax('regle_date_complet',20);  
         $form->setMax('regle_date_validite',20);  
         $form->setMax('regle_date_decision',20);  
         $form->setMax('regle_date_chantier',20);  
         $form->setMax('regle_date_achevement',20);  
         $form->setMax('regle_date_conformite',20);  
         $form->setMax('regle_date_rejet',20);  
140  }  }
141    
     function setSelect(&$form, $maj,&$db,$debug) {  
         parent :: setSelect($form, $maj,$db,$debug);  
         $contenu=array();  
         $contenu[0]=array('','evenement');  
         $contenu[1]=array(_('Non affecte'),_('valeur evenement'));  
         $form->setSelect("regle_etat",$contenu);  
         $form->setSelect("regle_accord_tacite",$contenu);  
         $form->setSelect("regle_avis",$contenu);  
         // delai  
         $contenu=array();  
         $contenu[0]=array('','evenement','evenement_delai');  
         $contenu[1]=array(_('Non affecte'),_('delai evenement'),_('delai actuel + delai evenement'));    
         $form->setSelect("regle_delai",$contenu);  
         // date  
         $contenu=array();  
         $contenu[0]=array('','null','datecourrier','valeurdate_delai');  
         $contenu[1]=array(_('Non affecte'),_('annulation de la date'),_('datecourrier'),  
                           _('valeur de la date + delai evenement'));  
         $form->setSelect("regle_date_limite",$contenu);  
         $contenu=array();  
         $contenu[0]=array('','null','valeurdate_delai');  
         $contenu[1]=array(_('Non affecte'),_('annulation de la date'), _('valeur de la date + delai evenement'));        
         $form->setSelect("regle_date_limite",$contenu);  
         $contenu=array();  
         $contenu[0]=array('','null','date_complet_1');  
         $contenu[1]=array(_('Non affecte'),_('annulation de la date'),_('date complet plus 1 mois'));  
         $form->setSelect("regle_date_notification_delai",$contenu);  
         $contenu=array();  
         $contenu[0]=array('','null');  
         $contenu[1]=array(_('Non affecte'),_('annulation de la date'));  
         $form->setSelect("regle_date_complet",$contenu);  
         $contenu=array();  
         $contenu[0]=array('','null','datecourrier_delai','valeurdate_delai', 'date_limite_2');  
         $contenu[1]=array(_('Non affecte'),_('annulation de la date'),_('datecourrier + delai evenement'),  
                           _('valeur de la date + delai evenement'),  
                           _('date  limite + 2 mois')  
                          );  
         $form->setSelect("regle_date_validite",$contenu);  
         $contenu=array();  
         $contenu[0]=array('','datecourrier');  
         $contenu[1]=array(_('Non affecte'),_('datecourrier'));  
         $form->setSelect("regle_date_decision",$contenu);  
         $form->setSelect("regle_date_chantier",$contenu);  
         $form->setSelect("regle_date_achevement",$contenu);  
         $form->setSelect("regle_date_conformite",$contenu);  
         $form->setSelect("regle_date_rejet",$contenu);  
     }  
   
 }// fin classe  
 ?>  
142    ?>

Legend:
Removed from v.119  
changed lines
  Added in v.2376

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26