/[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 1543 by fmichon, Thu Mar 21 07:41:17 2013 UTC
# Line 1  Line 1 
1  <?php  <?php
2  //$Id$  /**
3  //gen openMairie le 10/02/2011 20:33   *
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  class evenement extends evenement_gen {  class evenement extends evenement_gen {
13    
14      function evenement($id,&$db,$debug) {      function evenement($id, &$db, $debug) {
15          $this->constructeur($id,$db,$debug);          $this->constructeur($id, $db, $debug);
16      }// fin constructeur      }
17    
18      function setType(&$form,$maj) {      function setType(&$form, $maj) {
19          parent::setType($form,$maj);          //
20          if ($maj < 2) {          parent::setType($form, $maj);
21              //$form->setType('fin_instruction', 'select');          // MODE AJOUTER et MODE MODIFIER
22            if ($maj == 0 || $maj == 1) {
23                //
24              $form->setType('accord_tacite', 'select');              $form->setType('accord_tacite', 'select');
25              $form->setType('delai_notification', 'select');              $form->setType('delai_notification', 'select');
26              $form->setType('delai', 'select');              $form->setType('delai', 'select');
27              $form->setType('lettretype', 'select');              $form->setType('lettretype', 'select');
28              $form->setType('pour_consultation', 'checkbox');              $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) {      function setSelect(&$form, $maj, $db, $debug) {
42          parent::setSelect($form, $maj,$db,$debug);          //
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){          if($maj<2){
50              // lettretype              // lettretype
51              if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))              
                 include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");  
52              $contenu=array();              $contenu=array();
53              $res = $db->query($sql_om_lettretype);              $res = $db->query($sql_om_lettretype);
54              if (database::isError($res))              if (database::isError($res))
# Line 76  class evenement extends evenement_gen { Line 97  class evenement extends evenement_gen {
97                            '24 '._("mois")                            '24 '._("mois")
98                            );                            );
99          $form->setSelect("delai",$contenu);          $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->setFieldset("dossier_instruction_type", "F");
148            //
149            $form->setFieldset("action", "D", _("Action"));
150                $form->setBloc("action", "DF");
151                $form->setBloc("etat", "D", _("Parametres de l'action"));
152                $form->setBloc("avis_decision", "F");
153            $form->setFieldset("avis_decision", "F");
154            //
155            $form->setFieldset("lettretype", "D", _("Edition"));
156            $form->setFieldset("consultation", "F");
157        }
158    
159        //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
160        function triggerajouterapres($id,&$db,$val,$DEBUG) {
161            //
162            parent::triggerajouterapres($id,$db,$val,$DEBUG);
163    
164            /**
165             * LIEN ETAT
166             */
167            // Récupération des données du select multiple
168            $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
169            // Ne traite les données que s'il y en a et qu'elles sont correctes
170            if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
171                && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
172                // Initialisation
173                $nb_liens_etat = 0;
174                // Boucle sur la liste des états sélectionnés
175                foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
176                    // Test si la valeur par défaut est sélectionnée
177                    if ($value != "") {
178                        //
179                        $donnees = array(
180                            'evenement' => $this->valF['evenement'],
181                            'etat' => $value
182                        );
183                        // On ajoute l'enregistrement
184                        $this->ajouter_lien_etat_evenement($donnees);
185                        // On compte le nombre d'éléments ajoutés
186                        $nb_liens_etat++;
187                    }
188                }
189                // Message de confirmation
190                if ($nb_liens_etat > 0) {
191                    if ($nb_liens_etat == 1 ){
192                        $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelle liaison realisee avec succes."));
193                    } else{
194                        $this->addToMessage(_("Creation de ").$nb_liens_etat._(" nouvelles liaisons realisees avec succes."));
195                    }
196                }
197            }
198    
199            /**
200             * LIEN DI TYPE
201             */
202            //Récupère les données du select multiple
203            $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
204            //Ne traite les données que s'il y en a et qu'elles sont correctes
205            if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
206                
207                $nb_tr = 0;    
208                /* Va créer autant de lien_dossier_instruction_type_evenement
209                 * que de dossier_instruction_type choisis */
210                foreach( $dossier_instruction_type as $value ){
211                
212                    //Test si la valeur par défaut est sélectionnée
213                    if ( $value != "" ) {
214                        
215                        //Données
216                        $donnees = array(
217                            'evenement' => $this->valF['evenement'],
218                            'dossier_instruction_type' => $value
219                        );
220                        
221                        //Ajoute un nouveau lien_dossier_instruction_type_evenement
222                        $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
223    
224                        $nb_tr++;
225                    }
226                }
227                
228                //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement(s).
229                if ( $nb_tr > 0 ){
230                    
231                    if ( $nb_tr == 1 ){
232                        
233                        $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle liaison
234                            realisee avec succes."));
235                    }
236                    else{
237                        
238                        $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles liaisions
239                            realisee avec succes."));
240                    }
241                }
242            }
243            
244        }
245        
246        //Fonction générique permettant de récupérer les données d'un champ postées
247        function getPostedValues($champ) {
248            
249            // Récupération des demandeurs dans POST
250            if (isset($_POST[$champ]) ) {
251                
252                return $_POST[$champ];
253            }
254        }
255        
256        //Modification des liens
257        function triggerModifierApres($id, &$db, $val, $DEBUG){
258            //
259            parent::triggerModifierApres($id, $db, $val, $DEBUG);
260    
261            /**
262             * LIEN ETAT
263             */
264            // Suppression de tous les liens de la table transition (table lien
265            // entre etat et evenement)
266            $this->supprimer_liens_etat_evenement($this->valF['evenement']);
267            // Récupération des données du select multiple
268            $etats_depuis_lequel_l_evenement_est_disponible = $this->getPostedValues('etats_depuis_lequel_l_evenement_est_disponible');
269            // Ne traite les données que s'il y en a et qu'elles sont correctes
270            if (is_array($etats_depuis_lequel_l_evenement_est_disponible)
271                && count($etats_depuis_lequel_l_evenement_est_disponible) > 0 ){
272                // Initialisation
273                $nb_liens_etat = 0;
274                // Boucle sur la liste des états sélectionnés
275                foreach ($etats_depuis_lequel_l_evenement_est_disponible as $value) {
276                    // Test si la valeur par défaut est sélectionnée
277                    if ($value != "") {
278                        //
279                        $donnees = array(
280                            'evenement' => $this->valF['evenement'],
281                            'etat' => $value
282                        );
283                        // On ajoute l'enregistrement
284                        $this->ajouter_lien_etat_evenement($donnees);
285                        // On compte le nombre d'éléments ajoutés
286                        $nb_liens_etat++;
287                    }
288                }
289                // Message de confirmation
290                if ($nb_liens_etat > 0) {
291                    $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
292                }
293            }
294    
295            /**
296             * LIEN DI TYPE
297             */
298            //Supprime toutes les liaisions liées à l'événement
299            $this->deleteAllLienDossierInstructionTypeEvenementEvenement($this->valF['evenement'], $db, $DEBUG);
300            
301            //Récupère les données du select multiple
302            $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
303            
304            //Ne traite les données que s'il y en a et qu'elles sont correctes
305            if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
306                
307                $nb_tr = 0;    
308                //Va créer autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type choisis
309                foreach( $dossier_instruction_type as $value ){
310                
311                    //Test si la valeur par défaut est sélectionnée
312                    if ( $value != "" ) {
313                        
314                        //Données
315                        $donnees = array(
316                            'evenement' => $this->valF['evenement'],
317                            'dossier_instruction_type' => $value
318                        );
319                        
320                        //Ajoute un nouveau lien_dossier_instruction_type_evenement
321                        $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
322    
323                        $nb_tr++;
324                    }
325                }
326                
327                //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement.
328                if ( $nb_tr > 0 ){
329                    
330                    $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
331                }
332            }
333        }
334    
335        /**
336         * Ajout d'un lien dans la table transition (table lien entre etat et
337         * evenement)
338         */
339        function ajouter_lien_etat_evenement($data) {
340            //
341            require_once '../obj/transition.class.php';
342            $lien_etat_evenement = new transition("]", $this->db, false);
343            // ???
344            $lien_etat_evenement->valF = "";
345            $val['transition'] = NULL;
346            //
347            if (is_array($data)) {
348                foreach ($data as $key => $value) {
349                    $val[$key]=$value;
350                }
351            }
352            //
353            $lien_etat_evenement->ajouter($val, $this->db, false);
354        }
355    
356        /**
357         * Suppression de tous les liens de la table transition (table lien entre
358         * etat etevenement)
359         */
360        function supprimer_liens_etat_evenement($id) {
361            // Suppression de tous les enregistrements correspondants à l'id de
362            // l'événement
363            $sql = "DELETE
364            FROM ".DB_PREFIXE."transition
365            WHERE evenement=".$id;
366            $res = $this->db->query($sql);
367            $this->f->addToLog("supprimer_liens_etat_evenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
368            $this->f->isDatabaseError();
369        }
370    
371        //Ajoute un nouveau lien_dossier_instruction_type_evenement
372        // $data array de données
373        function addLienDossierInstructionType($data, $db, $DEBUG){
374            
375            require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
376            
377            $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
378            $lien_dossier_instruction_type_evenement->valF = "";
379        
380            //Données
381            $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
382        
383            if ( is_array($data) ){
384                
385                foreach ($data as $key => $value) {
386                    
387                    $vallien_dossier_instruction_type_evenement[$key]=$value;
388                }            
389            }
390        
391            $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
392        }
393    
394        //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
395        function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
396                
397            //Création de la requête
398            $sql = "DELETE FROM
399                    ".DB_PREFIXE."lien_dossier_instruction_type_evenement
400                WHERE
401                    evenement = $id";
402            
403            //Exécution de la requête
404            $res = $db->query($sql);
405            
406            //Ajout au log
407            $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
408            $this->f->isDatabaseError();
409        }
410    
411        function triggersupprimer($id, &$db, $val, $DEBUG){
412            // Suppression de tous les liens de la table transition (table lien
413            // entre etat et evenement)
414            $this->supprimer_liens_etat_evenement($id);
415            //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
416            $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
417        }
418        
419        /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
420         * lien_dossier_instruction_type_evenement qui sera supprimé juste après ni avec la table transition*/
421        function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
422    
423            // Verification de la cle secondaire : bible
424            $this->rechercheTable($db, "bible", "evenement", $id);
425            // Verification de la cle secondaire : demande_type
426            $this->rechercheTable($db, "demande_type", "evenement", $id);
427            // Verification de la cle secondaire : evenement
428            $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
429            // Verification de la cle secondaire : evenement
430            $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
431            // Verification de la cle secondaire : instruction
432            $this->rechercheTable($db, "instruction", "evenement", $id);
433            // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
434            $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
435            //// Verification de la cle secondaire : transition
436            //$this->rechercheTable($db, "transition", "evenement", $id);
437        }
438        
439        //Affichage des dossier_instruction_type anciennement liés
440        function setVal(&$form, $maj, $validation, &$db) {
441            
442            parent::setVal($form, $maj, $validation, $db);
443            
444            if($maj == 2 && $validation == 1 ) {
445                 $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
446            }
447        }
448    
449  }// fin classe  }// fin classe
450  ?>  ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26