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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1538 - (hide 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 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 1134 //Ajout du type select multiple sur evenement
13 vpihour 1130 function setType(&$form,$maj) {
14    
15     parent::setType($form, $maj);
16    
17     //type
18     if ($maj==0){ //ajout
19 fmichon 1538 $form->setType('statut', 'select');
20 vpihour 1130 $form->setType('evenement','select_multiple');
21     }// fin ajout
22     if ($maj==1){ //modifier
23 fmichon 1538 $form->setType('statut', 'select');
24 vpihour 1130 $form->setType('evenement','select_multiple');
25     }// fin modifier
26     if ($maj==2){ //supprimer
27 fmichon 1538 $form->setType('statut', 'selectstatic');
28 vpihour 1130 $form->setType('evenement','select_multiple_static');
29     }//fin supprimer
30     if ($maj==3){ //consulter
31 fmichon 1538 $form->setType('statut', 'selectstatic');
32 vpihour 1130 $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 fmichon 1538
49     // Statut
50     $contenu = array(
51     0 => array('encours', 'cloture',),
52     1 => array(_('En cours'), _('Cloture'),)
53     );
54     $form->setSelect("statut",$contenu);
55 vpihour 1130 }
56    
57 vpihour 1134 //Nombre de evenement affiché
58 vpihour 1130 function setTaille(&$form, $maj) {
59    
60     parent::setTaille($form, $maj);
61     $form->setTaille("evenement", 5);
62     }
63    
64 vpihour 1134 //Nombre de evenement maximum
65 vpihour 1130 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 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle transition
108 vpihour 1135 realisee avec succes."));
109 vpihour 1130 }
110     else{
111    
112 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles transitions
113 vpihour 1135 realisee avec succes."));
114 vpihour 1130 }
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 fmichon 1159 $this->addToMessage(_("Mise a jour des liaisons avec transition realisee avec succes."));
168 vpihour 1130 }
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 vpihour 1134 //Affichage des evenement anciennement liés
229 vpihour 1130 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 fraynaud 4 }// fin classe
238     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26