1 |
<?php |
2 |
//$Id: dossier.inc.php 5232 2015-09-30 10:41:34Z stimezouaght $ |
3 |
//gen openMairie le 10/02/2011 20:39 |
4 |
include('../gen/sql/pgsql/dossier.inc.php'); |
5 |
include "../sql/pgsql/app_om_tab_common_select.inc.php"; |
6 |
|
7 |
if (isset($_GET['message_help']) |
8 |
&& ! is_null($_GET['message_help']) |
9 |
&& $_GET['message_help'] != "") { |
10 |
|
11 |
$tab_description = $_GET['message_help']; |
12 |
} |
13 |
|
14 |
/*Tables sur lesquels la requête va s'effectuer*/ |
15 |
$join_commune_dossier = ''; |
16 |
if ($f->is_option_dossier_commune_enabled()) { |
17 |
$join_commune_dossier = sprintf( |
18 |
'LEFT JOIN %scommune |
19 |
ON commune.commune = dossier.commune', |
20 |
DB_PREFIXE |
21 |
); |
22 |
} |
23 |
$table = sprintf( |
24 |
'%1$sdossier |
25 |
LEFT JOIN %1$slien_dossier_demandeur |
26 |
ON lien_dossier_demandeur.dossier = dossier.dossier |
27 |
AND lien_dossier_demandeur.petitionnaire_principal IS TRUE |
28 |
INNER JOIN %1$sdemandeur |
29 |
ON lien_dossier_demandeur.demandeur = demandeur.demandeur |
30 |
AND demandeur.type_demandeur = \'petitionnaire\' |
31 |
LEFT JOIN %1$sinstructeur |
32 |
ON dossier.instructeur = instructeur.instructeur |
33 |
LEFT JOIN %1$som_utilisateur |
34 |
ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur |
35 |
LEFT JOIN %1$savis_decision |
36 |
ON avis_decision.avis_decision=dossier.avis_decision |
37 |
LEFT JOIN %1$sdivision |
38 |
ON dossier.division=division.division |
39 |
LEFT JOIN %1$setat |
40 |
ON dossier.etat=etat.etat |
41 |
%2$s', |
42 |
DB_PREFIXE, |
43 |
$join_commune_dossier |
44 |
); |
45 |
|
46 |
|
47 |
/*Champs du début de la requête*/ |
48 |
$champAffiche = array( |
49 |
'dossier.dossier as "'.__("dossier").'"' |
50 |
); |
51 |
if ($f->is_option_dossier_commune_enabled()) { |
52 |
$champAffiche[] = 'commune.libelle as "'.__("commune").'"'; |
53 |
} |
54 |
array_push($champAffiche, |
55 |
'TRIM(CONCAT(personne_morale_denomination,\' \',personne_morale_nom,\' \',demandeur.particulier_nom)) as "'.__("petitionaire").'"', |
56 |
'instructeur.nom as "'.__("instructeur").'"', |
57 |
'to_char(dossier.date_demande ,\'DD/MM/YYYY\') as "'.__("date_demande").'"', |
58 |
'dossier.date_dernier_depot as "'.__("date_dernier_depot").'"', |
59 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("date_complet").'"', |
60 |
'to_char(dossier.date_notification_delai ,\'DD/MM/YYYY\') as "'.__("date_notification_delai").'"', |
61 |
'to_char(dossier.date_limite ,\'DD/MM/YYYY\') as "'.__("date_limite").'"', |
62 |
'dossier.etat as "'.__("etat").'"', |
63 |
'avis_decision.libelle as "'.__("avis_decision").'"', |
64 |
$select_enjeux_dossier |
65 |
); |
66 |
|
67 |
/*Tri*/ |
68 |
$triOrder= "order by dossier.dossier"; |
69 |
$tri = $triOrder; |
70 |
|
71 |
/*Recherche simple*/ |
72 |
$champRecherche = array( |
73 |
'dossier.dossier as "'.__("dossier").'"', |
74 |
'demandeur.personne_morale_denomination as "'.__("personne_morale_denomination").'"', |
75 |
'demandeur.particulier_nom as "'.__("particulier_nom").'"', |
76 |
'instructeur.nom as "'.__("instructeur").'"', |
77 |
'instructeur_secondaire.nom as "'.__("instructeur secondaire").'"', |
78 |
); |
79 |
if ($f->is_option_dossier_commune_enabled()) { |
80 |
$champRecherche[] = 'commune.libelle as "'.__("commune").'"'; |
81 |
} |
82 |
|
83 |
$edition=""; |
84 |
|
85 |
/** |
86 |
* OPTIONS |
87 |
*/ |
88 |
// |
89 |
if (!isset($options)) { |
90 |
$options = array(); |
91 |
} |
92 |
|
93 |
/*Si l'on se trouve dans le formulaire dossier_instruction*/ |
94 |
if (isset($_GET["obj"]) && $_GET["obj"] == "dossier_instruction") { |
95 |
/** |
96 |
* OPTIONS - ADVSEARCH |
97 |
*/ |
98 |
// Options pour les select de faux booléens |
99 |
$args = array( |
100 |
0 => array("", "Oui", "Non", ), |
101 |
1 => array(__("choisir")." ".__("accord_tacite"), __("Oui"), __("Non"), ), |
102 |
); |
103 |
$contenu_statut = array( |
104 |
0 => array("", 'cloture', 'encours',), |
105 |
1 => array(__("choisir")." ".__("statut"), __('Cloture'), __('En cours'),) |
106 |
); |
107 |
// |
108 |
$champs['dossier'] = array( |
109 |
'libelle' => __('dossier'), |
110 |
'type' => 'text', |
111 |
'table' => 'dossier', |
112 |
'colonne' => array( |
113 |
'dossier', |
114 |
'dossier_libelle', |
115 |
), |
116 |
'taille' => 30, |
117 |
'max' => '', |
118 |
); |
119 |
if ($f->is_option_dossier_commune_enabled()) { |
120 |
$champs['commune'] = array( |
121 |
'type' => 'text', |
122 |
'table' => 'commune', |
123 |
'colonne' => array( |
124 |
'libelle', |
125 |
'com', |
126 |
'dep', |
127 |
'reg' |
128 |
), |
129 |
'taille' => 30, |
130 |
'max' => '', |
131 |
'libelle' => __('commune'), |
132 |
); |
133 |
} |
134 |
// On ignore les DATD contentieux |
135 |
$champs['dossier_autorisation_type_detaille'] = array( |
136 |
'table' => 'dossier_autorisation_type_detaille', |
137 |
'colonne' => 'dossier_autorisation_type_detaille', |
138 |
'type' => 'select', |
139 |
'taille' => 30, |
140 |
'max' => '', |
141 |
'libelle' => __('type'), |
142 |
'subtype' => 'sqlselect', |
143 |
'sql' => "SELECT dossier_autorisation_type_detaille.dossier_autorisation_type_detaille, |
144 |
CONCAT(dossier_autorisation_type_detaille.code, ' - ', dossier_autorisation_type_detaille.libelle) |
145 |
FROM ".DB_PREFIXE."dossier_autorisation_type_detaille |
146 |
WHERE (LOWER(dossier_autorisation_type_detaille.code) != LOWER('REC') |
147 |
AND LOWER(dossier_autorisation_type_detaille.code) != LOWER('REG') |
148 |
AND LOWER(dossier_autorisation_type_detaille.code) != LOWER('IN')) |
149 |
ORDER BY libelle", |
150 |
); |
151 |
// |
152 |
$champs['particulier'] = array( |
153 |
'libelle' => __('Demandeur'), |
154 |
'help' => __("Recherche dans les champs : nom, prénom, raison sociale, dénomination. |
155 |
|
156 |
La chaîne recherchée doit figurer dans l'un de ces champs. |
157 |
|
158 |
Par exemple, dans le cas d'un demandeur avec le nom 'DUPONT' et le prénom 'JEAN' : |
159 |
- la recherche de 'JEAN' donne des résultats car le champ prénom contient 'JEAN', |
160 |
- la recherche de 'DUPONT' donne des résultats car le champ nom contient 'DUPONT', |
161 |
- la recherche de 'DUPONT JEAN' ne donne aucun résultat car ni le nom ni le prénom ni la raison sociale ni la dénomination ne contient 'DUPONT JEAN'."), |
162 |
'type' => 'text', |
163 |
'table' => 'demandeur', |
164 |
'colonne' => array( |
165 |
'particulier_nom', |
166 |
'particulier_prenom', |
167 |
'personne_morale_raison_sociale', |
168 |
'personne_morale_denomination', |
169 |
), |
170 |
'taille' => 30, |
171 |
'max' => '', |
172 |
); |
173 |
|
174 |
// |
175 |
$champs['adresse'] = array( |
176 |
'libelle' => __('localisation'), |
177 |
'help' => __("Recherche dans les champs numéro, voie, lieu-dit, code postal, localité, boite postale, cedex et dans l'adresse normalisée. |
178 |
|
179 |
La chaîne recherchée doit figurer dans l'un de ces champs. |
180 |
|
181 |
Par exemple, dans le cas d'une adresse avec la voie 'RUE DU ROUET' et la localité 'MARSEILLE' : |
182 |
- la recherche de 'RUE DU ROUET' donne des résultats car le champ voie contient 'RUE DU ROUET', |
183 |
- la recherche de 'MARSEILLE' donne des résultats car le champ localité contient 'MARSEILLE', |
184 |
- la recherche de 'RUE DU ROUET MARSEILLE' ne donne aucun résultat car ni le numéro ni la voie ni le lieu-dit ni le code postal ni la localité ni la boite postale ni le cedex ne contient 'RUE DU ROUET MARSEILLE'. |
185 |
|
186 |
Dans le cas de l'adresse normalisée, la recherche se fait sur la chaîne complète telle que retournée par la BAN. Il est donc conseillé d'utiliser le signe de remplacement * en début de votre recherche."), |
187 |
'type' => 'text', |
188 |
'table' => 'dossier', |
189 |
'colonne' => array( |
190 |
'terrain_adresse_voie_numero', |
191 |
'terrain_adresse_voie', |
192 |
'terrain_adresse_lieu_dit', |
193 |
'terrain_adresse_code_postal', |
194 |
'terrain_adresse_localite', |
195 |
'terrain_adresse_bp', |
196 |
'terrain_adresse_cedex', |
197 |
'adresse_normalisee', |
198 |
), |
199 |
'taille' => 30, |
200 |
'max' => '', |
201 |
); |
202 |
// |
203 |
$champs['parcelle'] = array( |
204 |
'table' => 'dossier_parcelle', |
205 |
'where' => 'injoin', |
206 |
'help' => __("Attention, il est possible que la section soit sur 1 ou 2 caractères, dans le cas où la parcelle saisie contient la section sur un seul caractère, il est conseillé d'ajouter une '*' avant la section. |
207 |
Exemple : '000*A0126'"), |
208 |
'tablejoin' => 'INNER JOIN (SELECT DISTINCT dossier FROM '.DB_PREFIXE.'dossier_parcelle WHERE lower(dossier_parcelle.libelle) like %s ) AS A1 ON A1.dossier = dossier.dossier' , |
209 |
'colonne' => 'libelle', |
210 |
'type' => 'text', |
211 |
'taille' => 30, |
212 |
'max' => '', |
213 |
'libelle' => __('parcelle'), |
214 |
); |
215 |
// |
216 |
$champs['famille_travaux'] = array( |
217 |
'table' => 'lien_dossier_nature_travaux', |
218 |
'type' => 'select', |
219 |
'libelle' => __('Famille de travaux'), |
220 |
'subtype' => 'sqlselect', |
221 |
'where' => 'injoin', |
222 |
'tablejoin' => 'INNER JOIN (SELECT DISTINCT dossier FROM '.DB_PREFIXE.'lien_dossier_nature_travaux INNER JOIN '.DB_PREFIXE.'nature_travaux ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux INNER JOIN '.DB_PREFIXE.'famille_travaux ON nature_travaux.famille_travaux = famille_travaux.famille_travaux WHERE nature_travaux.famille_travaux = %d ) AS ldntft ON ldntft.dossier = dossier.dossier', |
223 |
'sql' => |
224 |
"SELECT DISTINCT |
225 |
famille_travaux.famille_travaux, |
226 |
famille_travaux.libelle |
227 |
FROM |
228 |
".DB_PREFIXE."famille_travaux |
229 |
ORDER BY |
230 |
libelle, |
231 |
famille_travaux", |
232 |
); |
233 |
// |
234 |
$champs['nature_travaux'] = array( |
235 |
'table' => 'lien_dossier_nature_travaux', |
236 |
'type' => 'select', |
237 |
'libelle' => __('Nature de travaux'), |
238 |
'subtype' => 'sqlselect', |
239 |
'where' => 'injoin', |
240 |
'tablejoin' => 'INNER JOIN (SELECT DISTINCT dossier FROM '.DB_PREFIXE.'lien_dossier_nature_travaux WHERE lien_dossier_nature_travaux.nature_travaux = %d ) AS ldnt ON ldnt.dossier = dossier.dossier', |
241 |
'sql' => |
242 |
"SELECT DISTINCT |
243 |
nature_travaux.nature_travaux, |
244 |
nature_travaux.libelle |
245 |
FROM |
246 |
".DB_PREFIXE."nature_travaux |
247 |
ORDER BY |
248 |
libelle, |
249 |
nature_travaux", |
250 |
); |
251 |
// |
252 |
$champs['etat'] = array( |
253 |
'table' => 'dossier', |
254 |
'colonne' => 'etat', |
255 |
'type' => 'select', |
256 |
'libelle' => __('etat'), |
257 |
); |
258 |
// |
259 |
$champs['statut'] = array( |
260 |
'table' => 'etat', |
261 |
'colonne' => 'statut', |
262 |
'type' => 'select', |
263 |
'libelle' => __('statut'), |
264 |
'subtype' => 'manualselect', |
265 |
'args' => $contenu_statut |
266 |
); |
267 |
// |
268 |
if ($f->is_option_mode_service_consulte_enabled() === false) { |
269 |
$champs['accord_tacite'] = array( |
270 |
'table' => 'dossier', |
271 |
'colonne' => 'accord_tacite', |
272 |
'type' => 'select', |
273 |
"subtype" => "manualselect", |
274 |
'libelle' => __('accord_tacite'), |
275 |
"args" => $args, |
276 |
); |
277 |
} |
278 |
|
279 |
|
280 |
// |
281 |
$champs['division'] = array( |
282 |
'table' => 'dossier', |
283 |
'colonne' => 'division', |
284 |
'type' => 'select', |
285 |
'libelle' => __('division'), |
286 |
); |
287 |
if ($_SESSION['niveau'] == '2') { |
288 |
$champs['division']['subtype'] = 'sqlselect'; |
289 |
$champs['division']['sql'] = "SELECT division.division, CONCAT(division.libelle, ' (', om_collectivite.libelle, ')') |
290 |
FROM ".DB_PREFIXE."division |
291 |
INNER JOIN ".DB_PREFIXE."direction ON division.direction = direction.direction |
292 |
INNER JOIN ".DB_PREFIXE."om_collectivite ON direction.om_collectivite = om_collectivite.om_collectivite |
293 |
WHERE ((division.om_validite_debut IS NULL AND (division.om_validite_fin IS NULL OR division.om_validite_fin > CURRENT_DATE)) OR (division.om_validite_debut <= CURRENT_DATE AND (division.om_validite_fin IS NULL OR division.om_validite_fin > CURRENT_DATE))) |
294 |
ORDER BY division.libelle"; |
295 |
} |
296 |
|
297 |
$args_source_depot = array( |
298 |
// |
299 |
0 => array("", "app", PLATAU, PORTAL), |
300 |
1 => array(__("choisir")." ".__("source_depot"), __("app"), __("platau"), __("portal")), |
301 |
); |
302 |
|
303 |
// |
304 |
$champs['source_depot'] = array( |
305 |
'table' => 'demande', |
306 |
'colonne' => 'source_depot', |
307 |
'type' => 'select', |
308 |
'libelle' => __('source_depot'), |
309 |
'subtype' => 'manualselect', |
310 |
'args' => $args_source_depot |
311 |
); |
312 |
|
313 |
// |
314 |
$champs['instructeur'] = array( |
315 |
'table' => 'dossier', |
316 |
'colonne' => 'instructeur', |
317 |
'type' => 'select', |
318 |
'libelle' => __('instructeur'), |
319 |
); |
320 |
// |
321 |
if ($_SESSION['niveau'] == '2') { |
322 |
$champs['instructeur']['subtype'] = 'sqlselect'; |
323 |
$champs['instructeur']['sql'] = |
324 |
"SELECT |
325 |
instructeur.instructeur, |
326 |
instructeur.nom||' ('||division.code||')' |
327 |
FROM |
328 |
".DB_PREFIXE."instructeur |
329 |
INNER JOIN ".DB_PREFIXE."division |
330 |
ON division.division=instructeur.division |
331 |
WHERE |
332 |
((instructeur.om_validite_debut IS NULL |
333 |
AND (instructeur.om_validite_fin IS NULL |
334 |
OR instructeur.om_validite_fin > CURRENT_DATE) |
335 |
) OR (instructeur.om_validite_debut <= CURRENT_DATE |
336 |
AND (instructeur.om_validite_fin IS NULL |
337 |
OR instructeur.om_validite_fin > CURRENT_DATE))) |
338 |
ORDER BY |
339 |
instructeur.nom, |
340 |
division.code, |
341 |
instructeur.instructeur"; |
342 |
} |
343 |
// |
344 |
$champs['instructeur_2'] = array( |
345 |
'table' => 'dossier', |
346 |
'colonne' => 'instructeur_2', |
347 |
'type' => 'select', |
348 |
'libelle' => __('instructeur secondaire'), |
349 |
); |
350 |
// |
351 |
if ($_SESSION['niveau'] == '2') { |
352 |
$champs['instructeur_2']['subtype'] = 'sqlselect'; |
353 |
$champs['instructeur_2']['sql'] = sprintf( |
354 |
'SELECT |
355 |
instructeur.instructeur, |
356 |
instructeur.nom||\' (\'||division.code||\')\' |
357 |
FROM |
358 |
%1$sdossier |
359 |
INNER JOIN %1$sinstructeur |
360 |
ON dossier.instructeur_2 = instructeur.instructeur |
361 |
INNER JOIN %1$sdivision |
362 |
ON division.division = instructeur.division |
363 |
GROUP BY |
364 |
instructeur.instructeur, |
365 |
division.code |
366 |
ORDER BY |
367 |
instructeur.nom, |
368 |
division.code, |
369 |
instructeur.instructeur', |
370 |
DB_PREFIXE |
371 |
); |
372 |
} |
373 |
$champs['date_depot'] = array( |
374 |
'colonne' => 'date_depot', |
375 |
'table' => 'dossier', |
376 |
'libelle' => __('date_depot'), |
377 |
'lib1'=> __("debut"), |
378 |
'lib2' => __("fin"), |
379 |
'type' => 'date', |
380 |
'taille' => 8, |
381 |
'where' => 'intervaldate', |
382 |
); |
383 |
// |
384 |
if ($f->is_option_date_depot_mairie_enabled() === true) { |
385 |
$champs['date_depot_mairie'] = array( |
386 |
'colonne' => 'date_depot_mairie', |
387 |
'table' => 'dossier', |
388 |
'libelle' => __('date_depot_mairie'), |
389 |
'lib1'=> __("debut"), |
390 |
'lib2' => __("fin"), |
391 |
'type' => 'date', |
392 |
'taille' => 8, |
393 |
'where' => 'intervaldate', |
394 |
); |
395 |
} |
396 |
// |
397 |
if ($f->is_option_mode_service_consulte_enabled() === false) { |
398 |
$champs['date_rejet'] = array( |
399 |
'colonne' => 'date_rejet', |
400 |
'table' => 'dossier', |
401 |
'libelle' => __('date_rejet'), |
402 |
'lib1'=> __("debut"), |
403 |
'lib2' => __("fin"), |
404 |
'type' => 'date', |
405 |
'taille' => 8, |
406 |
'where' => 'intervaldate', |
407 |
); |
408 |
|
409 |
$champs['date_validite'] = array( |
410 |
'colonne' => 'date_validite', |
411 |
'table' => 'dossier', |
412 |
'libelle' => __('date_validite'), |
413 |
'lib1'=> __("debut"), |
414 |
'lib2' => __("fin"), |
415 |
'type' => 'date', |
416 |
'taille' => 8, |
417 |
'where' => 'intervaldate', |
418 |
); |
419 |
} |
420 |
// |
421 |
$champs['date_complet'] = array( |
422 |
'colonne' => 'date_complet', |
423 |
'table' => 'dossier', |
424 |
'libelle' => __('date_complet'), |
425 |
'lib1'=> __("debut"), |
426 |
'lib2' => __("fin"), |
427 |
'type' => 'date', |
428 |
'taille' => 8, |
429 |
'where' => 'intervaldate', |
430 |
); |
431 |
// |
432 |
$champs['date_decision'] = array( |
433 |
'colonne' => 'date_decision', |
434 |
'table' => 'dossier', |
435 |
'libelle' => __('date_decision'), |
436 |
'lib1'=> __("debut"), |
437 |
'lib2' => __("fin"), |
438 |
'type' => 'date', |
439 |
'taille' => 8, |
440 |
'where' => 'intervaldate', |
441 |
); |
442 |
// |
443 |
$champs['date_limite'] = array( |
444 |
'colonne' => 'date_limite', |
445 |
'table' => 'dossier', |
446 |
'libelle' => __('date_limite'), |
447 |
'lib1'=> __("debut"), |
448 |
'lib2' => __("fin"), |
449 |
'type' => 'date', |
450 |
'taille' => 8, |
451 |
'where' => 'intervaldate', |
452 |
); |
453 |
// |
454 |
if ($f->is_option_mode_service_consulte_enabled() === false) { |
455 |
$champs['date_chantier'] = array( |
456 |
'colonne' => 'date_chantier', |
457 |
'table' => 'dossier', |
458 |
'libelle' => __('date_chantier'), |
459 |
'lib1'=> __("debut"), |
460 |
'lib2' => __("fin"), |
461 |
'type' => 'date', |
462 |
'taille' => 8, |
463 |
'where' => 'intervaldate', |
464 |
); |
465 |
|
466 |
$champs['date_achevement'] = array( |
467 |
'colonne' => 'date_achevement', |
468 |
'table' => 'dossier', |
469 |
'libelle' => __('date_achevement'), |
470 |
'lib1'=> __("debut"), |
471 |
'lib2' => __("fin"), |
472 |
'type' => 'date', |
473 |
'taille' => 8, |
474 |
'where' => 'intervaldate', |
475 |
); |
476 |
|
477 |
$champs['date_conformite'] = array( |
478 |
'colonne' => 'date_conformite', |
479 |
'table' => 'dossier', |
480 |
'libelle' => __('date_conformite'), |
481 |
'lib1'=> __("debut"), |
482 |
'lib2' => __("fin"), |
483 |
'type' => 'date', |
484 |
'taille' => 8, |
485 |
'where' => 'intervaldate', |
486 |
); |
487 |
} |
488 |
// |
489 |
if ($_SESSION['niveau'] == '2') { |
490 |
$champs['om_collectivite'] = array( |
491 |
'table' => 'dossier', |
492 |
'colonne' => 'om_collectivite', |
493 |
'type' => 'select', |
494 |
'libelle' => __('om_collectivite') |
495 |
); |
496 |
} |
497 |
// advsearch -> options |
498 |
$options[] = array( |
499 |
'type' => 'search', |
500 |
'display' => true, |
501 |
'advanced' => $champs, |
502 |
'default_form' => 'advanced', |
503 |
'absolute_object' => 'dossier', |
504 |
'export' => array("csv"), |
505 |
); |
506 |
|
507 |
/** |
508 |
* OPTIONS |
509 |
*/ |
510 |
// |
511 |
$options[] = array( |
512 |
'type' => 'pagination_select', |
513 |
'display' => '' |
514 |
); |
515 |
} |
516 |
|
517 |
$retourformulaire = (isset($_GET['retourformulaire']) ? $_GET['retourformulaire'] : ""); |
518 |
|
519 |
// On change l'ordre d'affichage des onglets |
520 |
$sousformulaire=array(); |
521 |
// Affichage de l'onglet acteur uniquement si l'utilisateur à les permissions nécessaire |
522 |
// et si l'option de paramétrage de la notification automatique des tiers est active |
523 |
if ($f->isAccredited(array("lien_dossier_tiers", "lien_dossier_tiers_tab"), "OR") |
524 |
&& $f->is_option_enabled('option_module_acteur')) { |
525 |
$sousformulaire[] = "lien_dossier_tiers"; |
526 |
} |
527 |
$sousformulaire[] = "dossier_contrainte"; |
528 |
$sousformulaire[] = "instruction"; |
529 |
// Ajout d'une permission en plus pour afficher cette onglet afin de faciliter |
530 |
// l'utilisation de son contenu dans le contexte des demandes d'avis |
531 |
if ($f->isAccredited(array("consultation", "consultation_tab_di"), "OR")) { |
532 |
// |
533 |
$sousformulaire[] = "consultation"; |
534 |
} |
535 |
$sousformulaire[] = "dossier_commission"; |
536 |
$sousformulaire[] = "lot"; |
537 |
$sousformulaire[] = "dossier_message"; |
538 |
$sousformulaire[] = "blocnote"; |
539 |
// |
540 |
if ($f->isAccredited("document_numerise") || $f->isAccredited(array("dossier", "dossier_document_numerise"), "OR")) { |
541 |
$sousformulaire[] = "document_numerise"; |
542 |
} |
543 |
// Vérifie si le mode service consulté et actif et si l'utilisateur à la permission |
544 |
// d'accéder au sous-dossier |
545 |
if ($f->is_option_mode_service_consulte_enabled() === true && |
546 |
$f->isAccredited(array("sous_dossier", "sous_dossier_consulter", ""), "OR")) { |
547 |
$sousformulaire[] = "sous_dossier"; |
548 |
} |
549 |
$sousformulaire[] = "lien_dossier_dossier"; |
550 |
/*Ajout de paramètre à certains sous-formulaire*/ |
551 |
// Défini si on doit faire appel au dossier ou au sous-dossier selon le contexte. |
552 |
// Par défaut, on fait appel au dossier sauf si l'obj issus de l'url est sous-dossier. |
553 |
// Important car c'est cette classe qui va permettre de faire appel aux surcharges des |
554 |
// sous-dossier, notamment pour l'affichage des onglets document numérisé et contrainte |
555 |
$idx = isset($idx) ? $idx : ''; |
556 |
$getObj = isset($_GET['obj']) ? $_GET['obj'] : ''; |
557 |
// Récupération du contexte du widget pour gérer la redirection vers le listing |
558 |
// du widget dans le contexte des sous-dossiers |
559 |
$cplmtUrlWidget = ''; |
560 |
$retourWidget = $f->get_submitted_get_value('retour_widget'); |
561 |
$widgetRechercheId = $f->get_submitted_get_value('widget_recherche_id'); |
562 |
if (! empty($retourWidget) && !empty($widgetRechercheId)) { |
563 |
$cplmtUrlWidget = '&retour_widget='.$retourWidget. |
564 |
'&widget_recherche_id='.$widgetRechercheId; |
565 |
} |
566 |
|
567 |
$sousformulaire_parameters = array( |
568 |
"consultation" => array( |
569 |
"title" => __("consultation(s)"), |
570 |
), |
571 |
"dossier_message" => array( |
572 |
"title" => __("message(s)"), |
573 |
), |
574 |
"dossier_commission" => array( |
575 |
"title" => __("commission(s)"), |
576 |
), |
577 |
"lot" => array( |
578 |
"title" => __("lot(s)"), |
579 |
), |
580 |
"lien_dossier_dossier" => array( |
581 |
"title" => __("Dossiers liés"), |
582 |
"href" => OM_ROUTE_FORM."&obj=lien_dossier_dossier&action=4&idx=0&idxformulaire=".$idx. |
583 |
"&retourformulaire=".$retourformulaire."&contentonly=true&", |
584 |
), |
585 |
"dossier_contrainte" => array( |
586 |
"title" => __("Contrainte(s)"), |
587 |
"href" => OM_ROUTE_FORM."&obj=dossier&action=4&idx=".$idx."&retourformulaire=".$getObj."&", |
588 |
), |
589 |
"document_numerise" => null, |
590 |
); |
591 |
|
592 |
// |
593 |
if ($f->isAccredited("document_numerise") || $f->isAccredited(array("dossier", "dossier_document_numerise"), "OR")) { |
594 |
// |
595 |
$sousformulaire_parameters["document_numerise"] = array( |
596 |
"title" => __("Pièces & documents"), |
597 |
"href" => OM_ROUTE_FORM."&obj=dossier&action=5&idx=".$idx."&retourformulaire=".$getObj."&", |
598 |
); |
599 |
} |
600 |
|
601 |
// Affichage de l'onglet acteur uniquement si l'utilisateur à les permissions nécessaire |
602 |
if ($f->isAccredited(array("lien_dossier_tiers", "lien_dossier_tiers_tab"), "OR") |
603 |
&& $f->is_option_enabled('option_module_acteur')) { |
604 |
$sousformulaire_parameters["lien_dossier_tiers"] = array( |
605 |
"title" => __("Acteur(s)"), |
606 |
"href" => OM_ROUTE_FORM."&obj=lien_dossier_tiers&action=4&idx=".$idx."&retourformulaire=".$getObj."&", |
607 |
); |
608 |
} |
609 |
|
610 |
// Vérifie si le mode service consulté et actif et si l'utilisateur à la permission |
611 |
// d'accéder au sous-dossier |
612 |
if ($f->is_option_mode_service_consulte_enabled() === true && |
613 |
$f->isAccredited(array("sous_dossier", "sous_dossier_consulter", ""), "OR")) { |
614 |
$sousformulaire_parameters["sous_dossier"] = array( |
615 |
"title" => __("Sous-dossiers"), |
616 |
"href" => OM_ROUTE_FORM."&obj=sous_dossier&action=7&idx=0&idxformulaire=". |
617 |
'&advs_id_parent='.$f->get_submitted_get_value('advs_id').'&'.$idx.$cplmtUrlWidget. |
618 |
"&retourformulaire=".$retourformulaire."&contentonly=true&", |
619 |
); |
620 |
} |
621 |
|
622 |
/** |
623 |
* Options |
624 |
*/ |
625 |
// Marque la ligne si le dossier n'a pas été géolocalisé. |
626 |
// Nécessite que la seconde colonne des tableaux soit le geom. |
627 |
// Dans la variable $champAffiche en seconde position mettre 'dossier.geom as "geom_picto"', |
628 |
$options[] = array( |
629 |
"type" => "condition", |
630 |
"field" => 'dossier.geom', |
631 |
"case" => array( |
632 |
1 => array( // column key for dossier.geom (geom_picto) |
633 |
"values" => array(''), // style only empty values |
634 |
"style" => "no-geoloc"))); |
635 |
// Marque la ligne si le dossier à comme source de dépôt portal ou platau. |
636 |
// Nécessite que la troisième colonne des tableaux soit la source de dépôt de la demande. |
637 |
// Dans la variable $champAffiche en seconde troisième mettre 'demande.source_depot as "demat_picto"', |
638 |
$options[] = array( |
639 |
"type" => "condition", |
640 |
"field" => 'demande.source_depot', |
641 |
"case" => array( |
642 |
array( |
643 |
"values" => array(PORTAL, PLATAU), |
644 |
"style" => "consult-demat"))); |
645 |
|
646 |
$options[] = array('type' => 'wildcard', 'left' => '', 'right' => ''); |
647 |
?> |