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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1133 - (hide annotations)
Mon Dec 31 15:05:55 2012 UTC (12 years, 1 month ago) by vpihour
File size: 11180 byte(s)
Modification de l'ergonomie du formulaire "evenement". Ajout, suppression et modification automatique des lien_dossier_instruction_type_evenement par ce formulaire

1 fraynaud 3 <?php
2 atreal 312 //$Id$
3     //gen openMairie le 10/02/2011 20:33
4 fraynaud 3 require_once ("../gen/obj/evenement.class.php");
5    
6     class evenement extends evenement_gen {
7    
8 fraynaud 7 function evenement($id,&$db,$debug) {
9     $this->constructeur($id,$db,$debug);
10     }// fin constructeur
11 fraynaud 3
12 fraynaud 7 function setType(&$form,$maj) {
13     parent::setType($form,$maj);
14     if ($maj < 2) {
15     //$form->setType('fin_instruction', 'select');
16     $form->setType('accord_tacite', 'select');
17     $form->setType('delai_notification', 'select');
18     $form->setType('delai', 'select');
19     $form->setType('lettretype', 'select');
20 nhaye 433 $form->setType('consultation', 'checkbox');
21 vpihour 1133 $form->setType('dossier_instruction_type','select_multiple');
22 fraynaud 7 }
23 vpihour 1133
24     if ($maj==2){ //supprimer
25    
26     $form->setType('dossier_instruction_type','select_multiple_static');
27     }//fin supprimer
28     if ($maj==3){ //consulter
29    
30     $form->setType('dossier_instruction_type','select_multiple_static');
31     }//fin consulter
32 fraynaud 7 }
33 atreal 312
34 fraynaud 7 function setSelect(&$form, $maj,$db,$debug) {
35 vpihour 1133
36     if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
37     include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
38    
39 fraynaud 7 parent::setSelect($form, $maj,$db,$debug);
40    
41 atreal 312 if($maj<2){
42     // lettretype
43 vpihour 1133
44 atreal 312 $contenu=array();
45     $res = $db->query($sql_om_lettretype);
46     if (database::isError($res))
47     die($res->getMessage().$sql_om_lettretype);
48     else{
49     if ($debug == 1)
50     echo " la requete ".$sql_om_lettretype." est executee<br>";
51     $contenu[0][0]='';
52     $contenu[1][0]=_('choisir')."&nbsp;"._('lettretype');
53     $k=1;
54     while ($row=& $res->fetchRow()){
55     $contenu[0][$k]=$row[0];
56     $contenu[1][$k]=$row[1];
57     $k++;
58     }
59     $form->setSelect('lettretype',$contenu);
60     }// fin error db
61 fraynaud 7 }
62     // accord_tacite
63     $contenu=array();
64     $contenu[0]=array('Non','Oui');
65     $contenu[1]=array($this->lang('Non'),$this->lang('Oui'));
66     $form->setSelect("accord_tacite",$contenu);
67     // delai_notification
68     $contenu=array();
69     $contenu[0]=array('0','1');
70     $contenu[1]=array('sans','1 '.$this->lang("mois"));
71     $form->setSelect("delai_notification",$contenu);
72     // delai
73     $contenu=array();
74     $contenu[0]=array('0','1','2','3','4','5','6','7','8','9','10','11','12','18','24');
75     $contenu[1]=array('sans',
76     '1 '._("mois"),
77     '2 '._("mois"),
78     '3 '._("mois"),
79     '4 '._("mois"),
80     '5 '._("mois"),
81     '6 '._("mois"),
82     '7 '._("mois"),
83     '8 '._("mois"),
84     '9 '._("mois"),
85     '10 '._("mois"),
86     '11 '._("mois"),
87     '12 '._("mois"),
88     '18 '._("mois"),
89     '24 '._("mois")
90 atreal 312 );
91 fraynaud 7 $form->setSelect("delai",$contenu);
92 vpihour 1133
93     // dossier_instruction_type
94     $this->init_select($form, $db, $maj, $debug, "dossier_instruction_type",
95     $sql_dossier_instruction_type, $sql_dossier_instruction_type_by_id, false);
96 fraynaud 7 }
97    
98 vpihour 1133 function setTaille(&$form, $maj) {
99    
100     parent::setTaille($form, $maj);
101     $form->setTaille("dossier_instruction_type", 5);
102     }
103    
104     function setMax(&$form, $maj) {
105    
106     parent::setMax($form, $maj);
107     $form->setMax("dossier_instruction_type", 5);
108     }
109 fraynaud 7
110 vpihour 1133 //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
111     function triggerajouterapres($id,&$db,$val,$DEBUG) {
112    
113     parent::triggerajouterapres($id,$db,$val,$DEBUG);
114 atreal 312
115 vpihour 1133 //Récupère les données du select multiple
116     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
117    
118     //Ne traite les données que s'il y en a et qu'elles sont correctes
119     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
120    
121     $nb_tr = 0;
122     //Va créer autant de transition que d'événements choisis
123     foreach( $dossier_instruction_type as $value ){
124    
125     //Test si la valeur par défaut est sélectionnée
126     if ( $value != "" ) {
127    
128     //Données
129     $donnees = array(
130     'evenement' => $this->valF['evenement'],
131     'dossier_instruction_type' => $value
132     );
133    
134     //Ajoute une nouvelle transition
135     $this->addDossierInstructionType($donnees, $db, $DEBUG);
136    
137     $nb_tr++;
138     }
139     }
140    
141     //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement(s).
142     if ( $nb_tr > 0 ){
143    
144     if ( $nb_tr == 1 ){
145    
146     $this->addToMessage("Creation de $nb_tr nouvelle liaison
147     realisee avec succes.");
148     }
149     else{
150    
151     $this->addToMessage("Creation de $nb_tr nouvelles liaisions
152     realisee avec succes.");
153     }
154     }
155     }
156    
157     }
158    
159     //Fonction générique permettant de récupérer les données d'un champ postées
160     function getPostedValues($champ) {
161    
162     // Récupération des demandeurs dans POST
163     if (isset($_POST[$champ]) ) {
164    
165     return $_POST[$champ];
166     }
167     }
168    
169     //Modification des liens
170     function triggerModifierApres($id, &$db, $val, $DEBUG){
171    
172     parent::triggerModifierApres($id, $db, $val, $DEBUG);
173    
174     //Supprime toutes les liaisions liées à l'événement
175     $this->deleteAllLienDossierInstructionTypeEvenementEvenement($this->valF['evenement'], $db, $DEBUG);
176    
177     //Récupère les données du select multiple
178     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
179    
180     //Ne traite les données que s'il y en a et qu'elles sont correctes
181     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
182    
183     $nb_tr = 0;
184     //Va créer autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type choisis
185     foreach( $dossier_instruction_type as $value ){
186    
187     //Test si la valeur par défaut est sélectionnée
188     if ( $value != "" ) {
189    
190     //Données
191     $donnees = array(
192     'evenement' => $this->valF['evenement'],
193     'dossier_instruction_type' => $value
194     );
195    
196     //Ajoute une nouvelle transition
197     $this->addDossierInstructionType($donnees, $db, $DEBUG);
198    
199     $nb_tr++;
200     }
201     }
202    
203     //Message de confirmation de création de(s) transition(s).
204     if ( $nb_tr > 0 ){
205    
206     $this->addToMessage("Mise à jour des liaisons realisee avec succes.");
207     }
208     }
209     }
210    
211     //Ajoute un nouveau lien_dossier_instruction_type_evenement
212     // $data array de données
213     function addDossierInstructionType($data, $db, $DEBUG){
214    
215     require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
216    
217     $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
218     $lien_dossier_instruction_type_evenement->valF = "";
219    
220     //Données
221     $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
222    
223     if ( is_array($data) ){
224    
225     foreach ($data as $key => $value) {
226    
227     $vallien_dossier_instruction_type_evenement[$key]=$value;
228     }
229     }
230    
231     $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
232     }
233    
234     //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
235     function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
236    
237     //Création de la requête
238     $sql = "DELETE FROM
239     ".DB_PREFIXE."lien_dossier_instruction_type_evenement
240     WHERE
241     evenement = $id";
242    
243     //Exécution de la requête
244     $res = $db->query($sql);
245    
246     //Ajout au log
247     $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
248     $this->f->isDatabaseError();
249     }
250    
251     //Suppression de toutes les lien_dossier_instruction_type_evenement avec evenement
252     function triggersupprimer($id, &$db, $val, $DEBUG){
253    
254     //Supprime toutes les transitions liées à l'état
255     $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
256     }
257    
258     /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
259     * transition qui sera supprimé juste après*/
260     function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
261    
262     // Verification de la cle secondaire : bible
263     $this->rechercheTable($db, "bible", "evenement", $id);
264     // Verification de la cle secondaire : demande_type
265     $this->rechercheTable($db, "demande_type", "evenement", $id);
266     // Verification de la cle secondaire : evenement
267     $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
268     // Verification de la cle secondaire : evenement
269     $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
270     // Verification de la cle secondaire : instruction
271     $this->rechercheTable($db, "instruction", "evenement", $id);
272     // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
273     $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
274     // Verification de la cle secondaire : transition
275     $this->rechercheTable($db, "transition", "evenement", $id);
276     }
277    
278     function setVal(&$form, $maj, $validation, &$db) {
279    
280     parent::setVal($form, $maj, $validation, $db);
281    
282     if($maj == 2 && $validation == 1 ) {
283     $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
284     }
285     }
286    
287 fraynaud 3 }// fin classe
288     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26