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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16749 - (show annotations)
Thu Feb 1 12:13:31 2024 UTC (11 months, 3 weeks ago) by softime
File size: 48467 byte(s)
chore(branch): fusion de la branche d'intégration 6.3.0-develop dans le trunk

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

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26