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