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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1503 - (hide annotations)
Mon Mar 18 23:06:17 2013 UTC (11 years, 10 months ago) by fmichon
File size: 11975 byte(s)
Ajout d'un select pour permettre de sélectionner le type de l'événement

1 fraynaud 3 <?php
2 atreal 312 //$Id$
3     //gen openMairie le 10/02/2011 20:33
4 fraynaud 3 require_once ("../gen/obj/evenement.class.php");
5    
6     class evenement extends evenement_gen {
7    
8 fraynaud 7 function evenement($id,&$db,$debug) {
9     $this->constructeur($id,$db,$debug);
10     }// fin constructeur
11 fraynaud 3
12 fraynaud 7 function setType(&$form,$maj) {
13     parent::setType($form,$maj);
14     if ($maj < 2) {
15     //$form->setType('fin_instruction', 'select');
16     $form->setType('accord_tacite', 'select');
17     $form->setType('delai_notification', 'select');
18     $form->setType('delai', 'select');
19     $form->setType('lettretype', 'select');
20 nhaye 433 $form->setType('consultation', 'checkbox');
21 vpihour 1133 $form->setType('dossier_instruction_type','select_multiple');
22 fmichon 1503 $form->setType('type','select');
23 fraynaud 7 }
24 vpihour 1133
25 vpihour 1134 //Ajout du type select multiple sur dossier_instruction_type
26 vpihour 1133 if ($maj==2){ //supprimer
27    
28     $form->setType('dossier_instruction_type','select_multiple_static');
29     }//fin supprimer
30     if ($maj==3){ //consulter
31    
32     $form->setType('dossier_instruction_type','select_multiple_static');
33     }//fin consulter
34 fraynaud 7 }
35 atreal 312
36 fraynaud 7 function setSelect(&$form, $maj,$db,$debug) {
37 vpihour 1133
38     if(file_exists ("../sql/".$db->phptype."/".$this->table.".form.inc.php"))
39     include ("../sql/".$db->phptype."/".$this->table.".form.inc.php");
40    
41 fraynaud 7 parent::setSelect($form, $maj,$db,$debug);
42    
43 atreal 312 if($maj<2){
44     // lettretype
45 vpihour 1133
46 atreal 312 $contenu=array();
47     $res = $db->query($sql_om_lettretype);
48     if (database::isError($res))
49     die($res->getMessage().$sql_om_lettretype);
50     else{
51     if ($debug == 1)
52     echo " la requete ".$sql_om_lettretype." est executee<br>";
53     $contenu[0][0]='';
54     $contenu[1][0]=_('choisir')."&nbsp;"._('lettretype');
55     $k=1;
56     while ($row=& $res->fetchRow()){
57     $contenu[0][$k]=$row[0];
58     $contenu[1][$k]=$row[1];
59     $k++;
60     }
61     $form->setSelect('lettretype',$contenu);
62     }// fin error db
63 fraynaud 7 }
64     // accord_tacite
65     $contenu=array();
66     $contenu[0]=array('Non','Oui');
67     $contenu[1]=array($this->lang('Non'),$this->lang('Oui'));
68     $form->setSelect("accord_tacite",$contenu);
69     // delai_notification
70     $contenu=array();
71     $contenu[0]=array('0','1');
72     $contenu[1]=array('sans','1 '.$this->lang("mois"));
73     $form->setSelect("delai_notification",$contenu);
74     // delai
75     $contenu=array();
76     $contenu[0]=array('0','1','2','3','4','5','6','7','8','9','10','11','12','18','24');
77     $contenu[1]=array('sans',
78     '1 '._("mois"),
79     '2 '._("mois"),
80     '3 '._("mois"),
81     '4 '._("mois"),
82     '5 '._("mois"),
83     '6 '._("mois"),
84     '7 '._("mois"),
85     '8 '._("mois"),
86     '9 '._("mois"),
87     '10 '._("mois"),
88     '11 '._("mois"),
89     '12 '._("mois"),
90     '18 '._("mois"),
91     '24 '._("mois")
92 atreal 312 );
93 fraynaud 7 $form->setSelect("delai",$contenu);
94 fmichon 1503
95     // type de l'événement
96     $contenu=array();
97     $contenu[0]=array('', 'arrete', 'incompletude', 'majoration_delai', );
98     $contenu[1]=array(_('choisir type'), _('arrete'), _('incompletude'), _('majoration_delai'),);
99     $form->setSelect("type",$contenu);
100    
101 vpihour 1133 // dossier_instruction_type
102     $this->init_select($form, $db, $maj, $debug, "dossier_instruction_type",
103     $sql_dossier_instruction_type, $sql_dossier_instruction_type_by_id, false);
104 fraynaud 7 }
105 vpihour 1134
106     //Nombre de dossier_instruction_type affiché
107 vpihour 1133 function setTaille(&$form, $maj) {
108    
109     parent::setTaille($form, $maj);
110 fmichon 1408 $form->setTaille("dossier_instruction_type", 20);
111 vpihour 1133 }
112    
113 vpihour 1134 //Nombre de dossier_instruction_type maximum
114 vpihour 1133 function setMax(&$form, $maj) {
115    
116     parent::setMax($form, $maj);
117     $form->setMax("dossier_instruction_type", 5);
118     }
119 fraynaud 7
120 vpihour 1133 //Ajoute autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type
121     function triggerajouterapres($id,&$db,$val,$DEBUG) {
122    
123     parent::triggerajouterapres($id,$db,$val,$DEBUG);
124 atreal 312
125 vpihour 1133 //Récupère les données du select multiple
126     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
127    
128     //Ne traite les données que s'il y en a et qu'elles sont correctes
129     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
130    
131     $nb_tr = 0;
132 vpihour 1134 /* Va créer autant de lien_dossier_instruction_type_evenement
133     * que de dossier_instruction_type choisis */
134 vpihour 1133 foreach( $dossier_instruction_type as $value ){
135    
136     //Test si la valeur par défaut est sélectionnée
137     if ( $value != "" ) {
138    
139     //Données
140     $donnees = array(
141     'evenement' => $this->valF['evenement'],
142     'dossier_instruction_type' => $value
143     );
144    
145 vpihour 1134 //Ajoute un nouveau lien_dossier_instruction_type_evenement
146     $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
147 vpihour 1133
148     $nb_tr++;
149     }
150     }
151    
152     //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement(s).
153     if ( $nb_tr > 0 ){
154    
155     if ( $nb_tr == 1 ){
156    
157 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelle liaison
158 vpihour 1135 realisee avec succes."));
159 vpihour 1133 }
160     else{
161    
162 vpihour 1173 $this->addToMessage(_("Creation de ").$nb_tr._(" nouvelles liaisions
163 vpihour 1135 realisee avec succes."));
164 vpihour 1133 }
165     }
166     }
167    
168     }
169    
170     //Fonction générique permettant de récupérer les données d'un champ postées
171     function getPostedValues($champ) {
172    
173     // Récupération des demandeurs dans POST
174     if (isset($_POST[$champ]) ) {
175    
176     return $_POST[$champ];
177     }
178     }
179    
180     //Modification des liens
181     function triggerModifierApres($id, &$db, $val, $DEBUG){
182    
183     parent::triggerModifierApres($id, $db, $val, $DEBUG);
184    
185     //Supprime toutes les liaisions liées à l'événement
186     $this->deleteAllLienDossierInstructionTypeEvenementEvenement($this->valF['evenement'], $db, $DEBUG);
187    
188     //Récupère les données du select multiple
189     $dossier_instruction_type = $this->getPostedValues('dossier_instruction_type');
190    
191     //Ne traite les données que s'il y en a et qu'elles sont correctes
192     if ( is_array($dossier_instruction_type) && count($dossier_instruction_type) > 0 ){
193    
194     $nb_tr = 0;
195     //Va créer autant de lien_dossier_instruction_type_evenement que de dossier_instruction_type choisis
196     foreach( $dossier_instruction_type as $value ){
197    
198     //Test si la valeur par défaut est sélectionnée
199     if ( $value != "" ) {
200    
201     //Données
202     $donnees = array(
203     'evenement' => $this->valF['evenement'],
204     'dossier_instruction_type' => $value
205     );
206    
207 vpihour 1134 //Ajoute un nouveau lien_dossier_instruction_type_evenement
208     $this->addLienDossierInstructionType($donnees, $db, $DEBUG);
209 vpihour 1133
210     $nb_tr++;
211     }
212     }
213    
214 vpihour 1134 //Message de confirmation de création de(s) lien_dossier_instruction_type_evenement.
215 vpihour 1133 if ( $nb_tr > 0 ){
216    
217 fmichon 1159 $this->addToMessage(_("Mise a jour des liaisons realisee avec succes."));
218 vpihour 1133 }
219     }
220     }
221    
222     //Ajoute un nouveau lien_dossier_instruction_type_evenement
223     // $data array de données
224 vpihour 1134 function addLienDossierInstructionType($data, $db, $DEBUG){
225 vpihour 1133
226     require_once '../obj/lien_dossier_instruction_type_evenement.class.php';
227    
228     $lien_dossier_instruction_type_evenement = new lien_dossier_instruction_type_evenement("]",$db,$DEBUG);
229     $lien_dossier_instruction_type_evenement->valF = "";
230    
231     //Données
232     $vallien_dossier_instruction_type_evenement['lien_dossier_instruction_type_evenement']=NULL;
233    
234     if ( is_array($data) ){
235    
236     foreach ($data as $key => $value) {
237    
238     $vallien_dossier_instruction_type_evenement[$key]=$value;
239     }
240     }
241    
242     $lien_dossier_instruction_type_evenement->ajouter($vallien_dossier_instruction_type_evenement, $db, $DEBUG);
243     }
244    
245     //Supprime toutes les lien_dossier_instruction_type_evenement liées à un événement
246     function deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG){
247    
248     //Création de la requête
249     $sql = "DELETE FROM
250     ".DB_PREFIXE."lien_dossier_instruction_type_evenement
251     WHERE
252     evenement = $id";
253    
254     //Exécution de la requête
255     $res = $db->query($sql);
256    
257     //Ajout au log
258     $this->f->addToLog("deleteAllLienDossierInstructionTypeEvenementEvenement(): db->query(\"".$sql."\");", VERBOSE_MODE);
259     $this->f->isDatabaseError();
260     }
261    
262     //Suppression de toutes les lien_dossier_instruction_type_evenement avec evenement
263     function triggersupprimer($id, &$db, $val, $DEBUG){
264    
265 vpihour 1134 //Supprime toutes les lien_dossier_instruction_type_evenement liées à l'evenement
266 vpihour 1133 $this->deleteAllLienDossierInstructionTypeEvenementEvenement($id, $db, $DEBUG);
267     }
268    
269     /* Surcharge de la fonction cleSecondaire pour qu'elle ne vérifie pas le lien avec
270 vpihour 1134 * lien_dossier_instruction_type_evenement qui sera supprimé juste après*/
271 vpihour 1133 function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
272    
273     // Verification de la cle secondaire : bible
274     $this->rechercheTable($db, "bible", "evenement", $id);
275     // Verification de la cle secondaire : demande_type
276     $this->rechercheTable($db, "demande_type", "evenement", $id);
277     // Verification de la cle secondaire : evenement
278     $this->rechercheTable($db, "evenement", "evenement_retour_ar", $id);
279     // Verification de la cle secondaire : evenement
280     $this->rechercheTable($db, "evenement", "evenement_suivant_tacite", $id);
281     // Verification de la cle secondaire : instruction
282     $this->rechercheTable($db, "instruction", "evenement", $id);
283     // Verification de la cle secondaire : lien_evenement_dossier_autorisation_type
284     $this->rechercheTable($db, "lien_evenement_dossier_autorisation_type", "evenement", $id);
285     // Verification de la cle secondaire : transition
286     $this->rechercheTable($db, "transition", "evenement", $id);
287     }
288    
289 vpihour 1134 //Affichage des dossier_instruction_type anciennement liés
290 vpihour 1133 function setVal(&$form, $maj, $validation, &$db) {
291    
292     parent::setVal($form, $maj, $validation, $db);
293    
294     if($maj == 2 && $validation == 1 ) {
295     $form->setVal("dossier_instruction_type",$this->val[count($this->val)-1]);
296     }
297     }
298    
299 fraynaud 3 }// fin classe
300     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26