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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14064 - (hide annotations)
Thu Feb 16 22:52:47 2023 UTC (23 months, 2 weeks ago) by softime
File size: 69117 byte(s)
chore(branch): fusion de la branche d'intégration 5.16.0-develop dans le trunk

1 gmalvolti 12203 <?php
2     //$Id$
3     //gen openMairie le 01/06/2022 12:32
4    
5     require_once "../gen/obj/dossier_operateur.class.php";
6    
7     class dossier_operateur extends dossier_operateur_gen {
8 gmalvolti 12208
9 gmalvolti 12237 // Permet de stocker le tableau du om_parametre param_operateur.
10 gmalvolti 12208 private $param_operateur;
11    
12 gmalvolti 12203 /**
13     * Définition des actions disponibles sur la classe.
14     *
15     * @return void
16     */
17     function init_class_actions() {
18    
19     // On récupère les actions génériques définies dans la méthode
20     // d'initialisation de la classe parente
21     parent::init_class_actions();
22    
23     // ACTION - 001 - modifier
24 cgarcin 12406 // Modification de la condition d'affichage de l'action "modifier"
25 gmalvolti 12203 $this->class_actions[1]["condition"] = array("is_editable");
26    
27     // ACTION - 002 - supprimer
28     // Modification de la condition d'affichage de l'action "supprimer"
29 gmalvolti 12237 // Ne doit pas être affichée.
30 cgarcin 12406 $this->class_actions[2] = null;
31 gmalvolti 12203
32 cgarcin 12406 // ACTION - 005 - reinitialiser
33     // Action permettant de remettre à 0 la procédure de désignation d'un opérateur.
34 gmalvolti 12237 $this->class_actions[5] = array(
35     "identifier" => "reinitialiser",
36     "portlet" => array(
37     "type" => "action-direct-with-confirmation",
38 cgarcin 12326 "libelle" => __("Réinitialiser"),
39 gmalvolti 12237 "class" => "reinitialiser-16"
40     ),
41     "method" => "reinitialiser",
42     "permission_suffix" => "reinitialiser",
43     "view" => "formulaire",
44 gmalvolti 12313 "condition" => array('is_reinitialisable', 'is_param_operateur_etat_setted'),
45 gmalvolti 12237 );
46    
47 cgarcin 12406 // ACTION - 006 - valider
48     // Action permettant de valider l'opérateur désigné.
49 gmalvolti 12237 $this->class_actions[6] = array(
50     "identifier" => "valider",
51     "portlet" => array(
52     "type" => "action-direct-with-confirmation",
53 cgarcin 12326 "libelle" => __("Valider l'opérateur"),
54 gmalvolti 12237 "class" => "valider-16"
55     ),
56     "method" => "valider",
57     "permission_suffix" => "valider",
58     "view" => "formulaire",
59     "condition" => array('is_validable'),
60     );
61    
62 gmalvolti 12203 // ACTION - 10 - Recherche operateur
63 cgarcin 12406 // Action permettant d'initier la procédure de désignation d'un opérateur.
64 gmalvolti 12203 // Ce bouton est affiché seulement si le DA lié a déjà une clé d'accès
65     $this->class_actions[10] = array(
66     "identifier" => "recherche_operateur",
67     "portlet" => array(
68     "type" => "action-direct",
69 cgarcin 12326 "libelle" => __("Rechercher l'opérateur"),
70 gmalvolti 12203 "class" => "recherche_operateur-16"
71     ),
72     "method" => "recherche_operateur",
73     "permission_suffix" => "recherche_operateur",
74     "view" => "formulaire",
75 cgarcin 12406 "condition" => array('is_recherche_operateur_available', 'is_param_operateur_etat_setted'),
76 gmalvolti 12203 );
77     }
78    
79 gmalvolti 12237 /**
80     *
81     * @return array
82     */
83     function get_var_sql_forminc__champs() {
84 gmalvolti 12248 $champs = array(
85 gmalvolti 12237 "dossier_operateur",
86     "operateur_designation_initialisee",
87     "operateur_detecte_inrap",
88     "operateur_detecte_collterr",
89     "operateur_collterr_type_agrement",
90 gmalvolti 12248 "'' as operateur_message_kpark",
91 gmalvolti 12237 "operateur_amenagement_pers_publique",
92     "operateur_pers_publique_amenageur",
93     "operateur_collterr_kpark_avis",
94 gmalvolti 12248 "'' as message_consultation_amenageur",
95 gmalvolti 12237 "operateur_personne_publique",
96 gmalvolti 12248 "'' as message_consultation_tiers",
97 gmalvolti 12237 "operateur_personne_publique_avis",
98     "operateur_kpark_type_operateur",
99     "operateur_kpark_evenement",
100 gmalvolti 12381 "operateur_selectionne",
101 gmalvolti 12237 "operateur_designe",
102     "operateur_kpark_libelle",
103     "operateur_valide",
104     "operateur_designe_historique",
105     "dossier_instruction",
106     "'' as tab_avis",
107     "'' as tab_avis_maj",
108     );
109 gmalvolti 12300
110 cgarcin 12326 // Récupération du paramétrage stocké dans operateur_detecte_collterr à l'aide
111     // de l'identifiant du dossier_operateur.
112     // Ensuite, ce tableau est utilisé pour définir combien d'opérateur ont des
113     // avis et combien de champs tab_avis doivent être affiché.
114 gmalvolti 12300 if (! empty($this->f->get_submitted_get_value('idx'))
115     && $this->f->get_submitted_get_value('obj') == 'dossier_operateur') {
116 softime 13137 //
117     $qres = $this->f->get_one_result_from_db_query(
118     sprintf(
119     'SELECT
120     operateur_detecte_collterr
121     FROM
122     %1$sdossier_operateur
123     WHERE
124     dossier_operateur = %2$s',
125     DB_PREFIXE,
126     intval($this->f->get_submitted_get_value('idx'))
127     ),
128     array(
129     "origin" => __METHOD__,
130     )
131 gmalvolti 12254 );
132 softime 13137 $tab_collterr = json_decode(html_entity_decode($qres["result"]));
133 gmalvolti 12254 if (! empty($tab_collterr)) {
134 cgarcin 12326 for ($i=0; $i < count($tab_collterr); $i++) {
135 gmalvolti 12254 $champs[] = "'' as tab_avis_".$i;
136     }
137 gmalvolti 12248 }
138     }
139     return $champs;
140 gmalvolti 12237 }
141    
142 gmalvolti 12278 /**
143     * Surcharge permettant de ne pas afficher le fil d'Ariane dans
144     * l'overlay de notification des demandeurs.
145 cgarcin 12326 *
146     * @param todo non utilisé
147 gmalvolti 12278 */
148     function getSubFormTitle($ent) {
149     return __("Désignation de l'opérateur");
150     }
151 gmalvolti 12237
152 gmalvolti 12300 /**
153 cgarcin 12406 * Permet de savoir si l'état du dossier correspond a un des états paramétrés
154 cgarcin 12326 * dans le paramètre param_operateur.
155     *
156 gmalvolti 12300 * @return bool true|false
157     */
158 cgarcin 12406 protected function is_param_operateur_etat_setted() {
159     // Récupère le paramètre et le dossier d'instruction (DI). Vérifie si des états ont été
160     // paramétrés dans param_operateur et si c'est le cas vérifie si l'état du DI
161 cgarcin 12326 // correspond
162 gmalvolti 12300 $param_operateur = $this->f->get_option_param_operateur();
163     $inst_dossier = $this->f->get_inst__om_dbform(array(
164     "obj" => "dossier",
165     "idx" => $this->getVal('dossier_instruction'),
166     ));
167     if (is_object($param_operateur) === true && property_exists($param_operateur, 'etat') === true) {
168     if (in_array($inst_dossier->getVal('etat'), $param_operateur->etat) === true) {
169     return true;
170     }
171     }
172     return false;
173     }
174 gmalvolti 12278
175 gmalvolti 12300
176 gmalvolti 12237 /**
177     * Permet de retourner le paramètre param_operateur.
178 cgarcin 12326 *
179 gmalvolti 12237 * @return array
180     */
181 cgarcin 12409 protected function get_param_operateur() {
182 cgarcin 12326 // Fait appel à la méthode utils->get_option_param_operateur() et renvoie
183     // le résultat si le paralétrage n'a pas déjà été récupéré.
184 gmalvolti 12208 if (is_null($this->param_operateur)) {
185 softime 12847 $inst_dossier = $this->f->get_inst__om_dbform(array(
186     "obj" => "dossier",
187     "idx" => $this->getVal('dossier_instruction'),
188     ));
189     $this->param_operateur = $this->f->get_option_param_operateur($inst_dossier->getVal('om_collectivite'));
190 gmalvolti 12208 }
191     return $this->param_operateur;
192     }
193 gmalvolti 12203
194 gmalvolti 12237 /**
195 cgarcin 12326 * Renvoie sous la forme d'une chaîne de caractère le sql
196     * permettant de récupérer la liste des tiers consulté avec
197     * leur id et leur libellé
198 gmalvolti 12237 *
199     * @return string
200     */
201     function get_var_sql_forminc__sql_operateur_designe() {
202 cgarcin 12326 return "SELECT
203     tiers_consulte.tiers_consulte,
204     CONCAT_WS(
205     ' - ',
206     tiers_consulte.abrege,
207     tiers_consulte.libelle
208     ) as libelle
209     FROM
210     ".DB_PREFIXE."tiers_consulte
211     ORDER BY
212     tiers_consulte.libelle ASC";
213 gmalvolti 12237 }
214    
215     /**
216 cgarcin 12326 * Renvoie sous la forme d'une chaîne de caractère le sql
217     * permettant de récupérer l'id et le libellé d'un tiers consulté
218 cgarcin 12406 * à l'aide de son id
219     *
220 gmalvolti 12237 * @return string
221     */
222     function get_var_sql_forminc__sql_operateur_designe_by_id() {
223 cgarcin 12326 return "SELECT
224     tiers_consulte.tiers_consulte,
225     CONCAT_WS(
226     ' - ',
227     tiers_consulte.abrege,
228     tiers_consulte.libelle
229     ) as libelle
230     FROM
231     ".DB_PREFIXE."tiers_consulte
232     WHERE
233     tiers_consulte = <idx>";
234 gmalvolti 12237 }
235    
236     /**
237 gmalvolti 12381 * Renvoie sous la forme d'une chaîne de caractère le sql
238     * permettant de récupérer la liste des tiers consulté avec
239     * leur id et leur libellé
240     *
241     * @return string
242     */
243     function get_var_sql_forminc__sql_operateur_selectionne() {
244     return "SELECT
245     tiers_consulte.tiers_consulte,
246     CONCAT_WS(
247     ' - ',
248     tiers_consulte.abrege,
249     tiers_consulte.libelle
250     ) as libelle
251     FROM
252     ".DB_PREFIXE."tiers_consulte
253     ORDER BY
254     tiers_consulte.libelle ASC";
255     }
256    
257     /**
258     * Renvoie sous la forme d'une chaîne de caractère le sql
259     * permettant de récupérer l'id et le libellé d'un tiers consulté
260     * a l'aide de son id
261     *
262     * @return string
263     */
264     function get_var_sql_forminc__sql_operateur_selectionne_by_id() {
265     return "SELECT
266     tiers_consulte.tiers_consulte,
267     CONCAT_WS(
268     ' - ',
269     tiers_consulte.abrege,
270     tiers_consulte.libelle
271     ) as libelle
272     FROM
273     ".DB_PREFIXE."tiers_consulte
274     WHERE
275     tiers_consulte = <idx>";
276     }
277    
278     /**
279 cgarcin 12326 * Renvoie sous forme d'une chaine de caractére la requête sql
280     * permettant de récupérer la liste de tous les tiers appartenant
281     * aux catégories renseigné dans la partie categorie_tiers_amenageur_public
282     * du paramètre param_operateur.
283 gmalvolti 12284 *
284     * @return string
285     */
286     function get_var_sql_forminc__sql_operateur_personne_publique() {
287     $param_operateur = $this->get_param_operateur();
288 gmalvolti 12413
289     $conditions_categorie_tiers_amenageur_public = "= 0";
290 gmalvolti 12284
291 gmalvolti 12413 if (! empty($param_operateur->categorie_tiers_amenageur_public)) {
292     if (is_array($param_operateur->categorie_tiers_amenageur_public)) {
293     $conditions_categorie_tiers_amenageur_public = "IN ("
294     .$this->f->db->escapeSimple(implode(',', $param_operateur->categorie_tiers_amenageur_public))
295     .")";
296     } else {
297     $conditions_categorie_tiers_amenageur_public = "= ".$this->f->db->escapeSimple($param_operateur->categorie_tiers_amenageur_public);
298     }
299    
300     }
301 cgarcin 12326 return "SELECT
302     tiers_consulte.tiers_consulte,
303     tiers_consulte.libelle
304     FROM
305     ".DB_PREFIXE."tiers_consulte
306     WHERE
307 gmalvolti 12413 categorie_tiers_consulte ".$conditions_categorie_tiers_amenageur_public."
308 cgarcin 12326 ORDER BY
309     tiers_consulte.libelle ASC";
310 gmalvolti 12284 }
311    
312     /**
313 cgarcin 12326 * Renvoie sous forme d'une chaine de caractére la requête sql
314     * permettant de récupérer un tiers consulté et son libellé à partir
315     * de son id.
316 gmalvolti 12284 *
317     * @return string
318     */
319     function get_var_sql_forminc__sql_operateur_personne_publique_by_id() {
320 cgarcin 12326 return "SELECT
321     tiers_consulte.tiers_consulte,
322     tiers_consulte.libelle
323     FROM
324     ".DB_PREFIXE."tiers_consulte
325     WHERE
326     tiers_consulte = <idx>";
327 gmalvolti 12284 }
328    
329     /**
330 gmalvolti 12237 * Permet d'initialiser la recherche d'un opérateur.
331     * Si un cas remplit toutes les conditions alors on affiche l'opérateur trouvé.
332 cgarcin 12326 *
333 gmalvolti 12237 * @return bool true|false
334     */
335 cgarcin 12406 protected function recherche_operateur() {
336 gmalvolti 12208 $this->begin_treatment(__METHOD__);
337 cgarcin 12406 // Vérifie si le paramétrage des opérateurs est correct, c'est à dire
338     // si les attributs libellé et type_operateur sont bien présents
339     // pour chaque cas.
340     // Si le paramétrage n'est pas bon on arrête la recherche de l'opérateur
341 gmalvolti 12218 if ($this->verif_param_operateur() == false) {
342     return $this->end_treatment(__METHOD__, false);
343     }
344 cgarcin 12406 // Récupération du paramétrage de la désignation des opérateurs
345 gmalvolti 12208 $param_operateur = $this->get_param_operateur();
346 cgarcin 12406 // Vérifie que le format du paramétrage des opérateurs est correct
347     if (! is_object($param_operateur)) {
348     return $this->end_treatment(__METHOD__, false);
349     }
350 gmalvolti 12208
351 cgarcin 12406 // Initialisation des tableaux contenant le paramétrage nécessaire pour gérer
352     // la recherche de l'opérateur
353 gmalvolti 12208 $tiers_consulte_irap = array();
354 cgarcin 12406 $tiers_consulte_collterr = array();
355     $tiers_consulte_collterr_toutdiag = array();
356     $tiers_consulte_collterr_kpark = array();
357 gmalvolti 12208
358 cgarcin 12406 // Récupération des tiers consulté inrap. Pour cela, il fait que la catégorie des tiers inrap
359     // et le type d'habilitaion des opérateurs inrap soient renseigné.
360     if (property_exists($param_operateur, 'categorie_tiers_inrap') &&
361 cgarcin 12409 property_exists($param_operateur, 'type_habilitations_operateurs_inrap') &&
362     ! empty($param_operateur->categorie_tiers_inrap) &&
363     ! empty($param_operateur->type_habilitations_operateurs_inrap)) {
364 cgarcin 12406 // Récupération de la catégorie des tiers inrap et du type d'habilitation des opérateurs
365     // inrap
366 gmalvolti 12208 $categorie_tiers_irap = $param_operateur->categorie_tiers_inrap;
367 gmalvolti 12218 $type_habilitations_operateurs_inrap = $param_operateur->type_habilitations_operateurs_inrap;
368 cgarcin 12406
369     // Construction de la requête permettant de sélectionner le tiers consulté INRAP
370 softime 13137 // Tableau comportant la clé 'result' qui contient l'identifiant du tiers consulté INRAP
371     $tiers_consulte_irap = $this->f->get_one_result_from_db_query(
372     sprintf(
373     'SELECT
374     tiers_consulte.tiers_consulte
375     FROM
376     %1$stiers_consulte
377     INNER JOIN %1$scategorie_tiers_consulte
378     ON
379     tiers_consulte.categorie_tiers_consulte = categorie_tiers_consulte.categorie_tiers_consulte
380     AND (
381     categorie_tiers_consulte.om_validite_debut IS NULL
382     OR categorie_tiers_consulte.om_validite_debut <= CURRENT_DATE
383     )
384     AND (
385     categorie_tiers_consulte.om_validite_fin IS NULL
386     OR categorie_tiers_consulte.om_validite_fin > CURRENT_DATE
387     )
388     INNER JOIN %1$shabilitation_tiers_consulte
389     ON
390     habilitation_tiers_consulte.tiers_consulte = tiers_consulte.tiers_consulte
391     AND (
392     habilitation_tiers_consulte.om_validite_debut IS NULL
393     OR habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE
394     )
395     AND (
396     habilitation_tiers_consulte.om_validite_fin IS NULL
397     OR habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE
398     )
399     INNER JOIN %1$stype_habilitation_tiers_consulte
400     ON
401     habilitation_tiers_consulte.type_habilitation_tiers_consulte = type_habilitation_tiers_consulte.type_habilitation_tiers_consulte
402     AND (
403     type_habilitation_tiers_consulte.om_validite_debut IS NULL
404     OR type_habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE
405     )
406     AND (
407     type_habilitation_tiers_consulte.om_validite_fin IS NULL
408     OR type_habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE
409     )
410     INNER JOIN %1$sdossier
411     ON dossier.dossier = \'%4$s\'
412     LEFT JOIN %1$scommune
413     ON commune.commune = dossier.commune
414     LEFT JOIN %1$slien_habilitation_tiers_consulte_commune
415     ON
416     lien_habilitation_tiers_consulte_commune.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
417     AND lien_habilitation_tiers_consulte_commune.commune = commune.commune
418     LEFT JOIN %1$slien_habilitation_tiers_consulte_departement
419     ON lien_habilitation_tiers_consulte_departement.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
420     LEFT JOIN %1$sdepartement
421     ON departement.departement = lien_habilitation_tiers_consulte_departement.departement
422     WHERE
423     tiers_consulte.categorie_tiers_consulte IN (%2$s)
424     AND habilitation_tiers_consulte.type_habilitation_tiers_consulte IN (%3$s)
425     AND (
426     departement.dep = commune.dep
427     OR lien_habilitation_tiers_consulte_commune.commune = dossier.commune
428     )',
429     DB_PREFIXE,
430     implode(',', $categorie_tiers_irap),
431     implode(',', $type_habilitations_operateurs_inrap),
432     $this->f->db->escapeSimple($this->getVal("dossier_instruction"))
433     ),
434     array(
435     "origin" => __METHOD__,
436     )
437 cgarcin 12406 );
438 gmalvolti 12208 }
439    
440 gmalvolti 12254 if (empty($tiers_consulte_irap['result'])) {
441     $this->correct = false;
442     $this->addToMessage(__("Aucun opérateur INRAP détecté."));
443     return $this->end_treatment(__METHOD__, false);
444     }
445    
446 cgarcin 12409 // Pour pouvoir récupérer les opérateur kpark et toutdiag, il faut s'assurer
447     // que les propriétés utilisées dans les requêtes ont bien été paramétrées et
448     // qu'elles ne sont pas paramétrées à vide. Sinon on risque d'avoir des erreurs
449     // de base de données.
450 cgarcin 12406 if (property_exists($param_operateur, 'categorie_tiers_collterr') &&
451     property_exists($param_operateur, 'type_habilitations_operateurs_diag_kpark') &&
452 cgarcin 12409 property_exists($param_operateur, 'type_habilitations_operateurs_diag_toutdiag') &&
453     ! empty($param_operateur->categorie_tiers_collterr)) {
454 gmalvolti 12208
455     $categorie_tiers_collterr = $param_operateur->categorie_tiers_collterr;
456 gmalvolti 12218 $type_habilitations_operateurs_diag_kpark = $param_operateur->type_habilitations_operateurs_diag_kpark;
457     $type_habilitations_operateurs_diag_toutdiag = $param_operateur->type_habilitations_operateurs_diag_toutdiag;
458 cgarcin 12406
459     // Récupération des opérateurs cas par cas
460 cgarcin 12409 // Si le type d'habilitation des opérateurs diag kpark est paramétré mais vide
461     // cela risque d'entrainer des erreurs de base de données. On vérifie donc
462     // que ce paramètre n'est pas vide
463     if (! empty($type_habilitations_operateurs_diag_kpark)) {
464     $query_tiers_consulte_collterr_kpark = sprintf(
465     'SELECT
466     tiers_consulte.tiers_consulte as identifiant,
467     tiers_consulte.libelle,
468     %1$s as habilitation,
469     CASE
470     WHEN lien_habilitation_tiers_consulte_commune.commune IS NOT NULL
471     THEN commune.com
472    
473     WHEN lien_habilitation_tiers_consulte_departement.departement IS NOT NULL
474     THEN departement.dep
475     ELSE NULL
476     END as localisation,
477     %2$s as consultation,
478     NULL as tab_avis
479     FROM
480     %3$stiers_consulte
481     INNER JOIN openads.categorie_tiers_consulte
482     ON tiers_consulte.categorie_tiers_consulte = categorie_tiers_consulte.categorie_tiers_consulte
483     AND (categorie_tiers_consulte.om_validite_debut IS NULL
484     OR categorie_tiers_consulte.om_validite_debut <= CURRENT_DATE)
485     AND (categorie_tiers_consulte.om_validite_fin IS NULL
486     OR categorie_tiers_consulte.om_validite_fin > CURRENT_DATE)
487     INNER JOIN openads.habilitation_tiers_consulte
488     ON habilitation_tiers_consulte.tiers_consulte = tiers_consulte.tiers_consulte
489     AND (habilitation_tiers_consulte.om_validite_debut IS NULL
490     OR habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE)
491     AND (habilitation_tiers_consulte.om_validite_fin IS NULL
492     OR habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE)
493     INNER JOIN openads.type_habilitation_tiers_consulte
494     ON habilitation_tiers_consulte.type_habilitation_tiers_consulte = type_habilitation_tiers_consulte.type_habilitation_tiers_consulte
495     AND (type_habilitation_tiers_consulte.om_validite_debut IS NULL
496     OR type_habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE)
497     AND (type_habilitation_tiers_consulte.om_validite_fin IS NULL
498     OR type_habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE)
499     INNER JOIN openads.dossier
500     ON dossier.dossier =\'%6$s\'
501     LEFT JOIN %3$scommune
502     ON commune.commune = dossier.commune
503    
504     LEFT JOIN %3$slien_habilitation_tiers_consulte_commune
505     ON lien_habilitation_tiers_consulte_commune.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
506 cgarcin 12406
507 cgarcin 12409 LEFT JOIN %3$slien_habilitation_tiers_consulte_departement
508     ON lien_habilitation_tiers_consulte_departement.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
509    
510     LEFT JOIN %3$sdepartement
511     ON departement.departement = lien_habilitation_tiers_consulte_departement.departement
512     WHERE
513     tiers_consulte.categorie_tiers_consulte IN (%4$s)
514     AND habilitation_tiers_consulte.type_habilitation_tiers_consulte IN (%5$s)
515     AND (departement.dep = commune.dep OR lien_habilitation_tiers_consulte_commune.commune = dossier.commune);',
516     "'".__("Au cas par cas")."'",
517     "'".__("Consultation obligatoire")."'",
518     DB_PREFIXE,
519     implode(',', $categorie_tiers_collterr),
520     implode(',', $type_habilitations_operateurs_diag_kpark),
521     $this->getVal('dossier_instruction')
522     );
523    
524 softime 13137 $tiers_consulte_collterr_kpark = $this->f->get_all_results_from_db_query(
525     $query_tiers_consulte_collterr_kpark,
526     array(
527     "origin" => __METHOD__,
528     )
529     );
530 cgarcin 12409 }
531    
532 cgarcin 12406 // Récupération des opérateurs tout diag
533 cgarcin 12409 // Si le type d'habilitation des opérateurs diag toutdiag est paramétré mais vide
534     // cela risque d'entrainer des erreurs de base de données. On vérifie donc
535     // que ce paramètre n'est pas vide
536     if (! empty($type_habilitations_operateurs_diag_toutdiag)) {
537     $query_tiers_consulte_collterr_toutdiag = sprintf(
538     'SELECT
539     tiers_consulte.tiers_consulte as identifiant,
540     tiers_consulte.libelle,
541     %1$s as habilitation,
542     CASE
543     WHEN lien_habilitation_tiers_consulte_commune.commune IS NOT NULL
544     THEN commune.com
545    
546     WHEN lien_habilitation_tiers_consulte_departement.departement IS NOT NULL
547     THEN departement.dep
548     ELSE NULL
549     END as localisation,
550     NULL as consultation,
551     \'no_select\' as tab_avis
552     FROM
553     %2$stiers_consulte
554     INNER JOIN %2$scategorie_tiers_consulte
555     ON tiers_consulte.categorie_tiers_consulte = categorie_tiers_consulte.categorie_tiers_consulte
556     AND (categorie_tiers_consulte.om_validite_debut IS NULL
557     OR categorie_tiers_consulte.om_validite_debut <= CURRENT_DATE)
558     AND (categorie_tiers_consulte.om_validite_fin IS NULL
559     OR categorie_tiers_consulte.om_validite_fin > CURRENT_DATE)
560     INNER JOIN %2$shabilitation_tiers_consulte
561     ON habilitation_tiers_consulte.tiers_consulte = tiers_consulte.tiers_consulte
562     AND (habilitation_tiers_consulte.om_validite_debut IS NULL
563     OR habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE)
564     AND (habilitation_tiers_consulte.om_validite_fin IS NULL
565     OR habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE)
566     INNER JOIN %2$stype_habilitation_tiers_consulte
567     ON habilitation_tiers_consulte.type_habilitation_tiers_consulte = type_habilitation_tiers_consulte.type_habilitation_tiers_consulte
568     AND (type_habilitation_tiers_consulte.om_validite_debut IS NULL
569     OR type_habilitation_tiers_consulte.om_validite_debut <= CURRENT_DATE)
570     AND (type_habilitation_tiers_consulte.om_validite_fin IS NULL
571     OR type_habilitation_tiers_consulte.om_validite_fin > CURRENT_DATE)
572     INNER JOIN openads.dossier
573     ON dossier.dossier =\'%5$s\'
574     LEFT JOIN %2$scommune
575     ON commune.commune = dossier.commune
576    
577     LEFT JOIN %2$slien_habilitation_tiers_consulte_commune
578     ON lien_habilitation_tiers_consulte_commune.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
579     AND lien_habilitation_tiers_consulte_commune.commune = commune.commune
580    
581     LEFT JOIN %2$slien_habilitation_tiers_consulte_departement
582     ON lien_habilitation_tiers_consulte_departement.habilitation_tiers_consulte = habilitation_tiers_consulte.habilitation_tiers_consulte
583    
584     LEFT JOIN %2$sdepartement
585     ON departement.departement = lien_habilitation_tiers_consulte_departement.departement
586     WHERE
587     tiers_consulte.categorie_tiers_consulte IN (%3$s)
588     AND habilitation_tiers_consulte.type_habilitation_tiers_consulte IN (%4$s)
589     AND (departement.dep = commune.dep OR lien_habilitation_tiers_consulte_commune.commune = dossier.commune);',
590     "'".__("Tous diag")."'",
591     DB_PREFIXE,
592     implode(',', $categorie_tiers_collterr),
593     implode(',', $type_habilitations_operateurs_diag_toutdiag),
594     $this->getVal('dossier_instruction')
595     );
596    
597     // Tableau tout diag
598 softime 13137 $tiers_consulte_collterr_toutdiag = $this->f->get_all_results_from_db_query(
599     $query_tiers_consulte_collterr_toutdiag,
600     array(
601     "origin" => __METHOD__,
602     )
603     );
604 cgarcin 12409 }
605 gmalvolti 12208 }
606    
607 gmalvolti 12278
608 cgarcin 12409 $this->addToLog('query collterr tout diag: '.var_export($query_tiers_consulte_collterr_toutdiag,true), VERBOSE_MODE);
609     $this->addToLog('collterr tout diag: '.var_export($tiers_consulte_collterr_toutdiag, true), VERBOSE_MODE);
610 gmalvolti 12218
611 gmalvolti 12237 // Si il n'y a pas de kpark alors le champ operateur_collterr_type_agrement a pour valeur 'toutdiag'
612     if (! empty($tiers_consulte_collterr_toutdiag['result'])) {
613     $valF['operateur_collterr_type_agrement'] = 'tout_diag';
614     }
615 gmalvolti 12299 if (! empty($tiers_consulte_collterr_kpark['result'])) {
616     $valF['operateur_collterr_type_agrement'] = 'kpark';
617     }
618 gmalvolti 12218
619     // On fusionne les deux tableaux
620     $tiers_consulte_collterr = array_merge_recursive($tiers_consulte_collterr_toutdiag['result'], $tiers_consulte_collterr_kpark['result']);
621 cgarcin 12409 $this->addToLog('collterr all: '.var_export($tiers_consulte_collterr, true), VERBOSE_MODE);
622 gmalvolti 12218
623     // On convertit en json
624     if (empty($tiers_consulte_collterr) === false) {
625     $tiers_consulte_collterr = json_encode($tiers_consulte_collterr);
626     }
627    
628 cgarcin 12409 $this->addToLog('json collterr: '.var_export($tiers_consulte_collterr, true), VERBOSE_MODE);
629 gmalvolti 12218
630     //Mise à jour des champs suite à la recherche d'opérateurs
631 gmalvolti 12237 $valF['operateur_detecte_inrap'] = $tiers_consulte_irap['result'];
632     $valF['operateur_detecte_collterr'] = empty($tiers_consulte_collterr) ? NULL : $tiers_consulte_collterr;
633     $valF['operateur_designation_initialisee'] = 't';
634 gmalvolti 12208
635 cgarcin 12409 $this->addToLog('modifier : '.var_export($valF, true), VERBOSE_MODE);
636 gmalvolti 12208 $res = $this->f->db->autoExecute(
637     DB_PREFIXE.$this->table,
638     $valF,
639     DB_AUTOQUERY_UPDATE,
640     $this->clePrimaire."=".$this->getVal($this->clePrimaire)
641     );
642     //
643     $this->addToLog(
644     __METHOD__." : db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$this->getVal('dossier_operateur')."\")",
645 cgarcin 12409 VERBOSE_MODE
646 gmalvolti 12208 );
647    
648     if ($this->f->isDatabaseError($res, true)) {
649     // Appel de la methode de recuperation des erreurs
650     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
651     $this->correct = false;
652     // Termine le traitement
653     return $this->end_treatment(__METHOD__, false);
654     }
655    
656 gmalvolti 12218 $this->check_all_cases();
657 gmalvolti 12208
658 gmalvolti 12237 // On enlève les messages en trop
659     $this->msg = '';
660     $this->addToMessage(__("Recherche effectuée."));
661 gmalvolti 12218 return $this->end_treatment(__METHOD__, true);
662     }
663    
664 gmalvolti 12237 /**
665     * Vérifie que les attributs libelle et type_operateur sont bien présents
666     * pour chaque cas.
667     * Si ce n'est pas le cas retourne un message d'erreur.
668 cgarcin 12326 *
669 gmalvolti 12237 * @return bool true|false
670     */
671 cgarcin 12409 protected function verif_param_operateur() {
672 gmalvolti 12218 $param_operateur = $this->get_param_operateur();
673 gmalvolti 12208 foreach ($param_operateur->cas as $cas) {
674 gmalvolti 12237 if (! is_object($cas) || ! isset($cas->libelle) || ! isset($cas->type_operateur)) {
675 gmalvolti 12208 $this->correct = false;
676     $this->addToMessage(__("Le paramétrage est incorrect. Contactez votre administrateur"));
677 gmalvolti 12218 return false;
678 gmalvolti 12208 }
679     }
680 gmalvolti 12218 return true;
681     }
682 gmalvolti 12208
683 gmalvolti 12237 /**
684     * Permet de boucler sur tous les cas présent dans le paramètre
685     * param_operateur afin de trouver un cas ou les conditions sont toutes remplis
686 cgarcin 12326 *
687 gmalvolti 12237 * @return bool true|false
688     */
689 gmalvolti 12218 function check_all_cases() {
690     $param_operateur = $this->get_param_operateur();
691    
692     // Pour récupérer les informations mises à jours dans la recherche
693     // il faut récupérer les valeurs depuis une nouvelle instance de l'objet
694     $inst_dossier_operateur = $this->f->get_inst__om_dbform(array(
695     "obj" => "dossier_operateur",
696     "idx" => $this->getVal('dossier_operateur'),
697     ));
698    
699 gmalvolti 12288 // Permet de déterminer si un opérateur collterr peut être désigné
700 gmalvolti 12402 $tab_collterr = $this->get_operateur_selectionne(json_decode(html_entity_decode($inst_dossier_operateur->getVal('operateur_detecte_collterr'))));
701 gmalvolti 12288
702 gmalvolti 12218 // Initialisation des paramètres du dossier
703     $param_dossier = array(
704     'P1' => $inst_dossier_operateur->getVal('operateur_detecte_inrap'),
705     'P2' => $inst_dossier_operateur->getVal('operateur_detecte_collterr') == NULL ? NULL : 'collterr',
706     'P3' => $inst_dossier_operateur->getVal('operateur_collterr_type_agrement'),
707 gmalvolti 12248 'P4' => NULL,
708 gmalvolti 12284 'P5' => NULL,
709 softime 12654 'P6' => ! empty($tab_collterr) ? $tab_collterr['avis'] : NULL,
710 gmalvolti 12218 'P7' => $inst_dossier_operateur->getVal('operateur_personne_publique_avis'),
711     );
712    
713 gmalvolti 12248 if ($inst_dossier_operateur->getVal('operateur_amenagement_pers_publique') == 't') {
714     $param_dossier['P4'] = true;
715     } else if ($inst_dossier_operateur->getVal('operateur_amenagement_pers_publique') == 'f') {
716     $param_dossier['P4'] = false;
717     }
718    
719 gmalvolti 12284 if ($inst_dossier_operateur->getVal('operateur_pers_publique_amenageur') == 't') {
720     $param_dossier['P5'] = true;
721     } else if ($inst_dossier_operateur->getVal('operateur_pers_publique_amenageur') == 'f') {
722     $param_dossier['P5'] = false;
723     }
724    
725 gmalvolti 12218 foreach ($param_operateur->cas as $cas) {
726    
727     $parametres_param_operateur = $cas->parametre;
728 cgarcin 12409
729     $tab_result_cas = array(
730     'libelle' => $cas->libelle,
731     'type_operateur' => $cas->type_operateur,
732     'evenement' => property_exists($cas, 'evenement') === true ?
733     $cas->evenement :
734     null
735     );
736 gmalvolti 12218 foreach ($parametres_param_operateur as $key => $parametre) {
737 cgarcin 12409 $tab_result_cas[$key] = false;
738     if (array_key_exists($key, $param_dossier)
739 gmalvolti 12248 && $parametre === $param_dossier[$key]) {
740 gmalvolti 12218 $tab_result_cas[$key] = true;
741     }
742     }
743 cgarcin 12409
744 gmalvolti 12218 if (in_array(false, $tab_result_cas)) {
745     $tab_result_cas = array(
746     'libelle' => null,
747     'type_operateur' => null,
748     'evenement' => null
749     );
750     continue;
751     } else {
752     break;
753     }
754     }
755    
756 cgarcin 12409 $this->addToLog('array : '.var_export($tab_result_cas, true), VERBOSE_MODE);
757     $valF = array(
758     'operateur_kpark_libelle' => $tab_result_cas['libelle'],
759     'operateur_kpark_type_operateur' => $tab_result_cas['type_operateur'],
760     'operateur_kpark_evenement' => $tab_result_cas['evenement'],
761     'operateur_collterr_kpark_avis' => $param_dossier['P6'],
762     'operateur_selectionne' => null
763     );
764 gmalvolti 12218
765 gmalvolti 12288 if (is_null($tab_result_cas['libelle']) === false
766     && is_null($tab_result_cas['type_operateur']) === false) {
767     if ($tab_result_cas['type_operateur'] === 'inrap') {
768 gmalvolti 12381 $valF['operateur_selectionne'] = $inst_dossier_operateur->getVal('operateur_detecte_inrap');
769 gmalvolti 12237 }
770 gmalvolti 12218
771 gmalvolti 12288 if ($tab_result_cas['type_operateur'] === 'collterr') {
772 gmalvolti 12381 $valF['operateur_selectionne'] = $tab_collterr['identifiant'];
773 gmalvolti 12218 }
774 gmalvolti 12288 }
775     $res = $this->f->db->autoExecute(
776     DB_PREFIXE.$this->table,
777 cgarcin 12409 $valF,
778 gmalvolti 12288 DB_AUTOQUERY_UPDATE,
779     $this->clePrimaire."=".$this->getVal($this->clePrimaire)
780     );
781     //
782     $this->addToLog(
783     __METHOD__." : db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$this->getVal('dossier_operateur')."\")",
784 cgarcin 12409 VERBOSE_MODE
785 gmalvolti 12288 );
786 gmalvolti 12237
787 gmalvolti 12288 if ($this->f->isDatabaseError($res, true)) {
788     // Appel de la methode de recuperation des erreurs
789     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
790     $this->correct = false;
791     // Termine le traitement
792     return false;
793 gmalvolti 12218 }
794    
795     return true;
796 gmalvolti 12203 }
797    
798 softime 12654 /**
799     * Permet de déterminer quel opérateur doit être sélectionné.
800     *
801     * @param obj $tab_collterr Tableau qui contient tous les opérateurs collterr
802     *
803     * @return array Tableau contenant l'identifiant de l'acteur et l'avis
804     */
805 gmalvolti 12381 function get_operateur_selectionne($tab_collterr) {
806 softime 12654 $is_all_avis = true;
807 softime 12847 # On sépare les opérateurs par avis
808     $tab_fav_operateur = array();
809     $tab_defav_operateur = array();
810     $tab_tacite_operateur = array();
811     $tab_tout_diag_operateur = array();
812 gmalvolti 12299 if (! empty($tab_collterr)) {
813 softime 12847 foreach ($tab_collterr as $key => $value) {
814     if ($value->tab_avis == "F") {
815     $tab_fav_operateur[] = array(
816     'identifiant' => $value->identifiant,
817 softime 14064 // Si la longeur de la localisation est <= 3 alors c'est un département, sinon c'est une commune
818 softime 12847 'com_ou_dep' => strlen($value->localisation) <=3 ? 'dep' : 'com',
819     'avis' => $value->tab_avis,
820     );
821     }
822 gmalvolti 12288
823 softime 12847 if ($value->tab_avis == "D") {
824     $tab_defav_operateur[] = array(
825     'identifiant' => $value->identifiant,
826     'com_ou_dep' => strlen($value->localisation) <=3 ? 'dep' : 'com',
827     'avis' => $value->tab_avis,
828     );
829 gmalvolti 12299 }
830 gmalvolti 12288
831 softime 12847 if ($value->tab_avis == "T") {
832     $tab_tacite_operateur[] = array(
833 gmalvolti 12288 'identifiant' => $value->identifiant,
834     'com_ou_dep' => strlen($value->localisation) <=3 ? 'dep' : 'com',
835     'avis' => $value->tab_avis,
836     );
837     }
838    
839 softime 12847 if ($value->tab_avis == "no_select") {
840     $tab_tout_diag_operateur[] = array(
841     'identifiant' => $value->identifiant,
842     'com_ou_dep' => strlen($value->localisation) <=3 ? 'dep' : 'com',
843     'avis' => $value->tab_avis,
844     );
845     }
846 gmalvolti 12288
847 softime 12847 if (empty($value->tab_avis)) {
848     $is_all_avis = false;
849 gmalvolti 12288 }
850 softime 12847
851     $this->addToLog('get operateur collterr: '.var_export($key, true).' '.var_export($value, true), VERBOSE_MODE);
852     $this->addToLog('obj tab_avis: '.var_export($value->tab_avis, true), VERBOSE_MODE);
853     $this->addToLog('obj tab_fav: '.var_export($tab_fav_operateur, true), VERBOSE_MODE);
854     $this->addToLog('obj is_all_avis: '.var_export($is_all_avis, true), VERBOSE_MODE);
855 softime 12654 }
856 softime 12847 }
857    
858 softime 14064 // Stock dans un array les tableaux des infos sur le retour de l'opérateur
859     $tab_retour_reponse_operateur = array(
860     $tab_fav_operateur,
861     $tab_defav_operateur,
862     $tab_tacite_operateur
863     );
864 gmalvolti 12288
865 softime 14064 foreach ($tab_retour_reponse_operateur as $tab_resp_operateur) {
866    
867     if(!empty($tab_resp_operateur)){
868     if (array_search('com', array_column($tab_resp_operateur, 'com_ou_dep')) !== false) {
869     return $tab_resp_operateur[array_search('com', array_column($tab_resp_operateur, 'com_ou_dep'))];
870 gmalvolti 12288 }
871 softime 14064 return $tab_resp_operateur[0];
872 softime 12847 }
873     }
874    
875     if ($this->getVal('operateur_collterr_type_agrement') == 'tout_diag') {
876     if (! empty($tab_tout_diag_operateur)) {
877     if (array_search('com', array_column($tab_tout_diag_operateur, 'com_ou_dep')) !== false) {
878     return $tab_tout_diag_operateur[array_search('com', array_column($tab_tout_diag_operateur, 'com_ou_dep'))];
879 gmalvolti 12288 }
880     }
881 softime 12847 return $tab_tout_diag_operateur[0];
882 gmalvolti 12288 }
883 softime 12847 return array();
884 gmalvolti 12288 }
885    
886 gmalvolti 12237 /**
887     * Methode setTaille
888     */
889     function setTaille(&$form, $maj) {
890     parent::setTaille($form, $maj);
891     $form->setTaille("tab_avis_maj", 20);
892     }
893    
894     /**
895     * Methode setMax
896     */
897     function setMax(&$form, $maj) {
898     parent::setMax($form, $maj);
899     $form->setMax("tab_avis_maj", 20);
900     }
901    
902     /**
903 cgarcin 12326 * Permet de vérifier si l'action de modification doit être affichée.
904     * La modification est possible si il la designation de l'operateur
905 cgarcin 12406 * a été initialisé, si l'opérateur n'a pas encore été validé et si la
906     * liste des tiers consultés Collectivités Territoriales n'est pas vide.
907 cgarcin 12326 *
908 gmalvolti 12237 * @return bool true|false
909     */
910 cgarcin 12406 protected function is_editable() {
911 gmalvolti 12218 if ($this->getVal('operateur_designation_initialisee') == 't'
912 gmalvolti 12248 && $this->getVal('operateur_valide') == 'f'
913     && ! empty($this->getVal('operateur_detecte_collterr'))) {
914 gmalvolti 12208
915     return true;
916     }
917     return false;
918 gmalvolti 12203 }
919    
920 gmalvolti 12237 /**
921     * Permet de vérifier si l'action de réinitialisation doit être affichée
922 cgarcin 12326 * C'est le cas a partir du moment ou on initialise la designation de
923     * l'operateur.
924     *
925 gmalvolti 12237 * @return bool true|false
926     */
927 cgarcin 12406 protected function is_reinitialisable() {
928     return ($this->getVal('operateur_designation_initialisee') == 't');
929 gmalvolti 12208 }
930    
931 gmalvolti 12237 /**
932     * Permet de vérifier si l'action de validation de l'opérateur doit être affichée
933 cgarcin 12406 * L'operateur peut être validé si un opérateur est designé mais qu'il n'est pas
934     * encore validé.
935 cgarcin 12326 *
936 gmalvolti 12237 * @return bool true|false
937     */
938 cgarcin 12406 protected function is_validable() {
939 gmalvolti 12381 if (! empty($this->getVal('operateur_selectionne'))
940 gmalvolti 12248 && $this->getVal('operateur_valide') == 'f') {
941 gmalvolti 12237 return true;
942     }
943     return false;
944     }
945    
946     /**
947     * Permet de vérifier que l'action de recherche d'un opérateur est affichable.
948 cgarcin 12326 * C'est le cas lorsque la designation de l'opérateur n'a pas été initialisée.
949 cgarcin 12406 *
950 gmalvolti 12237 * @return bool true|false
951     */
952 cgarcin 12406 protected function is_recherche_operateur_available() {
953     return ($this->getVal('operateur_designation_initialisee') == 'f');
954 gmalvolti 12237 }
955    
956     /**
957     * Permet de remettre tous les champs à leur valeur par défaut,
958     * excepté pour le dossier d'instruction lié, l'historique des opérateurs
959     * désignés et l'identifiant de la table dossier_operateur
960 cgarcin 12406 *
961 gmalvolti 12237 * @return bool true|false
962     */
963 cgarcin 12406 protected function reinitialiser() {
964 gmalvolti 12237 $this->begin_treatment(__METHOD__);
965     // mise à jour des champs
966     $valF = array();
967    
968     // Il faut traiter tous les champs de l'objet
969     foreach($this->champs as $identifiant => $champ) {
970 gmalvolti 12248 $valF[$champ] = NULL;
971 gmalvolti 12237 }
972    
973 cgarcin 12326 // Récupère la liste des tiers consulté des collectivités territoriales et remet
974     // leur avis à 0
975 gmalvolti 12402 $tab_collterr = json_decode(html_entity_decode($this->getVal('operateur_detecte_collterr')));
976 gmalvolti 12248 if (! empty($tab_collterr)) {
977     for ($i=0; $i<count($tab_collterr); $i++) {
978     unset($valF["tab_avis_".$i]);
979     }
980     }
981 cgarcin 12406 // Supprime du tableau des valeurs du formulaire tous les champs ayant été ajouté
982     // mais qui n'existe pas dans la base de données. Evite des erreurs lors de la mise
983     // a jour des données.
984 gmalvolti 12237 unset($valF['tab_avis']);
985     unset($valF['tab_avis_maj']);
986 gmalvolti 12248 unset($valF['operateur_message_kpark']);
987     unset($valF['message_consultation_amenageur']);
988     unset($valF['message_consultation_tiers']);
989 cgarcin 12406 // Prépare les valeurs devant être conservé ou mise à jour
990 gmalvolti 12237 $valF['operateur_designation_initialisee'] = false;
991 gmalvolti 12248 $valF['operateur_valide'] = 'f';
992 gmalvolti 12237 $valF['dossier_instruction'] = $this->getVal('dossier_instruction');
993     $valF['dossier_operateur'] = $this->getVal('dossier_operateur');
994     $valF['operateur_designe_historique'] = $this->getVal('operateur_designe_historique');
995 cgarcin 12326 // Met a jour les valeurs dans la Base de Données. En cas d'erreur
996 gmalvolti 12237 $res = $this->f->db->autoExecute(
997     DB_PREFIXE.$this->table,
998     $valF,
999     DB_AUTOQUERY_UPDATE,
1000     $this->clePrimaire."=".$this->getVal($this->clePrimaire)
1001     );
1002    
1003     if ($this->f->isDatabaseError($res, true)) {
1004     // Appel de la methode de recuperation des erreurs
1005     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
1006     $this->correct = false;
1007     // Termine le traitement
1008     return false;
1009     }
1010    
1011     $this->addToMessage(__("Réinitialisation effectuée."));
1012     return $this->end_treatment(__METHOD__, true);
1013     }
1014    
1015     /**
1016     * Permet de valider l'opérateur désigné et de mettre à jour l'historique
1017     * des opérateurs désignés.
1018 cgarcin 12406 *
1019 gmalvolti 12237 * @return bool true|false
1020     */
1021 cgarcin 12406 protected function valider() {
1022 gmalvolti 12237 $this->begin_treatment(__METHOD__);
1023    
1024 gmalvolti 12299 // On vérifie que l'évènement existe avant de modifier l'opérateur
1025 gmalvolti 12381 // On gère l'ajout de l'evènement paramétré si il y en a un
1026 cgarcin 12406 $operateur_kpark_evenement = $this->getVal('operateur_kpark_evenement');
1027 cgarcin 12409 if (! empty($operateur_kpark_evenement)) {
1028 softime 13137 $qres = $this->f->get_one_result_from_db_query(
1029     sprintf(
1030     'SELECT
1031     *
1032     FROM
1033     %1$sevenement
1034     WHERE
1035     evenement=%2$s',
1036     DB_PREFIXE,
1037     intval($operateur_kpark_evenement)
1038     ),
1039     array(
1040     "origin" => __METHOD__,
1041     )
1042 gmalvolti 12299 );
1043 cgarcin 12406 // Si l'événement paramétré n'existe pas informe l'utilisateur que son paramétrage
1044     // n'est pas correct
1045 softime 13137 if (empty($qres["result"])) {
1046 gmalvolti 12299 $this->correct = false ;
1047     $this->addToMessage(__("L'événement paramétré n'existe pas. Vérifiez le paramétrage"));
1048     return $this->end_treatment(__METHOD__, false);
1049     }
1050    
1051 cgarcin 12406 // La validation de l'opérateur déclenche l'ajout de l'événement d'instruction paramétré
1052     // Pour cela on ajoute une nouvelle instruction ayant pour évenement l'évenement
1053     // paramétré, qui sera associée au dossier d'instruction sur lequel on valide l'opérateur
1054     // et dont la date d'événement sera la date de validation.
1055     $new_instruction = $this->f->get_inst__om_dbform(array(
1056     "obj" => "instruction",
1057     "idx" => "]",
1058     ));
1059 gmalvolti 12299
1060 cgarcin 12406 // Création d'un tableau avec la liste des champs de l'instruction
1061     $valNewInstr = array();
1062     foreach ($new_instruction->champs as $champ) {
1063     $valNewInstr[$champ] = "";
1064     }
1065     // Définition des valeurs de la nouvelle instruction
1066     $valNewInstr["evenement"] = $this->getVal('operateur_kpark_evenement');
1067     $valNewInstr["dossier"] = $this->getVal('dossier_instruction');
1068     $valNewInstr["date_evenement"] = $this->f->formatDate(date('Y-m-d'));
1069     // Ajout de l'instruction liée à la validation de l'opérateur
1070     $new_instruction->setParameter("maj", 0);
1071     $retour = $new_instruction->ajouter($valNewInstr);
1072 gmalvolti 12299
1073 cgarcin 12406 //Si une erreur s'est produite et qu'il s'agit d'un problème
1074     //de restriction
1075     if ($retour == false && $new_instruction->restriction_valid) {
1076     $this->correct = false ;
1077     $this->msg .= $new_instruction->msg;
1078     return $this->end_treatment(__METHOD__, false);
1079 gmalvolti 12299 }
1080     }
1081    
1082 cgarcin 12406 // Récupération du libellé de l'opérateur designé
1083     $operateur_designe_libelle_query = str_replace(
1084     '<idx>',
1085     $this->getVal('operateur_selectionne'),
1086     $this->get_var_sql_forminc__sql_operateur_designe_by_id()
1087     );
1088 softime 13137 $res = $this->f->get_all_results_from_db_query(
1089     $operateur_designe_libelle_query,
1090     array(
1091     "origin" => __METHOD__,
1092     )
1093     );
1094 gmalvolti 12381
1095     // Préparation de l'ajout de l'opérateur désigné
1096     $valF = array();
1097    
1098     // Pour appeler la fonction modifier il faut traiter tous les champs de l'objet
1099 cgarcin 12406 foreach ($this->champs as $identifiant => $champ) {
1100 gmalvolti 12381 $valF[$champ] = $this->val[$identifiant];
1101     }
1102     // On fait ensuite nos modifications spécifiques
1103     $valF['operateur_valide'] = 't';
1104     $valF['operateur_designe'] = $this->getVal('operateur_selectionne');
1105    
1106 cgarcin 12406 // Si il y a déjà un historique on le récupère
1107 gmalvolti 12381 $dossier_operateur_historique_json = $this->getVal('operateur_designe_historique');
1108     $dossier_operateur_historique = array();
1109     if (! empty($dossier_operateur_historique_json)) {
1110 gmalvolti 12402 $dossier_operateur_historique = json_decode(str_replace("'", '"', $dossier_operateur_historique_json), true);
1111 gmalvolti 12381 }
1112 cgarcin 12406 // Ajoute une nouvelle ligne à l'historique de désignation de l'opérateur
1113 gmalvolti 12381 $dossier_operateur_historique[] = array(
1114     'entry_date' => date('d/m/Y H:i:s'),
1115     'operateur' => $res['result'][0]['libelle'],
1116     'login' => $_SESSION['login'],
1117     );
1118 cgarcin 12406 // Ajoute l'historique au tableau des valeurs qui vont servir à mettre à jour le dossier_operateur
1119 gmalvolti 12402 $valF['operateur_designe_historique'] = json_encode($dossier_operateur_historique, JSON_HEX_APOS);
1120 gmalvolti 12381
1121 gmalvolti 12248 $ret = $this->modifier($valF);
1122    
1123     if ($ret === false) {
1124     $this->correct = false;
1125     $this->addToMessage(__("Une erreur est survenue lors de la mise à jour des champs."));
1126     // Termine le traitement
1127     return $this->end_treatment(__METHOD__, false);
1128     }
1129    
1130 gmalvolti 12237 $this->addToMessage(__("Validation effectuée."));
1131     return $this->end_treatment(__METHOD__, true);
1132     }
1133    
1134 gmalvolti 12203 function setType(&$form,$maj) {
1135     parent::setType($form,$maj);
1136    
1137 gmalvolti 12208 foreach ($this->champs as $champ) {
1138 cgarcin 12409 $form->setType($champ,'hidden');
1139 gmalvolti 12208 }
1140 cgarcin 12409 $form->setType('operateur_detecte_inrap', 'selecthiddenstatic');
1141     $form->setType('operateur_detecte_collterr', 'hiddenstatic');
1142 gmalvolti 12218
1143 gmalvolti 12381 // Ces champs sont cachés en javascript
1144     if ($this->getVal('operateur_amenagement_pers_publique') == 't') {
1145 cgarcin 12409 $form->setType('operateur_pers_publique_amenageur', 'selecthiddenstatic');
1146     $form->setType('operateur_personne_publique_avis', 'selecthiddenstatic');
1147 gmalvolti 12381
1148     if ($this->getVal('operateur_pers_publique_amenageur') == 'f') {
1149 cgarcin 12409 $form->setType('message_consultation_amenageur', 'hiddenstatic');
1150     $form->setType('message_consultation_tiers', 'hiddenstatic');
1151     $form->setType('operateur_personne_publique', 'selecthiddenstatic');
1152 gmalvolti 12381 }
1153     }
1154    
1155     if ($maj<=2) {
1156 cgarcin 12409 $form->setType('operateur_personne_publique', 'select');
1157     $form->setType('operateur_pers_publique_amenageur', 'select');
1158     $form->setType('operateur_personne_publique_avis', 'select');
1159 gmalvolti 12381 }
1160 cgarcin 12409 $form->setType('message_consultation_amenageur', 'hiddenstatic');
1161     $form->setType('message_consultation_tiers', 'hiddenstatic');
1162 gmalvolti 12381
1163 gmalvolti 12248 if ($this->getVal('operateur_collterr_type_agrement') == 'kpark') {
1164 cgarcin 12409 $form->setType('operateur_message_kpark', 'hiddenstatic');
1165 gmalvolti 12248 }
1166 gmalvolti 12237
1167 gmalvolti 12381 if (empty($this->getVal('operateur_selectionne')) === false) {
1168 cgarcin 12409 $form->setType('operateur_selectionne', 'selecthiddenstatic');
1169     $form->setType('operateur_kpark_libelle', 'hiddenstatic');
1170 gmalvolti 12381
1171     if (empty($this->getVal('operateur_designe')) === false) {
1172 cgarcin 12409 $form->setType('operateur_selectionne', 'hidden');
1173     $form->setType('operateur_designe', 'selecthiddenstatic');
1174 gmalvolti 12381 }
1175 gmalvolti 12218 }
1176 gmalvolti 12237
1177 gmalvolti 12248 if (empty($this->getVal('operateur_designe_historique')) === false) {
1178 cgarcin 12409 $form->setType('operateur_designe_historique', 'jsontotab');
1179 gmalvolti 12248 }
1180    
1181 gmalvolti 12237 if ($this->getVal('operateur_designation_initialisee') == 't') {
1182     if (empty($this->getVal('operateur_detecte_collterr')) === false) {
1183 cgarcin 12409 $form->setType('operateur_detecte_collterr', 'tab_custom');
1184 gmalvolti 12237
1185 gmalvolti 12402 $tab_collterr = json_decode(html_entity_decode($this->getVal('operateur_detecte_collterr')));
1186 gmalvolti 12248 if (! empty($tab_collterr)) {
1187     for ($i=0; $i<count($tab_collterr); $i++) {
1188     if ($tab_collterr[$i]->tab_avis !== 'no_select') {
1189     $form->setType("tab_avis_".$i, 'selecthiddenstatic');
1190     }
1191     }
1192     }
1193 cgarcin 12409 $form->setType('tab_avis', 'selecthiddenstatic');
1194 gmalvolti 12237 if ($maj < 2) {
1195 cgarcin 12409 $form->setType('tab_avis', 'select');
1196 gmalvolti 12248 if (! empty($tab_collterr)) {
1197     for ($i=0; $i<count($tab_collterr); $i++) {
1198     if ($tab_collterr[$i]->tab_avis !== 'no_select') {
1199     $form->setType("tab_avis_".$i, 'select');
1200     }
1201     }
1202     }
1203 gmalvolti 12237 }
1204     }
1205    
1206 gmalvolti 12248 if (!empty($this->getVal('operateur_detecte_inrap'))
1207     && !empty($this->getVal('operateur_detecte_collterr'))) {
1208 cgarcin 12409 $form->setType('operateur_amenagement_pers_publique', 'selecthiddenstatic');
1209 gmalvolti 12248 if ($maj < 2) {
1210 cgarcin 12409 $form->setType('operateur_amenagement_pers_publique', 'select');
1211     $form->setType('operateur_designe_historique', 'hidden');
1212 gmalvolti 12248 }
1213 gmalvolti 12237 }
1214 gmalvolti 12381 }
1215     }
1216 gmalvolti 12237
1217 gmalvolti 12381 function setOnchange(&$form, $maj) {
1218     parent::setOnchange($form, $maj);
1219 gmalvolti 12237
1220 gmalvolti 12381 if ($maj <= 2) {
1221     // Ajout la fonction permettant d'afficher/cacher les champs
1222     // dans le formulaire de modification
1223     $form->setOnchange('operateur_amenagement_pers_publique', "switch_operateur_amenagement_pers_public($(this).val())");
1224 gmalvolti 12237 }
1225 gmalvolti 12203 }
1226    
1227     function setLayout(&$form, $maj) {
1228 gmalvolti 12218 //Champs sur lequel s'ouvre le fieldset
1229 cgarcin 12409 $form->setBloc('operateur_detecte_inrap', 'D', "", 'col_10');
1230     $form->setFieldset('operateur_detecte_inrap', 'D', __('Opérateurs'));
1231 gmalvolti 12203
1232 gmalvolti 12218 //Champs sur lequel se ferme le fieldset
1233 cgarcin 12409 $form->setFieldset('operateur_message_kpark', 'F', '');
1234     $form->setBloc('operateur_message_kpark', 'F');
1235 gmalvolti 12218
1236    
1237 gmalvolti 12248 if (!empty($this->getVal('operateur_detecte_inrap'))
1238     && !empty($this->getVal('operateur_detecte_collterr'))) {
1239 cgarcin 12409 $form->setBloc('operateur_amenagement_pers_publique', 'DF', "", "col_10");
1240     $form->setFieldset('operateur_amenagement_pers_publique', 'DF', __('Aménagement'));
1241 gmalvolti 12248 }
1242    
1243     //Champs sur lequel s'ouvre le fieldset
1244 cgarcin 12409 $form->setBloc('operateur_pers_publique_amenageur', 'D', "", "col_10");
1245     $form->setFieldset('operateur_pers_publique_amenageur', 'D', __("Consultation de l'aménageur"));
1246 gmalvolti 12248 //Champs sur lequel se ferme le fieldset
1247 cgarcin 12409 $form->setFieldset('operateur_personne_publique_avis', 'F');
1248     $form->setBloc('operateur_personne_publique_avis', 'F', "");
1249 gmalvolti 12248
1250 gmalvolti 12381 // Si le champ operateur_selectionne n'est pas vide
1251     if (! empty($this->getVal('operateur_selectionne'))) {
1252 gmalvolti 12288 //Champs sur lequel s'ouvre le fieldset
1253 cgarcin 12409 $form->setBloc('operateur_selectionne', 'D', "", "col_10");
1254     $form->setFieldset('operateur_selectionne', 'D', __('Opérateur désigné'));
1255 gmalvolti 12288 //Champs sur lequel se ferme le fieldset
1256 cgarcin 12409 $form->setFieldset('operateur_kpark_libelle', 'F');
1257     $form->setBloc('operateur_kpark_libelle', 'F', "");
1258 gmalvolti 12288 }
1259 cgarcin 12409 $form->setBloc('operateur_designe_historique', 'DF', "", "col_10");
1260     $form->setFieldset('operateur_designe_historique', 'DF', __('Historique'));
1261 gmalvolti 12203 }
1262    
1263 gmalvolti 12208 function setLib(&$form, $maj) {
1264     $form->setLib('operateur_detecte_inrap', __('INRAP'));
1265     $form->setLib('operateur_detecte_collterr', __('Opérateur'));
1266 gmalvolti 12237 $form->setLib('operateur_designe', '');
1267 gmalvolti 12381 $form->setLib('operateur_selectionne', '');
1268 gmalvolti 12237 $form->setLib('operateur_kpark_libelle', '');
1269 gmalvolti 12248 $form->setLib('operateur_message_kpark', '');
1270 cgarcin 12409 $form->setLib(
1271     'operateur_amenagement_pers_publique',
1272     __("L'aménagement est-il réalisé par ou pour une personne publique (R523-28) ?")
1273     );
1274     $form->setLib(
1275     'operateur_pers_publique_amenageur',
1276     __("La personne publique \"article R523-28\" est-elle l'aménageur du projet ?")
1277     );
1278 gmalvolti 12248 $form->setLib('message_consultation_amenageur', '');
1279     $form->setLib('message_consultation_tiers', '');
1280     $form->setLib('operateur_personne_publique', __("Tiers aménageur"));
1281     $form->setLib('operateur_personne_publique_avis', __("Avis rendu"));
1282 gmalvolti 12381 // valeur utilisé seulement pour traduire la colonne tab_avis avec poedit
1283     $tab_avis = __('tab_avis');
1284 gmalvolti 12208 }
1285 gmalvolti 12203
1286 gmalvolti 12208
1287 gmalvolti 12203 /**
1288     * SETTER_FORM - setValsousformulaire (setVal).
1289     *
1290     * @return void
1291     */
1292     function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) {
1293     // parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire);
1294     //
1295     $this->retourformulaire = $retourformulaire;
1296     //
1297     if ($validation == 0) {
1298     // Si on est dans le dossier
1299     if ($this->getParameter("retourformulaire") == "dossier"
1300     || $this->getParameter("retourformulaire") == "dossier_instruction") {
1301     //
1302     $form->setVal("dossier_instruction", $this->getParameter("idxformulaire"));
1303     }
1304     }
1305 gmalvolti 12218
1306 gmalvolti 12237 if ($this->getVal('operateur_detecte_collterr') == NULL
1307     && $this->getVal('operateur_designation_initialisee') == 't') {
1308     $form->setVal('operateur_detecte_collterr', __("Aucun opérateur détecté."));
1309     }
1310 gmalvolti 12248
1311 gmalvolti 12402 if ($this->getVal('operateur_detecte_collterr') != NULL) {
1312     $form->setVal('operateur_detecte_collterr', htmlentities($this->getVal('operateur_detecte_collterr')));
1313     }
1314    
1315 gmalvolti 12248 if ($this->getVal('operateur_collterr_type_agrement') == 'kpark') {
1316     $form->setVal('operateur_message_kpark', __("Vous devez consulter les opérateurs au cas par cas depuis l'onglet Consultation"));
1317     }
1318    
1319 gmalvolti 12381 // Affiché ou caché en JS
1320     $form->setVal('message_consultation_amenageur', __("Vous devez consulter l'aménageur depuis l'onglet Consultation."));
1321     $form->setVal('message_consultation_tiers', __("Vous devez consulter le tiers sélectionné."));
1322 gmalvolti 12203 }
1323    
1324 gmalvolti 12300 function setvalF($val = array()) {
1325     parent::setvalF($val);
1326     // En fonction de la valeur sélectionné il faut vider certains champs
1327     if ($val['operateur_amenagement_pers_publique'] == 'f') {
1328     $this->valF['operateur_pers_publique_amenageur'] = NULL;
1329     $this->valF['operateur_personne_publique_avis'] = NULL;
1330     $this->valF['operateur_personne_publique'] = NULL;
1331     }
1332    
1333     if ($val['operateur_pers_publique_amenageur'] == 't') {
1334     $this->valF['operateur_personne_publique'] = NULL;
1335     }
1336     }
1337    
1338 gmalvolti 12237 function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
1339     parent::setSelect($form, $maj);
1340 gmalvolti 12381
1341     // Contient l'option '' qui est masquée en JS
1342 cgarcin 12409 $contenu_operateur_pers_publique_amenageur = array();
1343 gmalvolti 12381 $contenu_operateur_pers_publique_amenageur[0][0]='';
1344     $contenu_operateur_pers_publique_amenageur[1][0]='';
1345     $contenu_operateur_pers_publique_amenageur[0][1]="f";
1346     $contenu_operateur_pers_publique_amenageur[1][1]=__('Non');
1347     $contenu_operateur_pers_publique_amenageur[0][2]="t";
1348     $contenu_operateur_pers_publique_amenageur[1][2]=__('Oui');
1349     $form->setSelect("operateur_pers_publique_amenageur", $contenu_operateur_pers_publique_amenageur);
1350    
1351 cgarcin 12409 $contenu_operateur_amenagement_pers_publique = array();
1352 gmalvolti 12237 $contenu_operateur_amenagement_pers_publique[0][0]="f";
1353     $contenu_operateur_amenagement_pers_publique[1][0]=__('Non');
1354     $contenu_operateur_amenagement_pers_publique[0][1]="t";
1355     $contenu_operateur_amenagement_pers_publique[1][1]=__('Oui');
1356     $form->setSelect("operateur_amenagement_pers_publique", $contenu_operateur_amenagement_pers_publique);
1357 gmalvolti 12203
1358 gmalvolti 12237 $contenu_tab_avis =array();
1359 gmalvolti 12248 $contenu_tab_avis[0][0]="";
1360 gmalvolti 12237 $contenu_tab_avis[1][0]=__('Sélectionner un avis');
1361     $contenu_tab_avis[0][1]="F";
1362     $contenu_tab_avis[1][1]=__('Favorable');
1363     $contenu_tab_avis[0][2]="D";
1364     $contenu_tab_avis[1][2]=__('Défavorable');
1365     $contenu_tab_avis[0][3]="T";
1366     $contenu_tab_avis[1][3]=__('Tacite');
1367     $form->setSelect("tab_avis", $contenu_tab_avis);
1368 gmalvolti 12248
1369 gmalvolti 12402 $tab_collterr = json_decode(html_entity_decode($this->getVal('operateur_detecte_collterr')));
1370 gmalvolti 12248 if (! empty($tab_collterr)) {
1371     for ($i=0; $i<count($tab_collterr); $i++) {
1372     if ($tab_collterr[$i]->tab_avis !== 'no_select') {
1373     $form->setSelect("tab_avis_".$i, $contenu_tab_avis);
1374     }
1375     }
1376     }
1377    
1378     $form->setSelect("operateur_personne_publique_avis", $contenu_tab_avis);
1379 gmalvolti 12237 }
1380    
1381    
1382 cgarcin 12406
1383 gmalvolti 12203 /**
1384 cgarcin 12406 * Surcharge du bouton retour afin de retourner sur le dossier d'instruction selon le cas.
1385     * En ajout et en modification si le formualire n'a pas été validé et qu'on est dans le contexte
1386     * d'un dossier d'instruction alors la redirection renvoie vers le dossier d'instruction.
1387     *
1388     * @param string idxformulaire : identifiant de l'objet du formulaire
1389     * @param string retourformulaire : nom de l'objet du formulaire
1390     * @param string val : valeur issue du formulaire
1391     * @param string objsf : nom de l'objet du sous-formulaire
1392     * @param string premiersf :
1393     * @param string tricolsf :
1394     * @param string validation : indique si le formulaire a été validé ou pas
1395     * @param string idx : identifiant de l'objet du sous-formulaire
1396     * @param string maj : identifiant de l'action utilisée
1397     * @param string retour : indique si on renvoie vers le listing ou vers un formulaire
1398     *
1399     * @return void
1400 gmalvolti 12203 */
1401     function retoursousformulaire($idxformulaire = NULL, $retourformulaire = NULL, $val = NULL,
1402     $objsf = NULL, $premiersf = NULL, $tricolsf = NULL, $validation = NULL,
1403     $idx = NULL, $maj = NULL, $retour = NULL) {
1404    
1405 cgarcin 12406 // Ajout et consultation, retour dossier
1406     if (( $maj == 0 && $validation == 0 ) ||
1407     ( $maj == 3 && $validation == 0 ) ||
1408     ( $maj == 0 && $validation == 1 ) &&
1409     $retourformulaire == "dossier_instruction"
1410     ) {
1411 cgarcin 12409 echo '<a class="retour" href="#" onclick="redirectPortletAction(1,\'main\');">'.
1412     __("Retour").
1413     '</a>';
1414 cgarcin 12406
1415     return;
1416 gmalvolti 12203 }
1417 cgarcin 12406
1418     //Sinon affiche un retour normal
1419     parent::retoursousformulaire($idxformulaire, $retourformulaire, $val,
1420     $objsf, $premiersf, $tricolsf, $validation,
1421     $idx, $maj, $retour);
1422 gmalvolti 12203 }
1423 gmalvolti 12237
1424     function update_tab_collterr() {
1425 gmalvolti 12248 if (empty($this->getVal('operateur_detecte_collterr'))) {
1426     return true;
1427     }
1428    
1429 gmalvolti 12402 $operateurs_collterr = json_decode(html_entity_decode($this->getVal('operateur_detecte_collterr')));
1430 cgarcin 12409 if (isset($_POST['tab_avis_maj'])) {
1431     $tab_avis = json_decode($_POST['tab_avis_maj']);
1432     }
1433 gmalvolti 12237
1434     foreach ($operateurs_collterr as $key => $value) {
1435 cgarcin 12409 if (isset($tab_avis[$key]) && $tab_avis[$key] !== NULL) {
1436 gmalvolti 12237 $operateurs_collterr[$key]->tab_avis = $tab_avis[$key];
1437 gmalvolti 12248 $valF['tab_avis_'.$key] = $tab_avis[$key];
1438 gmalvolti 12237 }
1439     }
1440    
1441     $valF = array();
1442     $valF['operateur_detecte_collterr'] = json_encode($operateurs_collterr);
1443    
1444 cgarcin 12409 $this->addToLog("maj operateur collterr : ".var_export($operateurs_collterr, true), VERBOSE_MODE);
1445     // Cette méthode est appellée dans la méthode triggermodifierapres(). On utilise donc
1446     // un autoexecute pour mettre les valeurs à jour et pas la méthode modifier pour éviter
1447     // de faire boucler le code
1448 gmalvolti 12237 $res = $this->f->db->autoExecute(
1449     DB_PREFIXE.$this->table,
1450 cgarcin 12409 $valF,
1451 gmalvolti 12237 DB_AUTOQUERY_UPDATE,
1452     $this->clePrimaire."=".$this->getVal($this->clePrimaire)
1453     );
1454     //
1455     $this->addToLog(
1456     __METHOD__." : db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($valF, true).", DB_AUTOQUERY_UPDATE, \"".$this->getVal('dossier_operateur')."\")",
1457 cgarcin 12409 VERBOSE_MODE
1458 gmalvolti 12237 );
1459    
1460     if ($this->f->isDatabaseError($res, true)) {
1461     // Appel de la methode de recuperation des erreurs
1462     $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
1463     $this->correct = false;
1464     // Termine le traitement
1465     return false;
1466     }
1467    
1468     return true;
1469     }
1470    
1471    
1472     /**
1473     * Permet de modifier l'affichage des boutons dans le sousformulaire.
1474     * @param string $datasubmit Données a transmettre
1475     * @param integer $maj Mode du formulaire
1476     * @param array $val Valeur du formulaire
1477     */
1478     function boutonsousformulaire($datasubmit, $maj, $val = null) {
1479    
1480     (isset($_GET['obj']) ? $obj = $this->f->get_submitted_get_value('obj') : $obj = "");
1481     ($this->f->get_submitted_get_value('idxformulaire') !== null ? $id_dossier_operateur =
1482     $this->f->get_submitted_get_value('idxformulaire') : $id_dossier_operateur = "");
1483 gmalvolti 12402
1484     $tab_detecte_collterr = json_decode(html_entity_decode($this->getVal('operateur_detecte_collterr')));
1485    
1486     $count_result_tab = count($tab_detecte_collterr);
1487 gmalvolti 12237 //
1488     if (!$this->correct) {
1489     // Action par défaut
1490     $onclick = "affichersform('".$this->get_absolute_class_name()."',
1491     '$datasubmit', this.form);return false;";
1492     //
1493     switch ($maj) {
1494     case 0:
1495 cgarcin 12406 $bouton = __("Ajouter");
1496 gmalvolti 12237 break;
1497     case 1:
1498 cgarcin 12406 $bouton = __("Modifier");
1499 gmalvolti 12237 // Action en mode ajouter
1500 gmalvolti 12402 $onclick = "get_avis_from_operateur_kpark(".$count_result_tab.");return";
1501 gmalvolti 12237 break;
1502     case 2:
1503 cgarcin 12406 $bouton = __("Supprimer");
1504 gmalvolti 12237 break;
1505     }
1506     //
1507     $params = array(
1508     "value" => $bouton,
1509     "onclick" => $onclick,
1510     );
1511     //
1512     $this->f->layout->display_form_button($params);
1513     }
1514     }
1515    
1516     /**
1517     * TRIGGER - triggermodifierapres.
1518     *
1519     * @return boolean
1520     */
1521     function triggermodifierapres($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
1522     $this->update_tab_collterr();
1523     $this->check_all_cases();
1524     }
1525 gmalvolti 12203 }

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26