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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9245 - (show annotations)
Fri Apr 3 09:21:03 2020 UTC (4 years, 9 months ago) by softime
File size: 9569 byte(s)
* Merge de la branche d'intégration 4.13.0-develop dans le trunk

1 <?php
2 /**
3 * DBFORM - 'etat' - Surcharge gen.
4 *
5 * Ce script permet de définir la classe 'etat'.
6 *
7 * @package openads
8 * @version SVN : $Id$
9 */
10
11 require_once "../gen/obj/etat.class.php";
12
13 class etat extends etat_gen {
14
15 /**
16 * Clause select pour la requête de sélection des données de l'enregistrement.
17 *
18 * @return array
19 */
20 function get_var_sql_forminc__champs() {
21 return array(
22 "etat.etat",
23 "etat.libelle",
24 "etat.statut",
25 "array_to_string(array_agg(transition.evenement ORDER BY transition.evenement), ';') as evenement",
26 );
27 }
28
29 /**
30 * Clause from pour la requête de sélection des données de l'enregistrement.
31 *
32 * @return string
33 */
34 function get_var_sql_forminc__tableSelect() {
35 return sprintf(
36 '%1$s%2$s
37 LEFT JOIN %1$stransition
38 ON transition.etat=etat.etat',
39 DB_PREFIXE,
40 $this->table
41 );
42 }
43
44 /**
45 * Clause where pour la requête de sélection des données de l'enregistrement.
46 *
47 * @return string
48 */
49 function get_var_sql_forminc__selection() {
50 return " GROUP BY etat.etat, libelle ";
51 }
52
53 /**
54 *
55 * @return string
56 */
57 function get_var_sql_forminc__sql_evenement() {
58 return "SELECT evenement.evenement, evenement.libelle FROM ".DB_PREFIXE."evenement ORDER BY evenement.libelle";
59 }
60
61 /**
62 *
63 * @return string
64 */
65 function get_var_sql_forminc__sql_evenement_by_id() {
66 return "SELECT evenement.evenement, evenement.libelle FROM ".DB_PREFIXE."evenement WHERE evenement IN (<idx>) ORDER BY evenement.libelle";
67 }
68
69 function setType(&$form, $maj) {
70 //
71 parent::setType($form, $maj);
72 //type
73 if ($maj==0){ //ajout
74 $form->setType('statut', 'select');
75 $form->setType('evenement','select_multiple');
76 }// fin ajout
77 if ($maj==1){ //modifier
78 $form->setType('statut', 'select');
79 $form->setType('evenement','select_multiple');
80 }// fin modifier
81 if ($maj==2){ //supprimer
82 $form->setType('statut', 'selectstatic');
83 $form->setType('evenement','select_multiple_static');
84 }//fin supprimer
85 if ($maj==3){ //consulter
86 $form->setType('statut', 'selectstatic');
87 $form->setType('evenement','select_multiple_static');
88 }//fin consulter
89 }
90
91 /**
92 * SETTER_FORM - setSelect.
93 *
94 * @return void
95 */
96 function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
97 parent::setSelect($form, $maj);
98 // evenement
99 $this->init_select(
100 $form,
101 $this->f->db,
102 $maj,
103 null,
104 "evenement",
105 $this->get_var_sql_forminc__sql("evenement"),
106 $this->get_var_sql_forminc__sql("evenement_by_id"),
107 false,
108 true
109 );
110 // Statut
111 $contenu = array(
112 0 => array('cloture', 'encours',),
113 1 => array(_('Cloture'), _('En cours'),)
114 );
115 $form->setSelect("statut",$contenu);
116 }
117
118 //Nombre de evenement affiché
119 function setTaille(&$form, $maj) {
120
121 parent::setTaille($form, $maj);
122 $form->setTaille("evenement", 5);
123 }
124
125 //Nombre de evenement maximum
126 function setMax(&$form, $maj) {
127
128 parent::setMax($form, $maj);
129 $form->setMax("evenement", 5);
130 }
131
132 /**
133 * TRIGGER - triggerajouterapres.
134 *
135 * @return boolean
136 */
137 function triggerajouterapres($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
138 $this->addToLog(__METHOD__."(): start", EXTRA_VERBOSE_MODE);
139 parent::triggerajouterapres($id, $dnu1, $val);
140 // Ajoute autant de transitions que d'événements
141 // Récupère les données du select multiple
142 $evenements = $this->getPostedValues('evenement');
143 // Ne traite les données que s'il y en a et qu'elles sont correctes
144 if (is_array($evenements) && count($evenements) > 0) {
145 $nb_tr = 0;
146 // Va créer autant de transition que d'événements choisis
147 foreach ($evenements as $value) {
148 // Test si la valeur par défaut est sélectionnée
149 if ($value != "") {
150 //Données
151 $donnees = array(
152 'etat' => $this->valF['etat'],
153 'evenement' => $value
154 );
155 //Ajoute une nouvelle transition
156 $this->addTransition($donnees);
157 $nb_tr++;
158 }
159 }
160 // Message de confirmation de création de(s) transition(s).
161 if ($nb_tr > 0) {
162 if ($nb_tr == 1) {
163 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle transition
164 realisee avec succes."));
165 } else {
166 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles transitions
167 realisee avec succes."));
168 }
169 }
170 }
171 }
172
173 //Fonction générique permettant de récupérer les données d'un champ postées
174 function getPostedValues($champ) {
175
176 // Récupération des demandeurs dans POST
177 if ($this->f->get_submitted_post_value($champ) !== null) {
178
179 return $this->f->get_submitted_post_value($champ);
180 }
181 }
182
183 /**
184 * TRIGGER - triggermodifierapres.
185 *
186 * @return boolean
187 */
188 function triggermodifierapres($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
189 $this->addToLog(__METHOD__."(): start", EXTRA_VERBOSE_MODE);
190 parent::triggermodifierapres($id, $dnu1, $val);
191 // Supprime toutes les transitions liées à l'état
192 $this->deleteAllTransitionEtat($this->valF['etat']);
193 // Récupère les données du select multiple
194 $evenements = $this->getPostedValues('evenement');
195 // Ne traite les données que s'il y en a et qu'elles sont correctes
196 if (is_array($evenements) && count($evenements) > 0) {
197 $nb_tr = 0;
198 // Va créer autant de transition que d'événements choisis
199 foreach ($evenements as $value) {
200 // Test si la valeur par défaut est sélectionnée
201 if ($value != "") {
202 //Données
203 $donnees = array(
204 'etat' => $this->valF['etat'],
205 'evenement' => $value
206 );
207 //Ajoute une nouvelle transition
208 $this->addTransition($donnees);
209 $nb_tr++;
210 }
211 }
212 //Message de confirmation de création de(s) transition(s).
213 if ($nb_tr > 0) {
214 $this->addToMessage(_("Mise a jour des liaisons avec transition realisee avec succes."));
215 }
216 }
217 }
218
219 //Ajoute une nouvelle transition
220 // $data array de données
221 function addTransition($data) {
222 $transition = $this->f->get_inst__om_dbform(array(
223 "obj" => "transition",
224 "idx" => "]",
225 ));
226 $transition->valF = array();
227
228 //Données
229 $valTransi['transition']=NULL;
230
231 if ( is_array($data) ){
232
233 foreach ($data as $key => $value) {
234
235 $valTransi[$key]=$value;
236 }
237 }
238
239 $transition->ajouter($valTransi);
240 }
241
242 //Supprime toutes les transitions liées à un état
243 function deleteAllTransitionEtat($id) {
244
245 //Création de la requête
246 $sql = "DELETE FROM ".DB_PREFIXE."transition WHERE etat like '$id'";
247
248 //Exécution de la requête
249 $res = $this->f->db->query($sql);
250
251 //Ajout au log
252 $this->f->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE);
253 if ( database::isError($res)){
254 die();
255 }
256 }
257
258 /**
259 * TRIGGER - triggersupprimer.
260 *
261 * @return boolean
262 */
263 function triggersupprimer($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
264 $this->addToLog(__METHOD__."(): start", EXTRA_VERBOSE_MODE);
265 // Supprime toutes les transitions liées à l'état
266 $this->deleteAllTransitionEtat($id);
267 }
268
269 /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
270 * transition qui sera supprimé juste après*/
271 function cleSecondaire($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
272
273 // Verification de la cle secondaire : dossier
274 $this->rechercheTable($dnu1, "dossier", "etat", $id);
275 // Verification de la cle secondaire : evenement
276 $this->rechercheTable($dnu1, "evenement", "etat", $id);
277 // Verification de la cle secondaire : instruction
278 $this->rechercheTable($dnu1, "instruction", "etat", $id);
279 }
280
281 /**
282 * SETTER_FORM - setVal (setVal).
283 *
284 * @return void
285 */
286 function setVal(&$form, $maj, $validation, &$dnu1 = null, $dnu2 = null) {
287 parent::setVal($form, $maj, $validation);
288 //
289 if ($maj == 2 && $validation == 1) {
290 // Affichage des evenement anciennement liés
291 $form->setVal("evenement", $this->val[3]);
292 }
293 }
294 }
295
296

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26