/[openfoncier]/branches/4.13.0-sitadel-annulation/obj/etat.class.php
ViewVC logotype

Annotation of /branches/4.13.0-sitadel-annulation/obj/etat.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8961 - (hide annotations)
Thu Oct 17 13:23:04 2019 UTC (5 years, 3 months ago) by softime
Original Path: branches/4.13.0-develop/obj/etat.class.php
File size: 9564 byte(s)
* Création de la branche d'intégration 4.13.0-develop sur la base de la branche d'intégration 4.12.0-develop

1 mbroquet 3730 <?php
2     /**
3 nhaye 5254 * DBFORM - 'etat' - Surcharge gen.
4 mbroquet 3730 *
5 nhaye 5254 * Ce script permet de définir la classe 'etat'.
6     *
7     * @package openads
8     * @version SVN : $Id$
9 mbroquet 3730 */
10    
11     require_once "../gen/obj/etat.class.php";
12    
13     class etat extends etat_gen {
14    
15 softime 8722 /**
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 mbroquet 3730 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 softime 8722 /**
92     * SETTER_FORM - setSelect.
93     *
94     * @return void
95     */
96     function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
97     parent::setSelect($form, $maj);
98 mbroquet 3730 // evenement
99 softime 8722 $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 mbroquet 3730 // 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 softime 8722 /**
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 mbroquet 3730 $evenements = $this->getPostedValues('evenement');
143 softime 8722 // 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 mbroquet 3730 //Données
151     $donnees = array(
152     'etat' => $this->valF['etat'],
153     'evenement' => $value
154     );
155     //Ajoute une nouvelle transition
156 softime 8722 $this->addTransition($donnees);
157 mbroquet 3730 $nb_tr++;
158     }
159     }
160 softime 8722 // Message de confirmation de création de(s) transition(s).
161     if ($nb_tr > 0) {
162     if ($nb_tr == 1) {
163 mbroquet 3730 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle transition
164     realisee avec succes."));
165 softime 8722 } else {
166 mbroquet 3730 $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 softime 8722
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 mbroquet 3730 $evenements = $this->getPostedValues('evenement');
195 softime 8722 // 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 mbroquet 3730 //Données
203     $donnees = array(
204     'etat' => $this->valF['etat'],
205     'evenement' => $value
206     );
207     //Ajoute une nouvelle transition
208 softime 8722 $this->addTransition($donnees);
209 mbroquet 3730 $nb_tr++;
210     }
211     }
212     //Message de confirmation de création de(s) transition(s).
213 softime 8722 if ($nb_tr > 0) {
214 mbroquet 3730 $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 softime 8722 function addTransition($data) {
222 softime 7996 $transition = $this->f->get_inst__om_dbform(array(
223     "obj" => "transition",
224     "idx" => "]",
225     ));
226 mbroquet 3730 $transition->valF = "";
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 softime 8722 $transition->ajouter($valTransi);
240 mbroquet 3730 }
241    
242     //Supprime toutes les transitions liées à un état
243 softime 8722 function deleteAllTransitionEtat($id) {
244 mbroquet 3730
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 softime 8722 $res = $this->f->db->query($sql);
250 mbroquet 3730
251     //Ajout au log
252 softime 8722 $this->f->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE);
253 mbroquet 3730 if ( database::isError($res)){
254     die();
255     }
256     }
257    
258 softime 8722 /**
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 mbroquet 3730 }
268 softime 8722
269 mbroquet 3730 /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
270     * transition qui sera supprimé juste après*/
271 softime 8722 function cleSecondaire($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
272 mbroquet 3730
273     // Verification de la cle secondaire : dossier
274 softime 8722 $this->rechercheTable($dnu1, "dossier", "etat", $id);
275 mbroquet 3730 // Verification de la cle secondaire : evenement
276 softime 8722 $this->rechercheTable($dnu1, "evenement", "etat", $id);
277 mbroquet 3730 // Verification de la cle secondaire : instruction
278 softime 8722 $this->rechercheTable($dnu1, "instruction", "etat", $id);
279 mbroquet 3730 }
280 softime 8722
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 mbroquet 3730 }
293     }
294     }
295    
296 softime 7996

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26