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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1130 - (hide annotations)
Mon Dec 31 13:49:36 2012 UTC (12 years, 1 month ago) by vpihour
File size: 7641 byte(s)
Modification de l'ergonomie du formulaire "etat". Ajout, suppression et modification automatique des transitions par ce formulaire

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26