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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1731 - (hide annotations)
Fri Apr 19 10:15:48 2013 UTC (11 years, 9 months ago) by nhaye
File size: 18492 byte(s)
Gestion de la sortie du mode "incomplétude", ajout de regles pour mettre à jour les champs date_limite_incompletude et delai_incompletude

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 1731 $contenu[0]=array('', 'arrete', 'incompletude', 'majoration_delai', 'retour');
108     $contenu[1]=array(_('choisir type'), _('arrete'), _('incompletude'), _('majoration_delai'), _('retour de pieces'));
109 fmichon 1503 $form->setSelect("type",$contenu);
110    
111 vpihour 1133 // dossier_instruction_type
112     $this->init_select($form, $db, $maj, $debug, "dossier_instruction_type",
113 fmichon 1540 $sql_dossier_instruction_type, $sql_dossier_instruction_type_by_id, false, true);
114     // dossier_instruction_type
115     $this->init_select($form, $db, $maj, $debug, "etats_depuis_lequel_l_evenement_est_disponible",
116     $sql_etats_depuis_lequel_l_evenement_est_disponible, $sql_etats_depuis_lequel_l_evenement_est_disponible_by_id, false, true);
117 fraynaud 7 }
118 fmichon 1540
119 vpihour 1133 function setTaille(&$form, $maj) {
120 fmichon 1540 //
121 vpihour 1133 parent::setTaille($form, $maj);
122 fmichon 1540 //
123     $form->setTaille("dossier_instruction_type", 10);
124     $form->setTaille("etats_depuis_lequel_l_evenement_est_disponible", 10);
125 vpihour 1133 }
126 fmichon 1540
127 vpihour 1133 function setMax(&$form, $maj) {
128 fmichon 1540 //
129 vpihour 1133 parent::setMax($form, $maj);
130 fmichon 1540 //
131 vpihour 1133 $form->setMax("dossier_instruction_type", 5);
132 fmichon 1540 $form->setMax("etats_depuis_lequel_l_evenement_est_disponible", 5);
133 vpihour 1133 }
134 fraynaud 7
135 fmichon 1540 function setLib(&$form, $maj) {
136     //
137     parent::setLib($form, $maj);
138     //
139     $form->setLib("dossier_instruction_type", _("type(s) de DI concerne(s)"));
140     $form->setLib("etats_depuis_lequel_l_evenement_est_disponible", _("etat(s) source(s)"));
141     }
142    
143 fmichon 1543 function setLayout(&$form, $maj) {
144     //
145     parent::setLayout($form, $maj);
146     //
147     $form->setFieldset("evenement", "D", _("Evenement"));
148     $form->setFieldset("type", "F");
149     //
150     $form->setFieldset("etats_depuis_lequel_l_evenement_est_disponible", "D", _("Filtre de selection"));
151 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"));
152 fmichon 1544 $form->setBloc("dossier_instruction_type", "F");
153 nhaye 1581 $form->setBloc("restriction", "DF", _("Filtre supplementaire a l'enregistrement de l'evenement d'instruction"));
154 fmichon 1544 $form->setFieldset("restriction", "F");
155 fmichon 1543 //
156     $form->setFieldset("action", "D", _("Action"));
157     $form->setBloc("action", "DF");
158     $form->setBloc("etat", "D", _("Parametres de l'action"));
159     $form->setBloc("avis_decision", "F");
160     $form->setFieldset("avis_decision", "F");
161     //
162     $form->setFieldset("lettretype", "D", _("Edition"));
163     $form->setFieldset("consultation", "F");
164     }
165    
166 vpihour 1133 //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
167     function triggerajouterapres($id,&$db,$val,$DEBUG) {
168 fmichon 1540 //
169 vpihour 1133 parent::triggerajouterapres($id,$db,$val,$DEBUG);
170 atreal 312
171 fmichon 1540 /**
172     * LIEN ETAT
173     */
174     // Récupération des données du select multiple
175     $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
176     // Ne traite les données que s'il y en a et qu'elles sont correctes
177     if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
178     && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
179     // Initialisation
180     $nb_liens_etat = 0;
181     // Boucle sur la liste des états sélectionnés
182     foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
183     // Test si la valeur par défaut est sélectionnée
184     if ($value != "") {
185     //
186     $donnees = array(
187     'evenement' => $this->valF['evenement'],
188     'etat' => $value
189     );
190     // On ajoute l'enregistrement
191     $this->ajouter_lien_etat_evenement($donnees);
192     // On compte le nombre d'éléments ajoutés
193     $nb_liens_etat++;
194     }
195     }
196     // Message de confirmation
197     if ($nb_liens_etat > 0) {
198     if ($nb_liens_etat == 1 ){
199     $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelle liaison realisee avec succes."));
200     } else{
201     $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelles liaisons realisees avec succes."));
202     }
203     }
204     }
205    
206     /**
207     * LIEN DI TYPE
208     */
209 vpihour 1133 //Récupère les données du select multiple
210     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
211     //Ne traite les données que s'il y en a et qu'elles sont correctes
212     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
213    
214     $nb_tr = 0;
215 vpihour 1134 /* Va créer autant de lien_dossier_instruction_type_evenement
216     * que de dossier_instruction_type choisis */
217 vpihour 1133 foreach( $dossier_instruction_type as $value ){
218    
219     //Test si la valeur par défaut est sélectionnée
220     if ( $value != "" ) {
221    
222     //Données
223     $donnees = array(
224     'evenement' => $this->valF['evenement'],
225     'dossier_instruction_type' => $value
226     );
227    
228 vpihour 1134 //Ajoute un nouveau lien_dossier_instruction_type_evenement
229     $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
230 vpihour 1133
231     $nb_tr++;
232     }
233     }
234    
235     //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement(s).
236     if ( $nb_tr > 0 ){
237    
238     if ( $nb_tr == 1 ){
239    
240 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle liaison
241 vpihour 1135 realisee avec succes."));
242 vpihour 1133 }
243     else{
244    
245 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles liaisions
246 vpihour 1135 realisee avec succes."));
247 vpihour 1133 }
248     }
249     }
250    
251     }
252    
253     //Fonction générique permettant de récupérer les données d'un champ postées
254     function getPostedValues($champ) {
255    
256     // Récupération des demandeurs dans POST
257     if (isset($_POST[$champ]) ) {
258    
259     return $_POST[$champ];
260     }
261     }
262    
263     //Modification des liens
264     function triggerModifierApres($id, &$db, $val, $DEBUG){
265 fmichon 1540 //
266 vpihour 1133 parent::triggerModifierApres($id, $db, $val, $DEBUG);
267 fmichon 1540
268     /**
269     * LIEN ETAT
270     */
271     // Suppression de tous les liens de la table transition (table lien
272     // entre etat et evenement)
273     $this->supprimer_liens_etat_evenement($this->valF['evenement']);
274     // Récupération des données du select multiple
275     $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
276     // Ne traite les données que s'il y en a et qu'elles sont correctes
277     if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
278     && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
279     // Initialisation
280     $nb_liens_etat = 0;
281     // Boucle sur la liste des états sélectionnés
282     foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
283     // Test si la valeur par défaut est sélectionnée
284     if ($value != "") {
285     //
286     $donnees = array(
287     'evenement' => $this->valF['evenement'],
288     'etat' => $value
289     );
290     // On ajoute l'enregistrement
291     $this->ajouter_lien_etat_evenement($donnees);
292     // On compte le nombre d'éléments ajoutés
293     $nb_liens_etat++;
294     }
295     }
296     // Message de confirmation
297     if ($nb_liens_etat > 0) {
298     $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
299     }
300     }
301    
302     /**
303     * LIEN DI TYPE
304     */
305 vpihour 1133 //Supprime toutes les liaisions liées à l'événement
306     $this->deleteAllLienDossierInstructionTypeEvenementEvenement($this->valF['evenement'], $db, $DEBUG);
307    
308     //Récupère les données du select multiple
309     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
310    
311     //Ne traite les données que s'il y en a et qu'elles sont correctes
312     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
313    
314     $nb_tr = 0;
315     //Va créer autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type choisis
316     foreach( $dossier_instruction_type as $value ){
317    
318     //Test si la valeur par défaut est sélectionnée
319     if ( $value != "" ) {
320    
321     //Données
322     $donnees = array(
323     'evenement' => $this->valF['evenement'],
324     'dossier_instruction_type' => $value
325     );
326    
327 vpihour 1134 //Ajoute un nouveau lien_dossier_instruction_type_evenement
328     $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
329 vpihour 1133
330     $nb_tr++;
331     }
332     }
333    
334 vpihour 1134 //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement.
335 vpihour 1133 if ( $nb_tr > 0 ){
336    
337 fmichon 1159 $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
338 vpihour 1133 }
339     }
340     }
341    
342 fmichon 1540 /**
343     * Ajout d'un lien dans la table transition (table lien entre etat et
344     * evenement)
345     */
346     function ajouter_lien_etat_evenement($data) {
347     //
348     require_once '../obj/transition.class.php';
349     $lien_etat_evenement = new transition("]", $this->db, false);
350     // ???
351     $lien_etat_evenement->valF = "";
352     $val['transition'] = NULL;
353     //
354     if (is_array($data)) {
355     foreach ($data as $key => $value) {
356     $val[$key]=$value;
357     }
358     }
359     //
360     $lien_etat_evenement->ajouter($val, $this->db, false);
361     }
362    
363     /**
364     * Suppression de tous les liens de la table transition (table lien entre
365     * etat etevenement)
366     */
367     function supprimer_liens_etat_evenement($id) {
368     // Suppression de tous les enregistrements correspondants à l'id de
369     // l'événement
370     $sql = "DELETE
371     FROM ".DB_PREFIXE."transition
372     WHERE evenement=".$id;
373     $res = $this->db->query($sql);
374     $this->f->addToLog("supprimer_liens_etat_evenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
375     $this->f->isDatabaseError();
376     }
377    
378 vpihour 1133 //Ajoute un nouveau lien_dossier_instruction_type_evenement
379     // $data array de données
380 vpihour 1134 function addLienDossierInstructionType($data, $db, $DEBUG){
381 vpihour 1133
382     require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
383    
384     $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
385     $lien_dossier_instruction_type_evenement->valF = "";
386    
387     //Données
388     $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
389    
390     if ( is_array($data) ){
391    
392     foreach ($data as $key => $value) {
393    
394     $vallien_dossier_instruction_type_evenement[$key]=$value;
395     }
396     }
397    
398     $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
399     }
400    
401     //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
402     function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
403    
404     //Création de la requête
405     $sql = "DELETE FROM
406     ".DB_PREFIXE."lien_dossier_instruction_type_evenement
407     WHERE
408     evenement = $id";
409    
410     //Exécution de la requête
411     $res = $db->query($sql);
412    
413     //Ajout au log
414     $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
415     $this->f->isDatabaseError();
416     }
417    
418     function triggersupprimer($id, &$db, $val, $DEBUG){
419 fmichon 1540 // Suppression de tous les liens de la table transition (table lien
420     // entre etat et evenement)
421     $this->supprimer_liens_etat_evenement($id);
422 vpihour 1134 //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
423 vpihour 1133 $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
424     }
425    
426     /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
427 fmichon 1540 * lien_dossier_instruction_type_evenement qui sera supprimé juste après ni avec la table transition*/
428 vpihour 1133 function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
429    
430     // Verification de la cle secondaire : bible
431     $this->rechercheTable($db, "bible", "evenement", $id);
432     // Verification de la cle secondaire : demande_type
433     $this->rechercheTable($db, "demande_type", "evenement", $id);
434     // Verification de la cle secondaire : evenement
435     $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
436     // Verification de la cle secondaire : evenement
437     $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
438     // Verification de la cle secondaire : instruction
439     $this->rechercheTable($db, "instruction", "evenement", $id);
440     // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
441     $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
442 fmichon 1540 //// Verification de la cle secondaire : transition
443     //$this->rechercheTable($db, "transition", "evenement", $id);
444 vpihour 1133 }
445    
446 vpihour 1134 //Affichage des dossier_instruction_type anciennement liés
447 vpihour 1133 function setVal(&$form, $maj, $validation, &$db) {
448    
449     parent::setVal($form, $maj, $validation, $db);
450    
451     if($maj == 2 && $validation == 1 ) {
452     $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
453     }
454     }
455    
456 fmichon 1549 }
457    
458     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26