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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26