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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1538 - (show annotations)
Wed Mar 20 18:05:14 2013 UTC (11 years, 10 months ago) by fmichon
File size: 8023 byte(s)
Mise en place d'une liste à choix pour le champs statut

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26