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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1777 - (show annotations)
Tue Apr 23 10:37:14 2013 UTC (11 years, 9 months ago) by vpihour
File size: 18554 byte(s)
Correction des erreurs de base de données non gérées

1 <?php
2 /**
3 * Ce fichier contient la déclaration de la classe "evenement".
4 *
5 * @package openfoncier
6 * @version SVN : $Id$
7 */
8
9 //
10 require_once "../gen/obj/evenement.class.php";
11
12 /**
13 *
14 *
15 */
16 class evenement extends evenement_gen {
17
18 function evenement($id, &$db, $debug) {
19 $this->constructeur($id, $db, $debug);
20 }
21
22 function setType(&$form, $maj) {
23 //
24 parent::setType($form, $maj);
25 // MODE AJOUTER et MODE MODIFIER
26 if ($maj == 0 || $maj == 1) {
27 //
28 $form->setType('accord_tacite', 'select');
29 $form->setType('delai_notification', 'select');
30 $form->setType('delai', 'select');
31 $form->setType('lettretype', 'select');
32 $form->setType('consultation', 'checkbox');
33 $form->setType('dossier_instruction_type','select_multiple');
34 $form->setType('type','select');
35 $form->setType('etats_depuis_lequel_l_evenement_est_disponible','select_multiple');
36 }
37 // MODE SUPPRIMER et MODE CONSULTER
38 if ($maj == 2 || $maj == 3) {
39 //
40 $form->setType('dossier_instruction_type','select_multiple_static');
41 $form->setType('etats_depuis_lequel_l_evenement_est_disponible','select_multiple_static');
42 }
43 }
44
45 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 if($maj<2){
54 // lettretype
55
56 $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 }
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 );
103 $form->setSelect("delai",$contenu);
104
105 // type de l'événement
106 $contenu=array();
107 $contenu[0]=array('', 'arrete', 'incompletude', 'majoration_delai', 'retour');
108 $contenu[1]=array(_('choisir type'), _('arrete'), _('incompletude'), _('majoration_delai'), _('retour de pieces'));
109 $form->setSelect("type",$contenu);
110
111 // dossier_instruction_type
112 $this->init_select($form, $db, $maj, $debug, "dossier_instruction_type",
113 $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 }
118
119 function setTaille(&$form, $maj) {
120 //
121 parent::setTaille($form, $maj);
122 //
123 $form->setTaille("dossier_instruction_type", 10);
124 $form->setTaille("etats_depuis_lequel_l_evenement_est_disponible", 10);
125 }
126
127 function setMax(&$form, $maj) {
128 //
129 parent::setMax($form, $maj);
130 //
131 $form->setMax("dossier_instruction_type", 5);
132 $form->setMax("etats_depuis_lequel_l_evenement_est_disponible", 5);
133 }
134
135 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 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 $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 $form->setBloc("dossier_instruction_type", "F");
153 $form->setBloc("restriction", "DF", _("Filtre supplementaire a l'enregistrement de l'evenement d'instruction"));
154 $form->setFieldset("restriction", "F");
155 //
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 //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
167 function triggerajouterapres($id,&$db,$val,$DEBUG) {
168 //
169 parent::triggerajouterapres($id,$db,$val,$DEBUG);
170
171 /**
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 //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 /* Va créer autant de lien_dossier_instruction_type_evenement
216 * que de dossier_instruction_type choisis */
217 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 //Ajoute un nouveau lien_dossier_instruction_type_evenement
229 $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
230
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 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle liaison
241 realisee avec succes."));
242 }
243 else{
244
245 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles liaisions
246 realisee avec succes."));
247 }
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 //
266 parent::triggerModifierApres($id, $db, $val, $DEBUG);
267
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 //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 //Ajoute un nouveau lien_dossier_instruction_type_evenement
328 $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
329
330 $nb_tr++;
331 }
332 }
333
334 //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement.
335 if ( $nb_tr > 0 ){
336
337 $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
338 }
339 }
340 }
341
342 /**
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 if ( database::isError($res)){
376 die();
377 }
378 }
379
380 //Ajoute un nouveau lien_dossier_instruction_type_evenement
381 // $data array de données
382 function addLienDossierInstructionType($data, $db, $DEBUG){
383
384 require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
385
386 $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
387 $lien_dossier_instruction_type_evenement->valF = "";
388
389 //Données
390 $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
391
392 if ( is_array($data) ){
393
394 foreach ($data as $key => $value) {
395
396 $vallien_dossier_instruction_type_evenement[$key]=$value;
397 }
398 }
399
400 $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
401 }
402
403 //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
404 function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
405
406 //Création de la requête
407 $sql = "DELETE FROM
408 ".DB_PREFIXE."lien_dossier_instruction_type_evenement
409 WHERE
410 evenement = $id";
411
412 //Exécution de la requête
413 $res = $db->query($sql);
414
415 //Ajout au log
416 $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
417 if ( database::isError($res)){
418 die();
419 }
420 }
421
422 function triggersupprimer($id, &$db, $val, $DEBUG){
423 // Suppression de tous les liens de la table transition (table lien
424 // entre etat et evenement)
425 $this->supprimer_liens_etat_evenement($id);
426 //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
427 $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
428 }
429
430 /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
431 * lien_dossier_instruction_type_evenement qui sera supprimé juste après ni avec la table transition*/
432 function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
433
434 // Verification de la cle secondaire : bible
435 $this->rechercheTable($db, "bible", "evenement", $id);
436 // Verification de la cle secondaire : demande_type
437 $this->rechercheTable($db, "demande_type", "evenement", $id);
438 // Verification de la cle secondaire : evenement
439 $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
440 // Verification de la cle secondaire : evenement
441 $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
442 // Verification de la cle secondaire : instruction
443 $this->rechercheTable($db, "instruction", "evenement", $id);
444 // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
445 $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
446 //// Verification de la cle secondaire : transition
447 //$this->rechercheTable($db, "transition", "evenement", $id);
448 }
449
450 //Affichage des dossier_instruction_type anciennement liés
451 function setVal(&$form, $maj, $validation, &$db) {
452
453 parent::setVal($form, $maj, $validation, $db);
454
455 if($maj == 2 && $validation == 1 ) {
456 $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
457 }
458 }
459
460 }
461
462 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26