1 |
<?php |
2 |
/** |
3 |
* DBFORM - 'demandeur' - Surcharge gen. |
4 |
* |
5 |
* Ce script définit la classe 'demandeur'. |
6 |
* |
7 |
* @package openads |
8 |
* @version SVN : $Id: demandeur.class.php 5056 2015-08-19 10:25:20Z nhaye $ |
9 |
*/ |
10 |
|
11 |
require_once ("../gen/obj/demandeur.class.php"); |
12 |
|
13 |
class demandeur extends demandeur_gen { |
14 |
|
15 |
var $required_tag = array("particulier_nom", |
16 |
"personne_morale_denomination", |
17 |
"personne_morale_raison_sociale" |
18 |
); |
19 |
|
20 |
function init_class_actions() { |
21 |
parent::init_class_actions(); |
22 |
|
23 |
// |
24 |
// |
25 |
$this->class_actions[998] = array( |
26 |
"identifier" => "json_data", |
27 |
"view" => "view_json_data", |
28 |
"permission_suffix" => "consulter", |
29 |
); |
30 |
} |
31 |
|
32 |
/** |
33 |
* Clause select pour la requête de sélection des données de l'enregistrement. |
34 |
* |
35 |
* @return array |
36 |
*/ |
37 |
function get_var_sql_forminc__champs() { |
38 |
return array( |
39 |
'demandeur', |
40 |
'type_demandeur', |
41 |
'qualite', |
42 |
'om_collectivite', |
43 |
'particulier_civilite', 'particulier_nom', 'particulier_prenom', |
44 |
'particulier_date_naissance', 'particulier_commune_naissance', |
45 |
'particulier_departement_naissance', 'particulier_pays_naissance', |
46 |
'personne_morale_denomination', |
47 |
'personne_morale_raison_sociale', 'personne_morale_siret', |
48 |
'personne_morale_categorie_juridique', |
49 |
'personne_morale_civilite', 'personne_morale_nom', 'personne_morale_prenom', |
50 |
'numero', |
51 |
'voie', |
52 |
'complement', |
53 |
'lieu_dit', |
54 |
'localite', |
55 |
'code_postal', |
56 |
'bp', |
57 |
'cedex', |
58 |
'pays', |
59 |
'division_territoriale', |
60 |
'telephone_fixe', |
61 |
'telephone_mobile', |
62 |
'indicatif', |
63 |
'fax', |
64 |
'courriel', |
65 |
'notification', |
66 |
'frequent', |
67 |
'num_inscription', |
68 |
'nom_cabinet', |
69 |
'conseil_regional', |
70 |
'titre_obt_diplo_spec', |
71 |
'date_obt_diplo_spec', |
72 |
'lieu_obt_diplo_spec', |
73 |
); |
74 |
} |
75 |
|
76 |
/** |
77 |
* Mise en page. |
78 |
* |
79 |
* @param formulaire $form Instance de la classe om_formulaire. |
80 |
* @param integer $maj Identifiant de l'action. |
81 |
*/ |
82 |
function setLayout(&$form, $maj){ |
83 |
// Affichage multi |
84 |
$col_coll = 'nolabel col_12'; |
85 |
if ($_SESSION["niveau"] == 2) { |
86 |
$col_coll = 'nolabel col_6'; |
87 |
} |
88 |
|
89 |
// Gestion recherche pétitionnaire fréquent |
90 |
$search_fields = ''; |
91 |
if ($maj == 0 || $maj == 1) { |
92 |
if ($form->val['type_demandeur'] === 'petitionnaire' || |
93 |
$form->val['type_demandeur'] === 'avocat' || |
94 |
$form->val['type_demandeur'] === 'bailleur') { |
95 |
$search_fields = ' search_fields'; |
96 |
} |
97 |
} |
98 |
|
99 |
// Qualité |
100 |
$form->setBloc( |
101 |
'qualite', |
102 |
'D', |
103 |
'', |
104 |
$col_coll |
105 |
); |
106 |
|
107 |
$form->setFieldset( |
108 |
'qualite', |
109 |
'D', |
110 |
_("Qualité") |
111 |
); |
112 |
$form->setFieldset( |
113 |
'qualite', |
114 |
'F' |
115 |
); |
116 |
|
117 |
$form->setBloc('qualite', 'F'); |
118 |
|
119 |
// Collectivité |
120 |
$form->setBloc( |
121 |
'om_collectivite', |
122 |
'D', |
123 |
'', |
124 |
$col_coll.$search_fields |
125 |
); |
126 |
// Renomme "collectivité" en "service" si l'option est activée |
127 |
$om_collectivite_libelle = __("Collectivité"); |
128 |
if ($this->f->is_option_renommer_collectivite_enabled() === true) { |
129 |
$om_collectivite_libelle = __("service"); |
130 |
} |
131 |
$form->setFieldset( |
132 |
'om_collectivite', |
133 |
'DF', |
134 |
$om_collectivite_libelle |
135 |
); |
136 |
|
137 |
$form->setBloc('om_collectivite', 'F'); |
138 |
|
139 |
// Etat civil |
140 |
$form->setBloc( |
141 |
'particulier_civilite', |
142 |
'D', |
143 |
"", |
144 |
"particulier_fields" |
145 |
); |
146 |
|
147 |
$form->setFieldset( |
148 |
'particulier_civilite', |
149 |
'D', |
150 |
_("Etat civil"), |
151 |
"group" |
152 |
); |
153 |
$form->setBloc( |
154 |
'particulier_nom', |
155 |
'D', |
156 |
"", |
157 |
"group".$search_fields |
158 |
); |
159 |
$form->setBloc('particulier_prenom', 'F'); |
160 |
$form->setBloc( |
161 |
'particulier_date_naissance', |
162 |
'D', |
163 |
"", |
164 |
"group" |
165 |
); |
166 |
$form->setBloc('particulier_commune_naissance', 'F'); |
167 |
$form->setFieldset( |
168 |
'particulier_pays_naissance', |
169 |
'F' |
170 |
); |
171 |
|
172 |
$form->setBloc('particulier_pays_naissance', 'F'); |
173 |
|
174 |
$form->setBloc( |
175 |
'personne_morale_denomination', |
176 |
'D', |
177 |
"", |
178 |
"personne_morale_fields" |
179 |
); |
180 |
|
181 |
$form->setFieldset( |
182 |
'personne_morale_denomination', |
183 |
'D', |
184 |
_("Personne morale"), |
185 |
$search_fields |
186 |
); |
187 |
|
188 |
$form->setBloc( |
189 |
'personne_morale_denomination', |
190 |
'D', |
191 |
"", |
192 |
"group" |
193 |
); |
194 |
$form->setBloc('personne_morale_raison_sociale', 'F'); |
195 |
|
196 |
$form->setBloc( |
197 |
'personne_morale_siret', |
198 |
'D', |
199 |
"", |
200 |
"group" |
201 |
); |
202 |
$form->setBloc( |
203 |
'personne_morale_categorie_juridique', |
204 |
'F' |
205 |
); |
206 |
|
207 |
$form->setBloc('personne_morale_civilite', 'D', ""); |
208 |
$form->setBloc('personne_morale_civilite', 'F'); |
209 |
|
210 |
$form->setBloc('personne_morale_nom', 'D', "", "group"); |
211 |
$form->setBloc('personne_morale_prenom', 'F'); |
212 |
|
213 |
$form->setFieldset('personne_morale_prenom', 'F'); |
214 |
|
215 |
$form->setBloc('personne_morale_prenom', 'F'); |
216 |
|
217 |
// Adresse |
218 |
$form->setFieldset('numero', 'D', _("Adresse"), ""); |
219 |
|
220 |
$form->setBloc('numero', 'D', "", "group"); |
221 |
$form->setBloc('voie', 'F'); |
222 |
|
223 |
$form->setBloc('complement', 'D', ""); |
224 |
$form->setBloc('complement', 'F'); |
225 |
|
226 |
$form->setBloc('lieu_dit', 'D', "", "group"); |
227 |
$form->setBloc('localite', 'F'); |
228 |
|
229 |
$form->setBloc('code_postal', 'D', "", "group"); |
230 |
$form->setBloc('cedex', 'F'); |
231 |
|
232 |
$form->setBloc('pays', 'D', "", "", "group"); |
233 |
$form->setBloc('division_territoriale', 'F'); |
234 |
$form->setFieldset('division_territoriale', 'F'); |
235 |
|
236 |
// Coordonnées |
237 |
$form->setFieldset('telephone_fixe', 'D', _("Coordonnees"), ""); |
238 |
$form->setBloc('telephone_fixe', 'D', "", "group"); |
239 |
$form->setBloc('indicatif', 'F'); |
240 |
|
241 |
$form->setBloc('courriel', 'D', "", "group"); |
242 |
$form->setBloc('notification', 'F'); |
243 |
|
244 |
$form->setFieldset('notification', 'F'); |
245 |
|
246 |
// Architecte |
247 |
$form->setFieldset('num_inscription', 'D', __("Architecte législation connexe"), ""); |
248 |
$form->setBloc('num_inscription', 'D', "", "group"); |
249 |
$form->setBloc('num_inscription', 'F'); |
250 |
$form->setBloc('nom_cabinet', 'D', "", "group"); |
251 |
$form->setBloc('nom_cabinet', 'F'); |
252 |
$form->setBloc('conseil_regional', 'D', "", "group"); |
253 |
$form->setBloc('conseil_regional', 'F'); |
254 |
$form->setBloc('titre_obt_diplo_spec', 'D', __("Obtention du diplôme de spécialisation et d’approfondissement en architecture mention architecture et patrimoine ou équivalent"), "alignForm"); |
255 |
$form->setBloc('lieu_obt_diplo_spec', 'F'); |
256 |
$form->setFieldset('lieu_obt_diplo_spec', 'F'); |
257 |
} |
258 |
|
259 |
/** |
260 |
* SETTER_FORM - setVal (setVal). |
261 |
* |
262 |
* @return void |
263 |
*/ |
264 |
function setVal(&$form, $maj, $validation, &$dnu1 = null, $dnu2 = null) { |
265 |
parent::setVal($form, $maj, $validation); |
266 |
// |
267 |
if ($maj == 0) { |
268 |
$form->setVal("pays", "France"); |
269 |
} |
270 |
} |
271 |
|
272 |
/** |
273 |
* Lbellé des champs |
274 |
*/ |
275 |
function setLib(&$form,$maj) { |
276 |
parent::setLib($form,$maj); |
277 |
$form->setLib('qualite', ''); |
278 |
$form->setLib('om_collectivite', ''); |
279 |
|
280 |
// Dans le cas d’une intervention sur un immeuble classé au titre des monuments historiques |
281 |
$form->setLib('titre_obt_diplo_spec', __("Titre")); |
282 |
$form->setLib('date_obt_diplo_spec', __("Date")); |
283 |
$form->setLib('lieu_obt_diplo_spec', __("Établissement / ville / pays")); |
284 |
} |
285 |
|
286 |
/** |
287 |
* SETTER_FORM - setValsousformulaire (setVal). |
288 |
* |
289 |
* @return void |
290 |
*/ |
291 |
function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) { |
292 |
parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire); |
293 |
// |
294 |
if ($maj == 0) { |
295 |
$form->setVal("pays", "France"); |
296 |
} |
297 |
// XXX L'objectif de cette portion de code n'est pas de faire un setVal |
298 |
// Message d'information concernant la modification des demandeurs |
299 |
// fréquents |
300 |
if ($maj == 1 && $this->getVal("frequent") == "t") { |
301 |
switch ($this->getVal("type_demandeur")) { |
302 |
case "petitionnaire": |
303 |
$type_demandeur = _("Pétitionnaire"); |
304 |
break; |
305 |
|
306 |
case "avocat": |
307 |
$type_demandeur = _("Avocat"); |
308 |
break; |
309 |
|
310 |
case "bailleur": |
311 |
$type_demandeur = _("Bailleur"); |
312 |
break; |
313 |
} |
314 |
$message = sprintf(_("%s fréquent non modifiable"), $type_demandeur); |
315 |
$this->f->displayMessage("info", $message); |
316 |
} |
317 |
} |
318 |
|
319 |
/** |
320 |
* @return void |
321 |
*/ |
322 |
function verifier($val = array(), &$dnu1 = null, $dnu2 = null) { |
323 |
parent::verifier($val); |
324 |
// le nom du particulier est obligatoire |
325 |
if($this->valF['qualite'] == "particulier" AND $this->valF['particulier_nom'] == "") { |
326 |
$this->correct = false; |
327 |
$this->addToMessage(_("Le champ")." <span class=\"bold\">". |
328 |
_("particulier_nom")."</span> "._("est obligatoire.")); |
329 |
} |
330 |
|
331 |
// la dénomination ou la raison sociale est obligatoire pour une personne morale |
332 |
if($this->valF['qualite'] == "personne_morale" |
333 |
AND $this->valF['personne_morale_denomination'] == "" |
334 |
AND $this->valF['personne_morale_raison_sociale'] == "") { |
335 |
$this->correct = false; |
336 |
$this->addToMessage(_("Un des champs")." <span class=\"bold\">". |
337 |
_("personne_morale_denomination")."</span> ou <span class=\"bold\">". |
338 |
_("personne_morale_raison_sociale")."</span> "._("doit etre rempli.")); |
339 |
} |
340 |
|
341 |
// Le numéro de SIRET doit contenir obligatoirement 14 caractères |
342 |
if ($this->valF['qualite'] == "personne_morale" |
343 |
&& $this->valF['personne_morale_siret'] != null |
344 |
&& strlen($this->valF['personne_morale_siret']) != 14) { |
345 |
$this->correct = false; |
346 |
$this->addToMessage(_("Le champ")." <span class=\"bold\">".__("personne_morale_siret")."</span>".__(" doit contenir 14 caractères.")); |
347 |
} |
348 |
|
349 |
} |
350 |
|
351 |
/** |
352 |
* Methode setTaille |
353 |
*/ |
354 |
function setTaille(&$form, $maj) { |
355 |
parent::setTaille($form, $maj); |
356 |
$form->setTaille("personne_morale_siret", 14); |
357 |
} |
358 |
|
359 |
/** |
360 |
* Methode setMax |
361 |
*/ |
362 |
function setMax(&$form, $maj) { |
363 |
parent::setMax($form, $maj); |
364 |
$form->setMax("personne_morale_siret", 14); |
365 |
} |
366 |
|
367 |
/* |
368 |
* Select pour les champs qualite et type_demandeur |
369 |
*/ |
370 |
function setType(&$form,$maj) { |
371 |
parent::setType($form,$maj); |
372 |
|
373 |
$form->setType('num_inscription', 'hidden'); |
374 |
$form->setType('nom_cabinet', 'hidden'); |
375 |
$form->setType('conseil_regional', 'hidden'); |
376 |
$form->setType('titre_obt_diplo_spec', 'hidden'); |
377 |
$form->setType('date_obt_diplo_spec', 'hidden'); |
378 |
$form->setType('lieu_obt_diplo_spec', 'hidden'); |
379 |
|
380 |
if ($maj < 2) { //ajouter et modifier |
381 |
|
382 |
$form->setType('type_demandeur', 'select'); |
383 |
$form->setType('qualite', 'select'); |
384 |
if ($this->f->is_option_mode_service_consulte_enabled() === false) { |
385 |
if ($maj == 1){ |
386 |
if ($this->get_dossier_from_link() !== false && $this->get_dossier_from_link() !== null) { |
387 |
$id_dossier = null; |
388 |
if (empty($this->get_dossier_from_link())) { |
389 |
if ($this->f->get_submitted_get_value('idx_dossier') != null) { |
390 |
$id_dossier = $this->f->get_submitted_get_value('idx_dossier'); |
391 |
} |
392 |
} else { |
393 |
$id_dossier=$this->get_dossier_from_link()[0]['dossier']; |
394 |
} |
395 |
|
396 |
$inst_dossier = $this->f->get_inst__om_dbform(array( |
397 |
"obj" => "dossier", |
398 |
"idx" => $id_dossier, |
399 |
)); |
400 |
if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true |
401 |
&& $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') { |
402 |
// |
403 |
$required_fields_platau = $inst_dossier->get_list_platau_required_fields_dossier(); |
404 |
foreach ($required_fields_platau as $required_field_platau) { |
405 |
$champ = explode('.', $required_field_platau)[1]; |
406 |
if (in_array($champ, $this->champs)) { |
407 |
$form->setType($champ ,$form->type[$champ].'_demat_color'); |
408 |
} |
409 |
} |
410 |
} |
411 |
} |
412 |
} |
413 |
if ($maj == 0) { |
414 |
$inst_dossier = $this->f->get_inst__om_dbform(array( |
415 |
"obj" => "dossier", |
416 |
"idx" => $this->f->get_submitted_get_value('idx_dossier'), |
417 |
)); |
418 |
if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true |
419 |
&& $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') { |
420 |
// |
421 |
$required_fields_platau = $inst_dossier->get_list_platau_required_fields_dossier(); |
422 |
foreach ($required_fields_platau as $required_field_platau) { |
423 |
$champ = explode('.', $required_field_platau)[1]; |
424 |
if (in_array($champ, $this->champs)) { |
425 |
$form->setType($champ ,$form->type[$champ].'_demat_color'); |
426 |
} |
427 |
} |
428 |
} |
429 |
} |
430 |
} |
431 |
if($maj == 0 AND $this->getParameter("idx_demandeur") != "") { |
432 |
$form->setType('frequent','hidden'); |
433 |
$form->setType('qualite','selectdisabled'); |
434 |
$form->setType('particulier_nom','textdisabled'); |
435 |
$form->setType('particulier_prenom','textdisabled'); |
436 |
$form->setType('particulier_date_naissance','datedisabled'); |
437 |
$form->setType('particulier_commune_naissance','textdisabled'); |
438 |
$form->setType('particulier_departement_naissance','textdisabled'); |
439 |
$form->setType('particulier_pays_naissance','textdisabled'); |
440 |
$form->setType('personne_morale_denomination','textdisabled'); |
441 |
$form->setType('personne_morale_raison_sociale','textdisabled'); |
442 |
$form->setType('personne_morale_siret','textdisabled'); |
443 |
$form->setType('personne_morale_categorie_juridique','textdisabled'); |
444 |
$form->setType('personne_morale_nom','textdisabled'); |
445 |
$form->setType('personne_morale_prenom','textdisabled'); |
446 |
$form->setType('particulier_civilite','selectdisabled'); |
447 |
$form->setType('personne_morale_civilite','selectdisabled'); |
448 |
$form->setType('telephone_fixe','textdisabled'); |
449 |
$form->setType('telephone_mobile','textdisabled'); |
450 |
$form->setType('fax','textdisabled'); |
451 |
$form->setType('indicatif','textdisabled'); |
452 |
$form->setType('courriel','textdisabled'); |
453 |
|
454 |
} |
455 |
} |
456 |
|
457 |
$form->setType('demandeur', 'hidden'); |
458 |
|
459 |
} |
460 |
|
461 |
/** |
462 |
* SETTER_FORM - setSelect. |
463 |
* |
464 |
* @return void |
465 |
*/ |
466 |
function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) { |
467 |
parent::setSelect($form, $maj); |
468 |
|
469 |
// Type du demandeur |
470 |
$contenu=array(); |
471 |
|
472 |
$contenu[0][0]=""; |
473 |
$contenu[1][0]=_('choisir')." "._('type_demandeur'); |
474 |
$contenu[0][2]="petitionnaire"; |
475 |
$contenu[1][2]=_('petitionnaire'); |
476 |
$contenu[0][1]="delegataire"; |
477 |
$contenu[1][1]=_('autre correspondant'); |
478 |
$contenu[0][3]="plaignant"; |
479 |
$contenu[1][3]=_('Plaignant'); |
480 |
$contenu[0][4]="contrevenant"; |
481 |
$contenu[1][4]=_('Contrevenant'); |
482 |
$contenu[0][5]="requerant"; |
483 |
$contenu[1][5]=_('Requérant'); |
484 |
$contenu[0][6]="avocat"; |
485 |
$contenu[1][6]=_('Avocat'); |
486 |
$contenu[0][7]="bailleur"; |
487 |
$contenu[1][7]=_('Bailleur'); |
488 |
$contenu[0][8] = "proprietaire"; |
489 |
$contenu[1][8] = __('Propriétaire'); |
490 |
$contenu[0][9] = "architecte_lc"; |
491 |
$contenu[1][9] = __('Architecte législation connexe'); |
492 |
$contenu[0][10] = "paysagiste"; |
493 |
$contenu[1][10] = __('Concepteur-Paysagiste'); |
494 |
|
495 |
$form->setSelect("type_demandeur", $contenu); |
496 |
|
497 |
// Qualité du demandeur |
498 |
$contenu=array(); |
499 |
|
500 |
$contenu[0][0]="particulier"; |
501 |
$contenu[1][0]=_('particulier'); |
502 |
$contenu[0][1]="personne_morale"; |
503 |
$contenu[1][1]=_('personne morale'); |
504 |
|
505 |
$form->setSelect("qualite", $contenu); |
506 |
} |
507 |
|
508 |
/* |
509 |
* Ajoute l'action javascript sur le select de la qualité |
510 |
*/ |
511 |
function setOnchange(&$form,$maj){ |
512 |
parent::setOnchange($form,$maj); |
513 |
|
514 |
$form->setOnchange("qualite","changeDemandeurType('qualite');"); |
515 |
} |
516 |
|
517 |
/** |
518 |
* Ajout d'un champs caché permettant de linker l'id du demandeur |
519 |
* recement ajouté |
520 |
**/ |
521 |
function sousFormSpecificContent($maj) { |
522 |
$id_demandeur = $this->getVal("demandeur"); |
523 |
if(isset($this->valF["demandeur"]) AND !empty($this->valF["demandeur"])) { |
524 |
echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"". |
525 |
$this->valF["demandeur"]."\" />"; |
526 |
} elseif (isset($id_demandeur) AND !empty($id_demandeur) AND $maj == 110) { |
527 |
echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"". |
528 |
$this->getVal("demandeur")."\" />"; |
529 |
} |
530 |
} |
531 |
/** |
532 |
* Surcharge du lien de retour permettant de linker l'id du demandeur |
533 |
* recement ajouté |
534 |
**/ |
535 |
function retoursousformulaire($idxformulaire = NULL, $retourformulaire = NULL, $val = NULL, |
536 |
$objsf = NULL, $premiersf = NULL, $tricolsf = NULL, $validation = NULL, |
537 |
$idx = NULL, $maj = NULL, $retour = NULL) { |
538 |
if($retourformulaire === "demande") { |
539 |
echo "\n<a class=\"retour\" "; |
540 |
echo "href=\"#\">"; |
541 |
// |
542 |
echo _("Retour"); |
543 |
// |
544 |
echo "</a>\n"; |
545 |
} else { |
546 |
parent::retoursousformulaire($idxformulaire, $retourformulaire, $val, |
547 |
$objsf, $premiersf, $tricolsf, $validation, |
548 |
$idx, $maj, $retour); |
549 |
} |
550 |
} |
551 |
|
552 |
/** |
553 |
* Ajout du paramètre principal |
554 |
*/ |
555 |
function getDataSubmitSousForm() { |
556 |
/*Création du lien de validation du sous-formulaire*/ |
557 |
$datasubmit = ""; |
558 |
$datasubmit .= OM_ROUTE_SOUSFORM; |
559 |
$datasubmit .= "&obj=".$this->get_absolute_class_name(); |
560 |
$datasubmit .= "&validation=".$this->getParameter("validation"); |
561 |
if ($this->getParameter("idx") != "]") { |
562 |
// |
563 |
if ($this->getParameter("maj") == 1) { // modifier |
564 |
$datasubmit .= "&action=1"; |
565 |
$datasubmit .= "&idx=".$this->getParameter("idx"); |
566 |
} else { // supprimer |
567 |
$datasubmit .= "&action=2"; |
568 |
$datasubmit .= "&idx=".$this->getParameter("idx"); |
569 |
} |
570 |
} |
571 |
$datasubmit .= "&premiersf=".$this->getParameter("premiersf"); |
572 |
$datasubmit .= "&retourformulaire=".$this->getParameter("retourformulaire"); |
573 |
$datasubmit .= "&trisf=".$this->getParameter("tricolsf"); |
574 |
$datasubmit .= "&idxformulaire=".$this->getParameter("idxformulaire"); |
575 |
$datasubmit .= "&principal=".$this->getParameter("principal"); |
576 |
// |
577 |
return $datasubmit; |
578 |
} |
579 |
|
580 |
/** |
581 |
* Synthèse des demandeurs pour le formulaire de la demande. |
582 |
* |
583 |
* @param string $type Type de demandeur. |
584 |
* @param boolean $linkable Affiche le lien d'édition. |
585 |
*/ |
586 |
function afficherSynthese($type, $linkable) { |
587 |
// Récupération du type de demandeur pour l'affichage |
588 |
switch ($type) { |
589 |
case 'petitionnaire_principal': |
590 |
$legend = _("Petitionnaire principal"); |
591 |
break; |
592 |
|
593 |
case 'delegataire': |
594 |
$legend = _("Autre correspondant"); |
595 |
break; |
596 |
|
597 |
case 'petitionnaire': |
598 |
$legend = _("Petitionnaire"); |
599 |
break; |
600 |
|
601 |
case 'contrevenant_principal': |
602 |
$legend = _("Contrevenant principal"); |
603 |
break; |
604 |
|
605 |
case 'contrevenant': |
606 |
$legend = _("Contrevenant"); |
607 |
break; |
608 |
|
609 |
case 'plaignant_principal': |
610 |
$legend = _("Plaignant principal"); |
611 |
break; |
612 |
|
613 |
case 'plaignant': |
614 |
$legend = _("Plaignant"); |
615 |
break; |
616 |
|
617 |
case 'requerant_principal': |
618 |
$legend = _("Requérant principal"); |
619 |
break; |
620 |
|
621 |
case 'requerant': |
622 |
$legend = _("Requérant"); |
623 |
break; |
624 |
|
625 |
case 'avocat_principal': |
626 |
$legend = _("Avocat principal"); |
627 |
break; |
628 |
|
629 |
case 'avocat': |
630 |
$legend = _("Avocat"); |
631 |
break; |
632 |
|
633 |
case 'bailleur_principal': |
634 |
$legend = _("Bailleur principal"); |
635 |
break; |
636 |
|
637 |
case 'bailleur': |
638 |
$legend = _("Bailleur"); |
639 |
break; |
640 |
|
641 |
case 'proprietaire': |
642 |
$legend = __('Propriétaire'); |
643 |
break; |
644 |
|
645 |
case 'architecte_lc': |
646 |
$legend = __('Architecte législation connexe'); |
647 |
break; |
648 |
|
649 |
case 'paysagiste': |
650 |
$legend = __('Concepteur-Paysagiste'); |
651 |
break; |
652 |
} |
653 |
|
654 |
// Initialisation de tous les éléments à afficher |
655 |
foreach ($this->champs as $champs) { |
656 |
${$champs} = $this->val[array_search($champs, $this->champs)] != "" ? |
657 |
$this->val[array_search($champs, $this->champs)] : |
658 |
''; |
659 |
if ($champs == 'notification') { |
660 |
$notification = $this->val[array_search($champs, $this->champs)] == "t" ? |
661 |
'(Accepte les couriels)' : |
662 |
''; |
663 |
} |
664 |
} |
665 |
|
666 |
// Templates utilisés pour réaliser l'affichage |
667 |
$templateConteneurDemandeur = |
668 |
'<div class="%1$s col_6" id="%1$s_%2$s"> |
669 |
<div class="legend_synthese_demandeur"> |
670 |
%3$s |
671 |
</div> |
672 |
<div class="synthese_demandeur">'; |
673 |
|
674 |
$templateLienDemandeur = |
675 |
'<a href="#" onclick="removeDemandeur(\'%1$s_%2$s\'); return false;"> |
676 |
<span class="demandeur_del om-icon om-icon-16 om-icon-fix delete-16" title="%3$s"> |
677 |
%3$s |
678 |
</span> |
679 |
</a>'; |
680 |
|
681 |
$templateLienModifDemandeur = |
682 |
'<a class="edit_demandeur" href="#" onclick="editDemandeur(\'%1$s\',%2$s,\'%3$s\',%3$s_%2$s); return false;">'; |
683 |
|
684 |
// Conteneur du demandeur |
685 |
printf( |
686 |
$templateConteneurDemandeur, |
687 |
$type, |
688 |
$demandeur, |
689 |
$legend |
690 |
); |
691 |
// Si le paramètre linkable est défini à true on ajoute les balises |
692 |
// de lien |
693 |
if ($linkable === true) { |
694 |
printf( |
695 |
$templateLienDemandeur, |
696 |
$type, |
697 |
$demandeur, |
698 |
_("Supprimer le demandeur") |
699 |
); |
700 |
} |
701 |
$input_name = $type.'[]'; |
702 |
|
703 |
// Valeur de formulaire à retourner |
704 |
printf( |
705 |
"<input type=\"hidden\" class=\"demandeur_id\" name=\"%s\" value=\"%s\" />\n", |
706 |
$input_name, |
707 |
$this->val[array_search('demandeur', $this->champs)] |
708 |
); |
709 |
|
710 |
// Lien de modification du demandeur |
711 |
if ($linkable === true) { |
712 |
printf( |
713 |
$templateLienModifDemandeur, |
714 |
$type_demandeur, |
715 |
$demandeur, |
716 |
$type |
717 |
); |
718 |
} |
719 |
|
720 |
// Préparation des infos du demandeur qui seront affichées en les stockant dans un tableau |
721 |
// Chaque élement du tableau correspond a une ligne dans l'affichage |
722 |
$infosAffichage = array(); |
723 |
if ($qualite == 'particulier') { |
724 |
$infosAffichage['particulier'] = $particulier_nom." ".$particulier_prenom; |
725 |
// S'il existe une civilité elle est ajoutée devant le nom du particulier |
726 |
if ( ! empty($particulier_civilite)) { |
727 |
$inst_civilite = $this->f->get_inst__om_dbform(array( |
728 |
"obj" => "civilite", |
729 |
"idx" => $particulier_civilite, |
730 |
)); |
731 |
$infosAffichage['particulier'] = $inst_civilite->getVal("libelle")." ".$particulier_nom." ".$particulier_prenom; |
732 |
} |
733 |
} else { |
734 |
$infosAffichage['personne_morale'] = $personne_morale_raison_sociale." ".$personne_morale_denomination; |
735 |
$infosAffichage['personne_morale_jur'] = $personne_morale_siret." ".$personne_morale_categorie_juridique; |
736 |
$infosAffichage['personne_morale_nom'] = $personne_morale_nom." ".$personne_morale_prenom; |
737 |
// S'il existe une civilité elle est ajoutée devant le nom de la personne morale |
738 |
if (! empty($personne_morale_civilite)) { |
739 |
$inst_civilite = $this->f->get_inst__om_dbform(array( |
740 |
"obj" => "civilite", |
741 |
"idx" => $personne_morale_civilite, |
742 |
)); |
743 |
$infosAffichage['personne_morale_nom'] = $inst_civilite->getVal("libelle")." ".$personne_morale_nom." ".$personne_morale_prenom; |
744 |
} |
745 |
} |
746 |
$infosAffichage['adresse_1'] = $numero." ".$voie." ".$complement; |
747 |
$infosAffichage['adresse_2'] = $lieu_dit; |
748 |
$infosAffichage['adresse_3'] = $code_postal." ".$localite." ".$bp." ".$cedex; |
749 |
$infosAffichage['adresse_4'] = $division_territoriale." ".$pays; |
750 |
$infosAffichage['telephones'] = $telephone_fixe." ".$telephone_mobile; |
751 |
$infosAffichage['courriel'] = $courriel." ".$notification; |
752 |
|
753 |
// Affichage de la date et du lieu de naissance sous la forme : |
754 |
// - s'il existe une date et un lieu de naissance : né le XX/XX/XX à XXXX |
755 |
// - s'il existe une date de naissance : né le XX/XX/XX |
756 |
// - s'il existe juste un lieu de naissance : né à XXXX |
757 |
// Converti la date du format YYYY-MM-DD au format DD/MM/YYYY |
758 |
$particulier_date_naissance = $this->dateDBToForm($particulier_date_naissance); |
759 |
if ($qualite == 'particulier') { |
760 |
$lieuNaissance = trim($particulier_commune_naissance.' '.$particulier_departement_naissance.' '.$particulier_pays_naissance); |
761 |
if ($particulier_date_naissance != '' && $lieuNaissance != '') { |
762 |
$infosAffichage['naissance'] = sprintf( |
763 |
'Né le %s à %s', |
764 |
$particulier_date_naissance, |
765 |
$lieuNaissance |
766 |
); |
767 |
} elseif ($particulier_date_naissance != '') { |
768 |
$infosAffichage['naissance'] = sprintf( |
769 |
'Né le %s', |
770 |
$particulier_date_naissance |
771 |
); |
772 |
} elseif ($lieuNaissance != '') { |
773 |
$infosAffichage['naissance'] = sprintf( |
774 |
'Né à %s', |
775 |
$lieuNaissance |
776 |
); |
777 |
} |
778 |
} |
779 |
|
780 |
// Permet de n'avoir de retour à la ligne que si des informations ont été affichées |
781 |
foreach ($infosAffichage as $info) { |
782 |
$info = trim($info); |
783 |
if ($info != '') { |
784 |
printf( |
785 |
'%s<br/>', |
786 |
$info |
787 |
); |
788 |
} |
789 |
} |
790 |
|
791 |
if ($linkable === true) { |
792 |
echo "</a>\n"; |
793 |
} |
794 |
echo "</div>\n"; |
795 |
echo "</div>\n"; |
796 |
} |
797 |
|
798 |
/** |
799 |
* |
800 |
*/ |
801 |
function get_inst_civilite($civilite) { |
802 |
return $this->get_inst_common("civilite", $civilite); |
803 |
} |
804 |
|
805 |
/** |
806 |
* Retourne un tableau avec les données principales du demandeur. |
807 |
* |
808 |
* L'objectif est de mettre à disposition via un WS Reste un ensemble |
809 |
* de données exploitable par une autre application. |
810 |
*/ |
811 |
function get_datas() { |
812 |
|
813 |
/** |
814 |
* |
815 |
*/ |
816 |
$particulier_civilite = ""; |
817 |
$personne_morale_civilite = ""; |
818 |
if ($this->getVal('qualite') == 'particulier' |
819 |
&& $this->getVal('particulier_civilite') !== '') { |
820 |
// |
821 |
$inst_civilite = $this->get_inst_civilite($this->getVal('particulier_civilite')); |
822 |
$particulier_civilite = $inst_civilite->getVal("libelle"); |
823 |
} elseif ($this->getVal('qualite') == 'personne_morale' |
824 |
&& $this->getVal('personne_morale_civilite') !== '') { |
825 |
// |
826 |
$inst_civilite = $this->get_inst_civilite($this->getVal('personne_morale_civilite')); |
827 |
$personne_morale_civilite = $inst_civilite->getVal("libelle"); |
828 |
} |
829 |
|
830 |
/** |
831 |
* |
832 |
*/ |
833 |
// |
834 |
$datas = array( |
835 |
"demandeur" => $this->getVal($this->clePrimaire), |
836 |
"qualite" => $this->getVal("qualite"), |
837 |
); |
838 |
|
839 |
if ($this->getVal('qualite') == 'particulier') { |
840 |
$datas["particulier_civilite"] = $particulier_civilite; |
841 |
$datas["particulier_nom"] = $this->getVal("particulier_nom"); |
842 |
$datas["particulier_prenom"] = $this->getVal("particulier_prenom"); |
843 |
$datas["particulier_date_naissance"] = $this->getVal("particulier_date_naissance"); |
844 |
$datas["particulier_commune_naissance"] = $this->getVal("particulier_commune_naissance"); |
845 |
$datas["particulier_departement_naissance"] = $this->getVal("particulier_departement_naissance"); |
846 |
$datas["particulier_pays_naissance"] = $this->getVal("particulier_pays_naissance"); |
847 |
} |
848 |
if ($this->getVal('qualite') == 'personne_morale') { |
849 |
$datas["personne_morale_civilite"] = $personne_morale_civilite; |
850 |
$datas["personne_morale_denomination"] = $this->getVal("personne_morale_denomination"); |
851 |
$datas["personne_morale_raison_sociale"] = $this->getVal("personne_morale_raison_sociale"); |
852 |
$datas["personne_morale_siret"] = $this->getVal("personne_morale_siret"); |
853 |
$datas["personne_morale_categorie_juridique"] = $this->getVal("personne_morale_categorie_juridique"); |
854 |
$datas["personne_morale_nom"] = $this->getVal("personne_morale_nom"); |
855 |
$datas["personne_morale_prenom"] = $this->getVal("personne_morale_prenom"); |
856 |
} |
857 |
// |
858 |
$datas["numero"] = $this->getVal("numero"); |
859 |
$datas["voie"] = $this->getVal("voie"); |
860 |
$datas["complement"] = $this->getVal("complement"); |
861 |
$datas["lieu_dit"] = $this->getVal("lieu_dit"); |
862 |
$datas["localite"] = $this->getVal("localite"); |
863 |
$datas["code_postal"] = $this->getVal("code_postal"); |
864 |
$datas["bp"] = $this->getVal("bp"); |
865 |
$datas["cedex"] = $this->getVal("cedex"); |
866 |
$datas["pays"] = $this->getVal("pays"); |
867 |
$datas["division_territoriale"] = $this->getVal("division_territoriale"); |
868 |
$datas["telephone_fixe"] = $this->getVal("telephone_fixe"); |
869 |
$datas["telephone_mobile"] = $this->getVal("telephone_mobile"); |
870 |
$datas["indicatif"] = $this->getVal("indicatif"); |
871 |
$datas["courriel"] = $this->getVal("courriel"); |
872 |
$datas["fax"] = $this->getVal("fax"); |
873 |
|
874 |
/** |
875 |
* |
876 |
*/ |
877 |
return $datas; |
878 |
} |
879 |
|
880 |
|
881 |
/** |
882 |
* Indique si la redirection vers le lien de retour est activée ou non. |
883 |
* |
884 |
* L'objectif de cette méthode est de permettre d'activer ou de désactiver |
885 |
* la redirection dans certains contextes. |
886 |
* |
887 |
* @return boolean |
888 |
*/ |
889 |
function is_back_link_redirect_activated() { |
890 |
// |
891 |
if ($this->getParameter("retourformulaire") === 'demande') { |
892 |
// |
893 |
return false; |
894 |
} |
895 |
|
896 |
// |
897 |
return true; |
898 |
} |
899 |
|
900 |
public function get_dossier_from_link() { |
901 |
$query = sprintf(' |
902 |
SELECT lien_dossier_demandeur.dossier |
903 |
FROM %1$slien_dossier_demandeur |
904 |
WHERE lien_dossier_demandeur.demandeur = \'%2$s\' |
905 |
', |
906 |
DB_PREFIXE, |
907 |
$this->getVal($this->clePrimaire) |
908 |
); |
909 |
$res = $this->f->get_all_results_from_db_query( |
910 |
$query, |
911 |
array( |
912 |
"origin" => __METHOD__, |
913 |
"force_return" => true, |
914 |
) |
915 |
); |
916 |
if ($res['code'] === 'KO') { |
917 |
return false; |
918 |
} |
919 |
return $res['result']; |
920 |
} |
921 |
|
922 |
public function triggermodifierapres($id, &$dnu1 = null, $val = array(), $dnu2 = null) { |
923 |
parent::triggermodifierapres($id, $dnu1, $val, $dnu2); |
924 |
if (count(array_diff_assoc($this->valF, array_combine($this->champs, $this->val))) > 0) { |
925 |
/** |
926 |
* Gestion des tâches pour la dématérialisation |
927 |
*/ |
928 |
$dossiers = $this->get_dossier_from_link(); |
929 |
foreach ($dossiers as $dossier) { |
930 |
// |
931 |
$inst_dossier = $this->f->get_inst__om_dbform(array( |
932 |
"obj" => "dossier", |
933 |
"idx" => $dossier['dossier'], |
934 |
)); |
935 |
|
936 |
if ($this->f->is_option_mode_service_consulte_enabled() === false |
937 |
&& $this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true |
938 |
&& $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') { |
939 |
|
940 |
$trigger_platau_required_fields = $inst_dossier->trigger_platau_required_fields($dossier['dossier']); |
941 |
// Gestion de l'erreur |
942 |
if (! $trigger_platau_required_fields) { |
943 |
$this->addToMessage(sprintf('%s %s', |
944 |
__("Une erreur s'est produite lors de la mise à jour de l'état de transmission du dossier."), |
945 |
__("Veuillez contacter votre administrateur.") |
946 |
)); |
947 |
$this->correct = false; |
948 |
return false; |
949 |
} |
950 |
} |
951 |
|
952 |
if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) |
953 |
&& $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible' |
954 |
&& ($this->f->is_option_mode_service_consulte_enabled() !== true |
955 |
|| ($this->f->is_option_mode_service_consulte_enabled() === true |
956 |
&& ($inst_dossier->get_source_depot_from_demande() === PLATAU |
957 |
|| $inst_dossier->get_source_depot_from_demande() === PORTAL)))) { |
958 |
// |
959 |
$inst_task = $this->f->get_inst__om_dbform(array( |
960 |
"obj" => "task", |
961 |
"idx" => 0, |
962 |
)); |
963 |
$task_val = array( |
964 |
'type' => 'modification_DI', |
965 |
'object_id' => $dossier['dossier'], |
966 |
'dossier' => $dossier['dossier'], |
967 |
); |
968 |
// Change l'état de la tâche de notification en fonction de l'état de |
969 |
// transmission du dossier d'instruction |
970 |
if ($this->f->is_option_mode_service_consulte_enabled() === false |
971 |
&& ($this->getVal('etat_transmission_platau') == 'non_transmissible' |
972 |
|| $this->getVal('etat_transmission_platau') == 'transmis_mais_non_transmissible')) { |
973 |
// |
974 |
$task_val['state'] = $inst_task::STATUS_DRAFT; |
975 |
} |
976 |
$add_task = $inst_task->add_task(array('val' => $task_val)); |
977 |
if ($add_task === false) { |
978 |
$this->addToMessage(sprintf('%s %s', |
979 |
__("Une erreur s'est produite lors de la création tâche."), |
980 |
__("Veuillez contacter votre administrateur.") |
981 |
)); |
982 |
$this->correct = false; |
983 |
return false; |
984 |
} |
985 |
// XXX Les données du DA sont mises à jour seulement lors de l'ajout ou modification |
986 |
// d'une instruction du DI initial et lors de la décision sur le DI non initial. |
987 |
// Sachant ce comportement, voir si cette tâche modification_DA est bien située. |
988 |
// $inst_task = $this->f->get_inst__om_dbform(array( |
989 |
// "obj" => "task", |
990 |
// "idx" => 0, |
991 |
// )); |
992 |
// $task_val = array( |
993 |
// 'type' => 'modification_DA', |
994 |
// 'object_id' => $inst_dossier->getVal('dossier_autorisation'), |
995 |
// 'dossier' => $inst_dossier->getVal('dossier_autorisation'), |
996 |
// ); |
997 |
// // Change l'état de la tâche de notification en fonction de l'état de |
998 |
// // transmission du dossier d'instruction |
999 |
// if ($this->f->is_option_mode_service_consulte_enabled() === false |
1000 |
// && ($this->getVal('etat_transmission_platau') == 'non_transmissible' |
1001 |
// || $this->getVal('etat_transmission_platau') == 'transmis_mais_non_transmissible')) { |
1002 |
// // |
1003 |
// $task_val['state'] = $inst_task::STATUS_DRAFT; |
1004 |
// } |
1005 |
// $add_task = $inst_task->add_task(array('val' => $task_val)); |
1006 |
// if ($add_task === false) { |
1007 |
// $this->addToMessage(sprintf('%s %s', |
1008 |
// __("Une erreur s'est produite lors de la création tâche."), |
1009 |
// __("Veuillez contacter votre administrateur.") |
1010 |
// )); |
1011 |
// $this->correct = false; |
1012 |
// return false; |
1013 |
// } |
1014 |
} |
1015 |
} |
1016 |
} |
1017 |
// |
1018 |
return true; |
1019 |
} |
1020 |
|
1021 |
public function view_json_data() { |
1022 |
$this->checkAccessibility(); |
1023 |
$this->f->disableLog(); |
1024 |
$view = $this->get_json_data(); |
1025 |
printf(json_encode($view)); |
1026 |
} |
1027 |
|
1028 |
public function get_json_data() { |
1029 |
$val = array_combine($this->champs, $this->val); |
1030 |
foreach ($val as $key => $value) { |
1031 |
$val[$key] = strip_tags($value); |
1032 |
} |
1033 |
return $val; |
1034 |
} |
1035 |
|
1036 |
}// fin classe |
1037 |
|