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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 13137 - (show annotations)
Thu Oct 27 20:34:03 2022 UTC (2 years, 3 months ago) by softime
File size: 40626 byte(s)
* Fusion de la branche d'intégration 5.14.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 //
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 .= "&amp;validation=".$this->getParameter("validation");
548 if ($this->getParameter("idx") != "]") {
549 //
550 if ($this->getParameter("maj") == 1) { // modifier
551 $datasubmit .= "&amp;action=1";
552 $datasubmit .= "&amp;idx=".$this->getParameter("idx");
553 } else { // supprimer
554 $datasubmit .= "&amp;action=2";
555 $datasubmit .= "&amp;idx=".$this->getParameter("idx");
556 }
557 }
558 $datasubmit .= "&amp;premiersf=".$this->getParameter("premiersf");
559 $datasubmit .= "&amp;retourformulaire=".$this->getParameter("retourformulaire");
560 $datasubmit .= "&amp;trisf=".$this->getParameter("tricolsf");
561 $datasubmit .= "&amp;idxformulaire=".$this->getParameter("idxformulaire");
562 $datasubmit .= "&amp;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

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26