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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 403 by nhaye, Thu Sep 20 15:25:57 2012 UTC revision 1549 by fmichon, Thu Mar 21 18:17:06 2013 UTC
# Line 1  Line 1 
1  <?php  <?php
2  //$Id$  /**
3  //gen openMairie le 10/02/2011 20:33   * Ce fichier contient la déclaration de la classe "evenement".
4  require_once ("../gen/obj/evenement.class.php");   *
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 {  class evenement extends evenement_gen {
17    
18      function evenement($id,&$db,$debug) {      function evenement($id, &$db, $debug) {
19          $this->constructeur($id,$db,$debug);          $this->constructeur($id, $db, $debug);
20      }// fin constructeur      }
21    
22      function setType(&$form,$maj) {      function setType(&$form, $maj) {
23          parent::setType($form,$maj);          //
24          if ($maj < 2) {          parent::setType($form, $maj);
25              //$form->setType('fin_instruction', 'select');          // MODE AJOUTER et MODE MODIFIER
26            if ($maj == 0 || $maj == 1) {
27                //
28              $form->setType('accord_tacite', 'select');              $form->setType('accord_tacite', 'select');
29              $form->setType('delai_notification', 'select');              $form->setType('delai_notification', 'select');
30              $form->setType('delai', 'select');              $form->setType('delai', 'select');
31              $form->setType('lettretype', 'select');              $form->setType('lettretype', 'select');
32              $form->setType('pour_consultation', 'checkbox');              $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) {      function setSelect(&$form, $maj, $db, $debug) {
46          parent::setSelect($form, $maj,$db,$debug);          //
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){          if($maj<2){
54              // lettretype              // lettretype
55              if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))              
                 include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");  
56              $contenu=array();              $contenu=array();
57              $res = $db->query($sql_om_lettretype);              $res = $db->query($sql_om_lettretype);
58              if (database::isError($res))              if (database::isError($res))
# Line 76  class evenement extends evenement_gen { Line 101  class evenement extends evenement_gen {
101                            '24 '._("mois")                            '24 '._("mois")
102                            );                            );
103          $form->setSelect("delai",$contenu);          $form->setSelect("delai",$contenu);
104    
105            // type de l'événement
106            $contenu=array();
107            $contenu[0]=array('', 'arrete', 'incompletude', 'majoration_delai', );
108            $contenu[1]=array(_('choisir type'), _('arrete'), _('incompletude'), _('majoration_delai'),);
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 possibilité de sélection a l'ajout d'un evenement d'instruction"));
152                $form->setBloc("dossier_instruction_type", "F");
153                $form->setBloc("restriction", "DF", _("Filtre supplementaire à 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            $this->f->isDatabaseError();
376        }
377    
378        //Ajoute un nouveau lien_dossier_instruction_type_evenement
379        // $data array de données
380        function addLienDossierInstructionType($data, $db, $DEBUG){
381            
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            // Suppression de tous les liens de la table transition (table lien
420            // entre etat et evenement)
421            $this->supprimer_liens_etat_evenement($id);
422            //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
423            $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
424        }
425        
426        /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
427         * lien_dossier_instruction_type_evenement qui sera supprimé juste après ni avec la table transition*/
428        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            //// Verification de la cle secondaire : transition
443            //$this->rechercheTable($db, "transition", "evenement", $id);
444        }
445        
446        //Affichage des dossier_instruction_type anciennement liés
447        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    }
457    
 }// fin classe  
 ?>  
458    ?>

Legend:
Removed from v.403  
changed lines
  Added in v.1549

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26