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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26