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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2316 - (hide annotations)
Thu Sep 19 12:26:53 2013 UTC (11 years, 4 months ago) by nhaye
File size: 20596 byte(s)
Modification de l'ordre de tri des listes déroulantes dans l'application

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26