/[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 1134 by vpihour, Mon Dec 31 15:17:38 2012 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 à jour des liaisons avec transition
161                            realisee avec succes.");
162                }
163            }
164        }
165    
166        //Ajoute une nouvelle transition
167        // $data array de données
168        function addTransition($data, $db, $DEBUG){
169            
170            require_once '../obj/transition.class.php';
171            
172            $transition = new transition("]",$db,$DEBUG);
173            $transition->valF = "";
174        
175            //Données
176            $valTransi['transition']=NULL;
177        
178            if ( is_array($data) ){
179                
180                foreach ($data as $key => $value) {
181                    
182                    $valTransi[$key]=$value;
183                }            
184            }
185        
186            $transition->ajouter($valTransi, $db, $DEBUG);
187        }
188    
189        //Supprime toutes les transitions liées à un état
190        function deleteAllTransitionEtat($id, $db, $DEBUG){
191                
192            //Création de la requête
193            $sql = "DELETE FROM ".DB_PREFIXE."transition WHERE etat like '$id'";
194            
195            //Exécution de la requête
196            $res = $db->query($sql);
197            
198            //Ajout au log
199            $this->f->addToLog("deleteAllTransitionEtat(): db->query(\"".$sql."\");", VERBOSE_MODE);
200            $this->f->isDatabaseError();
201        }
202    
203        //Suppression de toutes les liaisons avec transition
204        function triggersupprimer($id, &$db, $val, $DEBUG){
205                    
206            //Supprime toutes les transitions liées à l'état
207            $this->deleteAllTransitionEtat($id, $db, $DEBUG);
208        }
209        
210        /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
211         * transition qui sera supprimé juste après*/
212        function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
213    
214            // Verification de la cle secondaire : dossier
215            $this->rechercheTable($db, "dossier", "etat", $id);
216            // Verification de la cle secondaire : dossier_autorisation
217            $this->rechercheTable($db, "dossier_autorisation", "etat", $id);
218            // Verification de la cle secondaire : evenement
219            $this->rechercheTable($db, "evenement", "etat", $id);
220            // Verification de la cle secondaire : instruction
221            $this->rechercheTable($db, "instruction", "etat", $id);
222        }
223        
224        //Affichage des evenement anciennement liés
225        function setVal(&$form, $maj, $validation, &$db) {
226            
227            parent::setVal($form, $maj, $validation, $db);
228            
229            if($maj == 2 && $validation == 1 ) {
230                 $form->setVal("evenement",$this->val[3]);
231            }
232        }
233  }// fin classe  }// fin classe
234  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26