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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4032 - (show annotations)
Fri Apr 22 15:14:31 2016 UTC (8 years, 9 months ago) by nmeucci
File size: 15723 byte(s)
* Correction - Le bouton "Sauvegarder le pétitionnaire fréquent" était affiché
  en consultation du formulaire et par conséquent sans effet. Il a été supprimé.

1 <?php
2 //$Id: petitionnaire.class.php 5575 2015-12-08 19:25:17Z stimezouaght $
3
4 require_once ("../obj/demandeur.class.php");
5
6 /*
7 * Classe qui hérite de la classe demandeur
8 */
9 class petitionnaire extends demandeur {
10
11 function petitionnaire($id,&$db,$debug) {
12 //On active les nouvelles actions
13 $this->activate_class_action = true;
14 $this->constructeur($id,$db,$debug);
15 }// fin constructeur
16
17 // {{{ Gestion de la confidentialité des données spécifiques
18
19 /**
20 * Définition des actions disponibles sur la classe.
21 *
22 * @return void
23 */
24 function init_class_actions() {
25
26 parent::init_class_actions();
27
28 // ACTION - 003 - consulter
29 //
30 $this->class_actions[3]["condition"] = "is_user_from_allowed_collectivite";
31
32 // ACTION - 100 - non_frequent
33 // Finalise l'enregistrement
34 $this->class_actions[100] = array(
35 "identifier" => "non_frequent",
36 "portlet" => array(
37 "type" => "action-direct",
38 "libelle" => _("Marquer non frequent"),
39 "order" => 100,
40 "class" => "radiation-16",
41 ),
42 "view" => "formulaire",
43 "method" => "set_non_frequent",
44 "permission_suffix" => "modifier_frequent",
45 "condition" => array("is_frequent"),
46 );
47
48 // ACTION - 110 - recuperer_frequent
49 // Finalise l'enregistrement
50 $this->class_actions[110] = array(
51 "identifier" => "recuperer_frequent",
52 "view" => "formulaire",
53 "method" => "modifier",
54 "button" => "valider",
55 "permission_suffix" => "modifier",
56 );
57 }
58
59 //}}}
60
61 /**
62 * Retourne true si pétitionnaire frequent false sinon.
63 *
64 * @return boolean retourne true si frequent false sinon.
65 */
66 function is_frequent() {
67 if($this->getVal("frequent") == 't') {
68 return true;
69 }
70 return false;
71 }
72
73 /**
74 * Retourne false si pétitionnaire frequent true sinon.
75 *
76 * @return boolean retourne false si frequent true sinon.
77 */
78 function is_not_frequent() {
79 return !$this->is_frequent();
80 }
81
82 /**
83 * TREATMENT - set_non_frequent.
84 *
85 * Cette methode permet de passer le pétitionnaire en non fréquent.
86 *
87 * @return boolean true si maj effectué false sinon
88 */
89 function set_non_frequent($val) {
90 // Cette méthode permet d'exécuter une routine en début des méthodes
91 // dites de TREATMENT.
92 $this->begin_treatment(__METHOD__);
93
94 if($this->getVal("frequent") == 't') {
95 $this->correct = true;
96 $this->valF["frequent"] = false;
97
98 $res = $this->f->db->autoExecute(
99 DB_PREFIXE.$this->table,
100 $this->valF,
101 DB_AUTOQUERY_UPDATE,
102 $this->clePrimaire."=".$this->getVal($this->clePrimaire)
103 );
104 if ($this->f->isDatabaseError($res, true)) {
105 // Appel de la methode de recuperation des erreurs
106 $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
107 $this->correct = false;
108 // Termine le traitement
109 return $this->end_treatment(__METHOD__, false);
110 } else {
111 $this->addToMessage(_("Mise a jour effectuee avec succes"));
112 return $this->end_treatment(__METHOD__, true);
113 }
114
115 } else {
116 $this->addToMessage(_("Element deja frequent"));
117 }
118
119 // Termine le traitement
120 return $this->end_treatment(__METHOD__, false);
121 }
122
123 /*
124 * Cache le champ type_demandeur.
125 */
126 function setType(&$form,$maj) {
127 parent::setType($form,$maj);
128
129 // On définit le type des champs pour les actions direct
130 // utilisant la vue formulaire
131 if ($maj == 100) {
132 foreach ($this->champs as $key => $value) {
133 $form->setType($value, 'hidden');
134 }
135 }
136
137 if($maj == 3) {
138 // En consultation le bouton "Sauvegarder" n'a pas lieu d'être
139 $form->setType('frequent','hidden');
140 // Gestion de la catégorie de personne
141 if ($this->getVal('qualite') == 'particulier') {
142 $form->setType('personne_morale_denomination','hidden');
143 $form->setType('personne_morale_raison_sociale','hidden');
144 $form->setType('personne_morale_siret','hidden');
145 $form->setType('personne_morale_categorie_juridique','hidden');
146 $form->setType('personne_morale_nom','hidden');
147 $form->setType('personne_morale_prenom','hidden');
148 $form->setType('personne_morale_civilite','hidden');
149 } else {
150 $form->setType('particulier_civilite','hidden');
151 $form->setType('particulier_nom','hidden');
152 $form->setType('particulier_prenom','hidden');
153 $form->setType('particulier_date_naissance','hidden');
154 $form->setType('particulier_commune_naissance','hidden');
155 $form->setType('particulier_departement_naissance','hidden');
156 }
157 }
158
159 // Champs disabled pour la modif de petitionnaires frequents
160 if ($maj==110 or $maj==1) { //modifier
161 if($this->getVal('frequent') == 't') {
162 $form->setType('qualite','selecthiddenstatic');
163 $form->setType('particulier_nom','static');
164 $form->setType('particulier_prenom','static');
165 $form->setType('particulier_date_naissance','datestatic');
166 $form->setType('particulier_commune_naissance','static');
167 $form->setType('particulier_departement_naissance','static');
168 $form->setType('personne_morale_denomination','static');
169 $form->setType('personne_morale_raison_sociale','static');
170 $form->setType('personne_morale_siret','static');
171 $form->setType('personne_morale_categorie_juridique','static');
172 $form->setType('personne_morale_nom','static');
173 $form->setType('personne_morale_prenom','static');
174 $form->setType('numero','static');
175 $form->setType('voie','static');
176 $form->setType('complement','static');
177 $form->setType('lieu_dit','static');
178 $form->setType('localite','static');
179 $form->setType('code_postal','static');
180 $form->setType('bp','static');
181 $form->setType('cedex','static');
182 $form->setType('pays','static');
183 $form->setType('division_territoriale','static');
184 $form->setType('telephone_fixe','static');
185 $form->setType('telephone_mobile','static');
186 $form->setType('fax','static');
187 $form->setType('indicatif','static');
188 $form->setType('courriel','static');
189 $form->setType('notification','checkboxstatic');
190 $form->setType('particulier_civilite','selecthiddenstatic');
191 $form->setType('personne_morale_civilite','selecthiddenstatic');
192 $form->setType('om_collectivite','selecthiddenstatic');
193 // on masque le bouton "Sauvegarder"
194 $form->setType('frequent','hidden');
195 }
196 }// fin modifier
197
198 $form->setType('type_demandeur', 'hidden');
199
200 }
201 /*
202 * Ajout du fielset
203 * Add fieldset
204 */
205 function setLayout(&$form, $maj){
206 //
207 $form->setBloc('om_collectivite','DF',"", ($maj<2 ? "search_fields":""));
208
209 $form->setBloc('particulier_civilite','D',"", "particulier_fields");
210
211 $form->setBloc('particulier_civilite','D',"");
212 $form->setBloc('particulier_civilite','F');
213 if($this->getVal('frequent') != 't' OR $maj==0) {
214 $form->setBloc('particulier_nom','D',"","group ".($maj<2 ? "search_fields":""));
215 } else {
216 $form->setBloc('particulier_nom','D',"","group");
217 }
218 $form->setBloc('particulier_prenom','F');
219
220 $form->setFieldset('particulier_date_naissance','D',_("Etat civil"),"group");
221 $form->setBloc('particulier_date_naissance','D',"","group");
222 $form->setBloc('particulier_commune_naissance','F');
223 $form->setFieldset('particulier_departement_naissance','F');
224
225
226 $form->setBloc('particulier_departement_naissance','F');
227
228 $form->setBloc('personne_morale_denomination','D',"", "personne_morale_fields");
229
230 $form->setBloc('personne_morale_denomination','D',"","group");
231 if($this->getVal('frequent') != 't' OR $maj==0) {
232 $form->setBloc('personne_morale_denomination','D',"", ($maj<2 ? "search_fields":""));
233 } else {
234 $form->setBloc('personne_morale_denomination','D',"", "");
235 }
236 $form->setBloc('personne_morale_denomination','F');
237 $form->setBloc('personne_morale_raison_sociale','F');
238
239 $form->setFieldset('personne_morale_siret','D',_("Personne morale"));
240
241 $form->setBloc('personne_morale_siret','D',"");
242 $form->setBloc('personne_morale_siret','F');
243
244 $form->setBloc('personne_morale_categorie_juridique','D',"");
245 $form->setBloc('personne_morale_categorie_juridique','F');
246
247 $form->setBloc('personne_morale_civilite','D',"");
248 $form->setBloc('personne_morale_civilite','F');
249
250 $form->setBloc('personne_morale_nom','D',"", "group");
251 $form->setBloc('personne_morale_prenom','F');
252
253 $form->setFieldset('personne_morale_prenom','F');
254
255 $form->setBloc('personne_morale_prenom','F');
256
257 $form->setFieldset('numero','D',_("Adresse"), "");
258
259 $form->setBloc('numero','D',"","group");
260 $form->setBloc('voie','F');
261
262 $form->setBloc('complement','D',"");
263 $form->setBloc('complement','F');
264
265 $form->setBloc('lieu_dit','D',"","group");
266 $form->setBloc('localite','F');
267
268 $form->setBloc('code_postal','D',"","group");
269 $form->setBloc('cedex','F');
270
271 $form->setBloc('pays','D',"", "","group");
272 $form->setBloc('division_territoriale','F');
273 $form->setFieldset('division_territoriale','F');
274
275 $form->setFieldset('telephone_fixe','D',_("Coordonnees"), "");
276 $form->setBloc('telephone_fixe','D',"", "group");
277 $form->setBloc('indicatif','F');
278
279 $form->setBloc('fax','D',"", "group");
280 $form->setBloc('notification','F');
281
282 $form->setFieldset('notification','F');
283
284 }
285
286 function setLib(&$form,$maj) {
287 //libelle des champs
288 parent::setLib($form, $maj);
289 $form->setLib('frequent',"<span class=\"om-form-button copy-16\"
290 title=\""._("Sauvegarder ce petitionnaire")."\">"._("Sauvegarder (petitionnaire frequent)")."</span>");
291
292 }
293 /*
294 * Met le champ type_demandeur à delegataire par défaut
295 */
296 function setVal(&$form, $maj, $validation, &$db) {
297 parent::setVal($form, $maj, $validation, $db);
298 $form->setVal("type_demandeur","petitionnaire");
299 }
300 /*
301 * Met le champ type_demandeur à delegataire par défaut
302 */
303 function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) {
304 parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, $dnu1, $dnu2);
305 $form->setVal("type_demandeur","petitionnaire");
306 if($maj == 0) {
307 // Récupération des infos du demandeur passé en paramètre
308 if($this->getParameter('idx_demandeur') != "") {
309 include '../sql/pgsql/petitionnaire.form.inc.php';
310 $sql = "SELECT ".implode(", ",$champs)." FROM ".DB_PREFIXE."demandeur ".
311 "WHERE demandeur=".$this->getParameter('idx_demandeur');
312 $res = $this->db->query($sql);
313 $this->f->addToLog("setValSousFormulaire() : db->query(\"".$sql."\")");
314 if ( database::isError($res)){
315 die();
316 }
317 $row = & $res->fetchRow(DB_FETCHMODE_ASSOC);
318 foreach ($row as $key => $value) {
319 $form->setVal($key, $value);
320 }
321 $form->setVal("frequent","f");
322 }
323 }
324 }
325
326 /**
327 * Surcharge du bouton pour empécher l'utilisateur de modifier un fréquent
328 * Et ajout d'un bouton pour vider le formulaire
329 */
330 function boutonsousformulaire($datasubmit, $maj, $val=null) {
331 if($maj == 0 OR $this->getVal('frequent') != 't') {
332 if (!$this->correct) {
333 //
334 switch ($maj) {
335 case 0:
336 $bouton = _("Ajouter");
337 break;
338 case 1:
339 $bouton = _("Modifier");
340 break;
341 case 2:
342 $bouton = _("Supprimer");
343 break;
344 }
345 //
346 echo "<input type=\"button\" value=\"".$bouton."\" ";
347 echo "onclick=\"affichersform('".get_class($this)."', '$datasubmit', this.form);\" ";
348 echo "class=\"om-button\" />";
349 }
350 }
351 if(!$this->correct) {
352 echo '<span class="om-form-button erase-petitionnaire delete-16" '.
353 'title="Supprimer le contenu">'._("Vider le formulaire").'</span>';
354 }
355 }
356
357 /**
358 * CONDITION - is_user_from_allowed_collectivite.
359 *
360 * Cette condition permet de vérifier si l'utilisateur connecté appartient
361 * à une collectivité autorisée : c'est-à-dire de niveau 2 ou identique à
362 * la collectivité de l'enregistrement sur lequel on se trouve.
363 *
364 * De plus les pétitionnaires liés à la collectivité de niveau 2 sont
365 * visibles par les utilisateurs de collectivité de niveau 1.
366 *
367 * @return boolean
368 */
369 function is_user_from_allowed_collectivite() {
370
371 // Si l'utilisateur est de niveau 2
372 if ($_SESSION["niveau"] == "2") {
373 // Alors l'utilisateur fait partie d'une collectivité autorisée
374 return true;
375 }
376
377 // L'utilisateur est donc de niveau 1
378 // On vérifie donc si la collectivité de l'utilisateur est la même
379 // que la collectivité de l'élément sur lequel on se trouve ou si
380 // l'élément est lié à la collectivité de niveau 2
381 if ($_SESSION["collectivite"] === $this->getVal("om_collectivite")
382 || $this->f->isCollectiviteMono($this->getVal("om_collectivite")) == false) {
383 // Alors l'utilisateur fait partie d'une collectivité autorisée
384 return true;
385 }
386
387 // L'utilisateur ne fait pas partie d'une collectivité autorisée
388 return false;
389 }
390
391 }// fin classe
392 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26