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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1544 - (show annotations)
Thu Mar 21 07:46:23 2013 UTC (11 years, 10 months ago) by fmichon
File size: 18401 byte(s)
Amélioration de l'interface de saisie d'un événement

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "../gen/obj/evenement.class.php";
11
12 class evenement extends evenement_gen {
13
14 function evenement($id, &$db, $debug) {
15 $this->constructeur($id, $db, $debug);
16 }
17
18 function setType(&$form, $maj) {
19 //
20 parent::setType($form, $maj);
21 // MODE AJOUTER et MODE MODIFIER
22 if ($maj == 0 || $maj == 1) {
23 //
24 $form->setType('accord_tacite', 'select');
25 $form->setType('delai_notification', 'select');
26 $form->setType('delai', 'select');
27 $form->setType('lettretype', 'select');
28 $form->setType('consultation', 'checkbox');
29 $form->setType('dossier_instruction_type','select_multiple');
30 $form->setType('type','select');
31 $form->setType('etats_depuis_lequel_l_evenement_est_disponible','select_multiple');
32 }
33 // MODE SUPPRIMER et MODE CONSULTER
34 if ($maj == 2 || $maj == 3) {
35 //
36 $form->setType('dossier_instruction_type','select_multiple_static');
37 $form->setType('etats_depuis_lequel_l_evenement_est_disponible','select_multiple_static');
38 }
39 }
40
41 function setSelect(&$form, $maj, $db, $debug) {
42 //
43 parent::setSelect($form, $maj, $db, $debug);
44 //
45 if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php")) {
46 include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
47 }
48 //
49 if($maj<2){
50 // lettretype
51
52 $contenu=array();
53 $res = $db->query($sql_om_lettretype);
54 if (database::isError($res))
55 die($res->getMessage().$sql_om_lettretype);
56 else{
57 if ($debug == 1)
58 echo " la requete ".$sql_om_lettretype." est executee<br>";
59 $contenu[0][0]='';
60 $contenu[1][0]=_('choisir')."&nbsp;"._('lettretype');
61 $k=1;
62 while ($row=& $res->fetchRow()){
63 $contenu[0][$k]=$row[0];
64 $contenu[1][$k]=$row[1];
65 $k++;
66 }
67 $form->setSelect('lettretype',$contenu);
68 }// fin error db
69 }
70 // accord_tacite
71 $contenu=array();
72 $contenu[0]=array('Non','Oui');
73 $contenu[1]=array($this->lang('Non'),$this->lang('Oui'));
74 $form->setSelect("accord_tacite",$contenu);
75 // delai_notification
76 $contenu=array();
77 $contenu[0]=array('0','1');
78 $contenu[1]=array('sans','1 '.$this->lang("mois"));
79 $form->setSelect("delai_notification",$contenu);
80 // delai
81 $contenu=array();
82 $contenu[0]=array('0','1','2','3','4','5','6','7','8','9','10','11','12','18','24');
83 $contenu[1]=array('sans',
84 '1 '._("mois"),
85 '2 '._("mois"),
86 '3 '._("mois"),
87 '4 '._("mois"),
88 '5 '._("mois"),
89 '6 '._("mois"),
90 '7 '._("mois"),
91 '8 '._("mois"),
92 '9 '._("mois"),
93 '10 '._("mois"),
94 '11 '._("mois"),
95 '12 '._("mois"),
96 '18 '._("mois"),
97 '24 '._("mois")
98 );
99 $form->setSelect("delai",$contenu);
100
101 // type de l'événement
102 $contenu=array();
103 $contenu[0]=array('', 'arrete', 'incompletude', 'majoration_delai', );
104 $contenu[1]=array(_('choisir type'), _('arrete'), _('incompletude'), _('majoration_delai'),);
105 $form->setSelect("type",$contenu);
106
107 // dossier_instruction_type
108 $this->init_select($form, $db, $maj, $debug, "dossier_instruction_type",
109 $sql_dossier_instruction_type, $sql_dossier_instruction_type_by_id, false, true);
110 // dossier_instruction_type
111 $this->init_select($form, $db, $maj, $debug, "etats_depuis_lequel_l_evenement_est_disponible",
112 $sql_etats_depuis_lequel_l_evenement_est_disponible, $sql_etats_depuis_lequel_l_evenement_est_disponible_by_id, false, true);
113 }
114
115 function setTaille(&$form, $maj) {
116 //
117 parent::setTaille($form, $maj);
118 //
119 $form->setTaille("dossier_instruction_type", 10);
120 $form->setTaille("etats_depuis_lequel_l_evenement_est_disponible", 10);
121 }
122
123 function setMax(&$form, $maj) {
124 //
125 parent::setMax($form, $maj);
126 //
127 $form->setMax("dossier_instruction_type", 5);
128 $form->setMax("etats_depuis_lequel_l_evenement_est_disponible", 5);
129 }
130
131 function setLib(&$form, $maj) {
132 //
133 parent::setLib($form, $maj);
134 //
135 $form->setLib("dossier_instruction_type", _("type(s) de DI concerne(s)"));
136 $form->setLib("etats_depuis_lequel_l_evenement_est_disponible", _("etat(s) source(s)"));
137 }
138
139 function setLayout(&$form, $maj) {
140 //
141 parent::setLayout($form, $maj);
142 //
143 $form->setFieldset("evenement", "D", _("Evenement"));
144 $form->setFieldset("type", "F");
145 //
146 $form->setFieldset("etats_depuis_lequel_l_evenement_est_disponible", "D", _("Filtre de selection"));
147 $form->setBloc("etats_depuis_lequel_l_evenement_est_disponible", "D", _("Filtres pour la possibilité de sélection a l'ajout d'un evenement d'instruction"));
148 $form->setBloc("dossier_instruction_type", "F");
149 $form->setBloc("restriction", "DF", _("Filtre supplementaire à l'enregistrement de l'evenement d'instruction"));
150 $form->setFieldset("restriction", "F");
151 //
152 $form->setFieldset("action", "D", _("Action"));
153 $form->setBloc("action", "DF");
154 $form->setBloc("etat", "D", _("Parametres de l'action"));
155 $form->setBloc("avis_decision", "F");
156 $form->setFieldset("avis_decision", "F");
157 //
158 $form->setFieldset("lettretype", "D", _("Edition"));
159 $form->setFieldset("consultation", "F");
160 }
161
162 //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
163 function triggerajouterapres($id,&$db,$val,$DEBUG) {
164 //
165 parent::triggerajouterapres($id,$db,$val,$DEBUG);
166
167 /**
168 * LIEN ETAT
169 */
170 // Récupération des données du select multiple
171 $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
172 // Ne traite les données que s'il y en a et qu'elles sont correctes
173 if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
174 && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
175 // Initialisation
176 $nb_liens_etat = 0;
177 // Boucle sur la liste des états sélectionnés
178 foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
179 // Test si la valeur par défaut est sélectionnée
180 if ($value != "") {
181 //
182 $donnees = array(
183 'evenement' => $this->valF['evenement'],
184 'etat' => $value
185 );
186 // On ajoute l'enregistrement
187 $this->ajouter_lien_etat_evenement($donnees);
188 // On compte le nombre d'éléments ajoutés
189 $nb_liens_etat++;
190 }
191 }
192 // Message de confirmation
193 if ($nb_liens_etat > 0) {
194 if ($nb_liens_etat == 1 ){
195 $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelle liaison realisee avec succes."));
196 } else{
197 $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelles liaisons realisees avec succes."));
198 }
199 }
200 }
201
202 /**
203 * LIEN DI TYPE
204 */
205 //Récupère les données du select multiple
206 $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
207 //Ne traite les données que s'il y en a et qu'elles sont correctes
208 if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
209
210 $nb_tr = 0;
211 /* Va créer autant de lien_dossier_instruction_type_evenement
212 * que de dossier_instruction_type choisis */
213 foreach( $dossier_instruction_type as $value ){
214
215 //Test si la valeur par défaut est sélectionnée
216 if ( $value != "" ) {
217
218 //Données
219 $donnees = array(
220 'evenement' => $this->valF['evenement'],
221 'dossier_instruction_type' => $value
222 );
223
224 //Ajoute un nouveau lien_dossier_instruction_type_evenement
225 $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
226
227 $nb_tr++;
228 }
229 }
230
231 //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement(s).
232 if ( $nb_tr > 0 ){
233
234 if ( $nb_tr == 1 ){
235
236 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle liaison
237 realisee avec succes."));
238 }
239 else{
240
241 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles liaisions
242 realisee avec succes."));
243 }
244 }
245 }
246
247 }
248
249 //Fonction générique permettant de récupérer les données d'un champ postées
250 function getPostedValues($champ) {
251
252 // Récupération des demandeurs dans POST
253 if (isset($_POST[$champ]) ) {
254
255 return $_POST[$champ];
256 }
257 }
258
259 //Modification des liens
260 function triggerModifierApres($id, &$db, $val, $DEBUG){
261 //
262 parent::triggerModifierApres($id, $db, $val, $DEBUG);
263
264 /**
265 * LIEN ETAT
266 */
267 // Suppression de tous les liens de la table transition (table lien
268 // entre etat et evenement)
269 $this->supprimer_liens_etat_evenement($this->valF['evenement']);
270 // Récupération des données du select multiple
271 $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
272 // Ne traite les données que s'il y en a et qu'elles sont correctes
273 if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
274 && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
275 // Initialisation
276 $nb_liens_etat = 0;
277 // Boucle sur la liste des états sélectionnés
278 foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
279 // Test si la valeur par défaut est sélectionnée
280 if ($value != "") {
281 //
282 $donnees = array(
283 'evenement' => $this->valF['evenement'],
284 'etat' => $value
285 );
286 // On ajoute l'enregistrement
287 $this->ajouter_lien_etat_evenement($donnees);
288 // On compte le nombre d'éléments ajoutés
289 $nb_liens_etat++;
290 }
291 }
292 // Message de confirmation
293 if ($nb_liens_etat > 0) {
294 $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
295 }
296 }
297
298 /**
299 * LIEN DI TYPE
300 */
301 //Supprime toutes les liaisions liées à l'événement
302 $this->deleteAllLienDossierInstructionTypeEvenementEvenement($this->valF['evenement'], $db, $DEBUG);
303
304 //Récupère les données du select multiple
305 $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
306
307 //Ne traite les données que s'il y en a et qu'elles sont correctes
308 if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
309
310 $nb_tr = 0;
311 //Va créer autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type choisis
312 foreach( $dossier_instruction_type as $value ){
313
314 //Test si la valeur par défaut est sélectionnée
315 if ( $value != "" ) {
316
317 //Données
318 $donnees = array(
319 'evenement' => $this->valF['evenement'],
320 'dossier_instruction_type' => $value
321 );
322
323 //Ajoute un nouveau lien_dossier_instruction_type_evenement
324 $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
325
326 $nb_tr++;
327 }
328 }
329
330 //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement.
331 if ( $nb_tr > 0 ){
332
333 $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
334 }
335 }
336 }
337
338 /**
339 * Ajout d'un lien dans la table transition (table lien entre etat et
340 * evenement)
341 */
342 function ajouter_lien_etat_evenement($data) {
343 //
344 require_once '../obj/transition.class.php';
345 $lien_etat_evenement = new transition("]", $this->db, false);
346 // ???
347 $lien_etat_evenement->valF = "";
348 $val['transition'] = NULL;
349 //
350 if (is_array($data)) {
351 foreach ($data as $key => $value) {
352 $val[$key]=$value;
353 }
354 }
355 //
356 $lien_etat_evenement->ajouter($val, $this->db, false);
357 }
358
359 /**
360 * Suppression de tous les liens de la table transition (table lien entre
361 * etat etevenement)
362 */
363 function supprimer_liens_etat_evenement($id) {
364 // Suppression de tous les enregistrements correspondants à l'id de
365 // l'événement
366 $sql = "DELETE
367 FROM ".DB_PREFIXE."transition
368 WHERE evenement=".$id;
369 $res = $this->db->query($sql);
370 $this->f->addToLog("supprimer_liens_etat_evenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
371 $this->f->isDatabaseError();
372 }
373
374 //Ajoute un nouveau lien_dossier_instruction_type_evenement
375 // $data array de données
376 function addLienDossierInstructionType($data, $db, $DEBUG){
377
378 require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
379
380 $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
381 $lien_dossier_instruction_type_evenement->valF = "";
382
383 //Données
384 $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
385
386 if ( is_array($data) ){
387
388 foreach ($data as $key => $value) {
389
390 $vallien_dossier_instruction_type_evenement[$key]=$value;
391 }
392 }
393
394 $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
395 }
396
397 //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
398 function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
399
400 //Création de la requête
401 $sql = "DELETE FROM
402 ".DB_PREFIXE."lien_dossier_instruction_type_evenement
403 WHERE
404 evenement = $id";
405
406 //Exécution de la requête
407 $res = $db->query($sql);
408
409 //Ajout au log
410 $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
411 $this->f->isDatabaseError();
412 }
413
414 function triggersupprimer($id, &$db, $val, $DEBUG){
415 // Suppression de tous les liens de la table transition (table lien
416 // entre etat et evenement)
417 $this->supprimer_liens_etat_evenement($id);
418 //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
419 $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
420 }
421
422 /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
423 * lien_dossier_instruction_type_evenement qui sera supprimé juste après ni avec la table transition*/
424 function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
425
426 // Verification de la cle secondaire : bible
427 $this->rechercheTable($db, "bible", "evenement", $id);
428 // Verification de la cle secondaire : demande_type
429 $this->rechercheTable($db, "demande_type", "evenement", $id);
430 // Verification de la cle secondaire : evenement
431 $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
432 // Verification de la cle secondaire : evenement
433 $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
434 // Verification de la cle secondaire : instruction
435 $this->rechercheTable($db, "instruction", "evenement", $id);
436 // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
437 $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
438 //// Verification de la cle secondaire : transition
439 //$this->rechercheTable($db, "transition", "evenement", $id);
440 }
441
442 //Affichage des dossier_instruction_type anciennement liés
443 function setVal(&$form, $maj, $validation, &$db) {
444
445 parent::setVal($form, $maj, $validation, $db);
446
447 if($maj == 2 && $validation == 1 ) {
448 $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
449 }
450 }
451
452 }// fin classe
453 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26