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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15650 - (hide 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 mbroquet 3730 <?php
2 softime 7996 /**
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 mbroquet 3730
11     require_once ("../gen/obj/demandeur.class.php");
12    
13     class demandeur extends demandeur_gen {
14    
15     var $required_tag = array("particulier_nom",
16 softime 6565 "personne_morale_denomination",
17     "personne_morale_raison_sociale"
18     );
19 softime 10573
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 softime 6565 /**
33 softime 8989 * Clause select pour la requête de sélection des données de l'enregistrement.
34 softime 6565 *
35 softime 7996 * @return array
36 softime 6565 */
37 softime 7996 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 softime 10573 'num_inscription',
68     'nom_cabinet',
69     'conseil_regional',
70 softime 15650 'titre_obt_diplo_spec',
71     'date_obt_diplo_spec',
72     'lieu_obt_diplo_spec',
73 softime 7996 );
74     }
75 softime 6565
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 softime 7067 $form->val['type_demandeur'] === 'avocat' ||
94     $form->val['type_demandeur'] === 'bailleur') {
95 softime 6565 $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 softime 10573 // 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 softime 6565 $form->setFieldset(
132     'om_collectivite',
133     'DF',
134 softime 10573 $om_collectivite_libelle
135 softime 6565 );
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 softime 7996 'particulier_pays_naissance',
169 softime 6565 'F'
170     );
171    
172 softime 7996 $form->setBloc('particulier_pays_naissance', 'F');
173 softime 6565
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 mbroquet 3730
217 softime 6565 // 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 softime 10573
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 softime 15650 $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 softime 6565 }
258    
259 softime 8989 /**
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 mbroquet 3730 }
270     }
271    
272 softime 6565 /**
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 softime 15650
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 softime 6565 }
285    
286 softime 8989 /**
287     * SETTER_FORM - setValsousformulaire (setVal).
288     *
289     * @return void
290     */
291 mbroquet 3730 function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) {
292 softime 8989 parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire);
293     //
294 softime 6565 if ($maj == 0) {
295 softime 8989 $form->setVal("pays", "France");
296 mbroquet 3730 }
297 softime 8989 // XXX L'objectif de cette portion de code n'est pas de faire un setVal
298 softime 7067 // Message d'information concernant la modification des demandeurs
299     // fréquents
300 softime 8989 if ($maj == 1 && $this->getVal("frequent") == "t") {
301     switch ($this->getVal("type_demandeur")) {
302     case "petitionnaire":
303 softime 7067 $type_demandeur = _("Pétitionnaire");
304     break;
305    
306 softime 8989 case "avocat":
307 softime 7067 $type_demandeur = _("Avocat");
308     break;
309    
310 softime 8989 case "bailleur":
311 softime 7067 $type_demandeur = _("Bailleur");
312     break;
313     }
314     $message = sprintf(_("%s fréquent non modifiable"), $type_demandeur);
315     $this->f->displayMessage("info", $message);
316 mbroquet 3730 }
317     }
318    
319     /**
320 softime 8989 * @return void
321     */
322     function verifier($val = array(), &$dnu1 = null, $dnu2 = null) {
323     parent::verifier($val);
324 mbroquet 3730 // 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 softime 10968 // 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 mbroquet 3730 }
350    
351 softime 10968 /**
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 mbroquet 3730 /*
368     * Select pour les champs qualite et type_demandeur
369     */
370     function setType(&$form,$maj) {
371     parent::setType($form,$maj);
372 softime 10573
373     $form->setType('num_inscription', 'hidden');
374     $form->setType('nom_cabinet', 'hidden');
375     $form->setType('conseil_regional', 'hidden');
376 softime 15650 $form->setType('titre_obt_diplo_spec', 'hidden');
377     $form->setType('date_obt_diplo_spec', 'hidden');
378     $form->setType('lieu_obt_diplo_spec', 'hidden');
379 softime 10573
380 mbroquet 3730 if ($maj < 2) { //ajouter et modifier
381    
382     $form->setType('type_demandeur', 'select');
383     $form->setType('qualite', 'select');
384 softime 10573 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 softime 10808 if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true
401     && $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') {
402     //
403 softime 15650 $required_fields_platau = $inst_dossier->get_list_platau_required_fields_dossier();
404 softime 10573 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 softime 10808 if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true
419     && $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') {
420     //
421 softime 15650 $required_fields_platau = $inst_dossier->get_list_platau_required_fields_dossier();
422 softime 10573 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 mbroquet 3730 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 softime 7996 $form->setType('particulier_pays_naissance','textdisabled');
440 mbroquet 3730 $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 softime 10573
457 mbroquet 3730 $form->setType('demandeur', 'hidden');
458    
459     }
460 softime 8989
461 softime 6565 /**
462 softime 8989 * SETTER_FORM - setSelect.
463 softime 6565 *
464 softime 8989 * @return void
465 mbroquet 3730 */
466 softime 8989 function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
467     parent::setSelect($form, $maj);
468 softime 6929
469 softime 6565 // Type du demandeur
470 mbroquet 3730 $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 softime 6565 $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 softime 7067 $contenu[0][7]="bailleur";
487     $contenu[1][7]=_('Bailleur');
488 softime 10573 $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 mbroquet 3730
495 softime 6565 $form->setSelect("type_demandeur", $contenu);
496 mbroquet 3730
497 softime 6565 // Qualité du demandeur
498 mbroquet 3730 $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 softime 6565 $form->setSelect("qualite", $contenu);
506 mbroquet 3730 }
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 softime 6565 } elseif (isset($id_demandeur) AND !empty($id_demandeur) AND $maj == 110) {
527 mbroquet 3730 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 softime 6929 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 mbroquet 3730 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 softime 7996 $datasubmit .= OM_ROUTE_SOUSFORM;
559     $datasubmit .= "&obj=".$this->get_absolute_class_name();
560 mbroquet 3730 $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 softime 6565 * 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 mbroquet 3730 */
586     function afficherSynthese($type, $linkable) {
587 softime 6565 // Récupération du type de demandeur pour l'affichage
588 mbroquet 3730 switch ($type) {
589     case 'petitionnaire_principal':
590 softime 6565 $legend = _("Petitionnaire principal");
591 mbroquet 3730 break;
592    
593     case 'delegataire':
594 softime 6565 $legend = _("Autre correspondant");
595 mbroquet 3730 break;
596    
597     case 'petitionnaire':
598 softime 6565 $legend = _("Petitionnaire");
599 mbroquet 3730 break;
600 softime 6565
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 softime 7067
633     case 'bailleur_principal':
634     $legend = _("Bailleur principal");
635     break;
636    
637     case 'bailleur':
638     $legend = _("Bailleur");
639     break;
640 softime 10573
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 mbroquet 3730 }
653    
654 softime 10713 // 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 mbroquet 3730 // Conteneur du demandeur
685 softime 10713 printf(
686     $templateConteneurDemandeur,
687     $type,
688     $demandeur,
689     $legend
690     );
691 softime 6565 // Si le paramètre linkable est défini à true on ajoute les balises
692     // de lien
693     if ($linkable === true) {
694 softime 10713 printf(
695     $templateLienDemandeur,
696     $type,
697     $demandeur,
698     _("Supprimer le demandeur")
699     );
700 mbroquet 3730 }
701 softime 6565 $input_name = $type.'[]';
702    
703 mbroquet 3730 // Valeur de formulaire à retourner
704 softime 6565 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 mbroquet 3730 // Lien de modification du demandeur
711 softime 6565 if ($linkable === true) {
712 softime 10713 printf(
713     $templateLienModifDemandeur,
714     $type_demandeur,
715     $demandeur,
716     $type
717     );
718 mbroquet 3730 }
719    
720 softime 10713 // 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 softime 14064 $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 mbroquet 3730 }
733     } else {
734 softime 10713 $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 softime 14064 $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 softime 10713 }
745 mbroquet 3730 }
746 softime 10713 $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 softime 6565 if ($linkable === true) {
792 mbroquet 3730 echo "</a>\n";
793     }
794     echo "</div>\n";
795     echo "</div>\n";
796     }
797    
798 fmichon 4708 /**
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 nhaye 4777 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 softime 7996 $datas["particulier_pays_naissance"] = $this->getVal("particulier_pays_naissance");
847 nhaye 4777 }
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 fmichon 4708 /**
875     *
876     */
877     return $datas;
878     }
879    
880 softime 7685
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 softime 10573 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 softime 13137 $res = $this->f->get_all_results_from_db_query(
910     $query,
911     array(
912     "origin" => __METHOD__,
913     "force_return" => true,
914     )
915     );
916 softime 10573 if ($res['code'] === 'KO') {
917     return false;
918     }
919     return $res['result'];
920     }
921 softime 7685
922 softime 10573 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 softime 10808 && $this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation')) === true
938     && $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible') {
939 softime 13137
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 softime 10573 }
951    
952     if ($this->f->is_type_dossier_platau($inst_dossier->getVal('dossier_autorisation'))
953 softime 10808 && $inst_dossier->getVal('etat_transmission_platau') !== 'jamais_transmissible'
954 softime 10573 && ($this->f->is_option_mode_service_consulte_enabled() !== true
955     || ($this->f->is_option_mode_service_consulte_enabled() === true
956 softime 13137 && ($inst_dossier->get_source_depot_from_demande() === PLATAU
957     || $inst_dossier->get_source_depot_from_demande() === PORTAL)))) {
958 softime 10573 //
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 softime 10968 // $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 softime 10573 }
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 mbroquet 3730 }// fin classe
1037 softime 7996

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26