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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1549 - (show annotations)
Thu Mar 21 18:17:06 2013 UTC (11 years, 10 months ago) by fmichon
File size: 8046 byte(s)
Mise en cohérence des écrans autour du workflow et nettoyage

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26