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

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

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

revision 404 by nhaye, Thu Sep 20 15:37:28 2012 UTC revision 1159 by fmichon, Mon Jan 7 17:15:57 2013 UTC
# Line 9  class etat extends etat_gen { Line 9  class etat extends etat_gen {
9          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
10      }// fin constructeur      }// fin constructeur
11    
12        //Ajout du type select multiple sur evenement
13        function setType(&$form,$maj) {
14            
15            parent::setType($form, $maj);
16            
17            //type
18            if ($maj==0){ //ajout
19            
20                $form->setType('evenement','select_multiple');
21            }// fin ajout
22            if ($maj==1){ //modifier
23                
24                $form->setType('evenement','select_multiple');
25            }// fin modifier
26            if ($maj==2){ //supprimer
27            
28                $form->setType('evenement','select_multiple_static');
29            }//fin supprimer
30            if ($maj==3){ //consulter
31            
32                $form->setType('evenement','select_multiple_static');
33            }//fin consulter
34        }
35        
36        function setSelect(&$form, $maj,&$db,$debug) {
37    
38            if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
39                include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
40            elseif(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc"))
41                include ("../sql/".$db->phptype."/".$this->table.".form.inc");
42    
43            parent::setSelect($form, $maj, $db, $debug);
44    
45            // evenement
46            $this->init_select($form, $db, $maj, $debug, "evenement",
47                               $sql_evenement, $sql_evenement_by_id, false);
48        }
49        
50        //Nombre de evenement affiché
51        function setTaille(&$form, $maj) {
52            
53            parent::setTaille($form, $maj);
54            $form->setTaille("evenement", 5);
55        }
56        
57        //Nombre de evenement maximum
58        function setMax(&$form, $maj) {
59            
60            parent::setMax($form, $maj);
61            $form->setMax("evenement", 5);
62        }
63        
64        //Ajoute autant de transitions que d'événements
65        function triggerajouterapres($id,&$db,$val,$DEBUG) {
66            
67            parent::triggerajouterapres($id,$db,$val,$DEBUG);
68    
69            //Récupère les données du select multiple
70            $evenements = $this->getPostedValues('evenement');
71            
72            //Ne traite les données que s'il y en a et qu'elles sont correctes
73            if ( is_array($evenements) && count($evenements) > 0 ){
74                
75                $nb_tr = 0;    
76                //Va créer autant de transition que d'événements choisis
77                foreach( $evenements as $value ){
78                
79                    //Test si la valeur par défaut est sélectionnée
80                    if ( $value != "" ) {
81                        
82                        //Données
83                        $donnees = array(
84                            'etat' => $this->valF['etat'],
85                            'evenement' => $value
86                        );
87                        
88                        //Ajoute une nouvelle transition
89                        $this->addTransition($donnees, $db, $DEBUG);
90    
91                        $nb_tr++;
92                    }
93                }
94                
95                //Message de confirmation de création de(s) transition(s).
96                if ( $nb_tr > 0 ){
97                    
98                    if ( $nb_tr == 1 ){
99                        
100                        $this->addToMessage(_("Creation de $nb_tr nouvelle transition
101                            realisee avec succes."));
102                    }
103                    else{
104                        
105                        $this->addToMessage(_("Creation de $nb_tr nouvelles transitions
106                            realisee avec succes."));
107                    }
108                }
109            }
110            
111        }
112        
113        //Fonction générique permettant de récupérer les données d'un champ postées
114        function getPostedValues($champ) {
115            
116            // Récupération des demandeurs dans POST
117            if (isset($_POST[$champ]) ) {
118                
119                return $_POST[$champ];
120            }
121        }
122        
123        //Modification des liens
124        function triggerModifierApres($id, &$db, $val, $DEBUG){
125            
126            parent::triggerModifierApres($id, $db, $val, $DEBUG);
127            
128            //Supprime toutes les transitions liées à l'état
129            $this->deleteAllTransitionEtat($this->valF['etat'], $db, $DEBUG);
130            
131            //Récupère les données du select multiple
132            $evenements = $this->getPostedValues('evenement');
133            
134            //Ne traite les données que s'il y en a et qu'elles sont correctes
135            if ( is_array($evenements) && count($evenements) > 0 ){
136                
137                $nb_tr = 0;    
138                //Va créer autant de transition que d'événements choisis
139                foreach( $evenements as $value ){
140                
141                    //Test si la valeur par défaut est sélectionnée
142                    if ( $value != "" ) {
143                        
144                        //Données
145                        $donnees = array(
146                            'etat' => $this->valF['etat'],
147                            'evenement' => $value
148                        );
149                        
150                        //Ajoute une nouvelle transition
151                        $this->addTransition($donnees, $db, $DEBUG);
152    
153                        $nb_tr++;
154                    }
155                }
156                
157                //Message de confirmation de création de(s) transition(s).
158                if ( $nb_tr > 0 ){
159                    
160                    $this->addToMessage(_("Mise a jour des liaisons avec transition realisee avec succes."));
161                }
162            }
163        }
164    
165        //Ajoute une nouvelle transition
166        // $data array de données
167        function addTransition($data, $db, $DEBUG){
168            
169            require_once '../obj/transition.class.php';
170            
171            $transition = new transition("]",$db,$DEBUG);
172            $transition->valF = "";
173        
174            //Données
175            $valTransi['transition']=NULL;
176        
177            if ( is_array($data) ){
178                
179                foreach ($data as $key => $value) {
180                    
181                    $valTransi[$key]=$value;
182                }            
183            }
184        
185            $transition->ajouter($valTransi, $db, $DEBUG);
186        }
187    
188        //Supprime toutes les transitions liées à un état
189        function deleteAllTransitionEtat($id, $db, $DEBUG){
190                
191            //Création de la requête
192            $sql = "DELETE FROM ".DB_PREFIXE."transition WHERE etat like '$id'";
193            
194            //Exécution de la requête
195            $res = $db->query($sql);
196            
197            //Ajout au log
198            $this->f->addToLog("deleteAllTransitionEtat(): db->query(\"".$sql."\");", VERBOSE_MODE);
199            $this->f->isDatabaseError();
200        }
201    
202        //Suppression de toutes les liaisons avec transition
203        function triggersupprimer($id, &$db, $val, $DEBUG){
204                    
205            //Supprime toutes les transitions liées à l'état
206            $this->deleteAllTransitionEtat($id, $db, $DEBUG);
207        }
208        
209        /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
210         * transition qui sera supprimé juste après*/
211        function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
212    
213            // Verification de la cle secondaire : dossier
214            $this->rechercheTable($db, "dossier", "etat", $id);
215            // Verification de la cle secondaire : dossier_autorisation
216            $this->rechercheTable($db, "dossier_autorisation", "etat", $id);
217            // Verification de la cle secondaire : evenement
218            $this->rechercheTable($db, "evenement", "etat", $id);
219            // Verification de la cle secondaire : instruction
220            $this->rechercheTable($db, "instruction", "etat", $id);
221        }
222        
223        //Affichage des evenement anciennement liés
224        function setVal(&$form, $maj, $validation, &$db) {
225            
226            parent::setVal($form, $maj, $validation, $db);
227            
228            if($maj == 2 && $validation == 1 ) {
229                 $form->setVal("evenement",$this->val[3]);
230            }
231        }
232  }// fin classe  }// fin classe
233  ?>  ?>

Legend:
Removed from v.404  
changed lines
  Added in v.1159

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26