7 |
|
|
8 |
/*Etend la classe dossier*/ |
/*Etend la classe dossier*/ |
9 |
include('../sql/pgsql/dossier.inc.php'); |
include('../sql/pgsql/dossier.inc.php'); |
10 |
|
include "../sql/pgsql/app_om_tab_common_select.inc.php"; |
11 |
|
|
12 |
/*Titre de la page*/ |
/*Titre de la page*/ |
13 |
$ent = _("instruction")." -> "._("dossiers d'instruction"); |
$ent = _("instruction")." -> "._("dossiers d'instruction"); |
28 |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
29 |
END"; |
END"; |
30 |
|
|
|
/*Formatage de l'adresse du terrain, concatenantion de plusieurs champs pour les |
|
|
* mettrent dans une seule colonne*/ |
|
|
$trim_concat_terrain = ' |
|
|
TRIM( |
|
|
COALESCE( |
|
|
dossier.adresse_normalisee, |
|
|
CONCAT_WS( |
|
|
\' \', |
|
|
dossier.terrain_adresse_voie_numero, |
|
|
dossier.terrain_adresse_voie, |
|
|
dossier.terrain_adresse_lieu_dit, |
|
|
dossier.terrain_adresse_code_postal, |
|
|
dossier.terrain_adresse_localite, |
|
|
dossier.terrain_adresse_bp, |
|
|
dossier.terrain_adresse_cedex |
|
|
) |
|
|
) |
|
|
) as "'.__("localisation").'"'; |
|
|
|
|
31 |
/*Tables sur lesquels la requête va s'effectuer*/ |
/*Tables sur lesquels la requête va s'effectuer*/ |
32 |
$table = DB_PREFIXE."dossier |
$table = sprintf( |
33 |
LEFT JOIN ( |
'%1$sdossier |
34 |
SELECT * |
-- Recherche le pétitionnaire principal du dossier (unique !) |
35 |
FROM ".DB_PREFIXE."lien_dossier_demandeur |
LEFT JOIN ( |
36 |
INNER JOIN ".DB_PREFIXE."demandeur |
SELECT |
37 |
ON demandeur.demandeur = lien_dossier_demandeur.demandeur |
* |
38 |
WHERE lien_dossier_demandeur.petitionnaire_principal IS TRUE |
FROM |
39 |
AND LOWER(demandeur.type_demandeur) = LOWER('petitionnaire') |
%1$slien_dossier_demandeur |
40 |
) as demandeur |
INNER JOIN %1$sdemandeur |
41 |
ON demandeur.dossier = dossier.dossier |
ON demandeur.demandeur = lien_dossier_demandeur.demandeur |
42 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation |
WHERE |
43 |
ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation |
lien_dossier_demandeur.petitionnaire_principal IS TRUE |
44 |
LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
AND LOWER(demandeur.type_demandeur) = LOWER(\'petitionnaire\') |
45 |
ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_autorisation.dossier_autorisation_type_detaille |
) as demandeur |
46 |
LEFT JOIN ".DB_PREFIXE."instructeur |
ON demandeur.dossier = dossier.dossier |
47 |
ON dossier.instructeur = instructeur.instructeur |
-- Recherche le type de DATD |
48 |
LEFT JOIN ".DB_PREFIXE."om_utilisateur |
LEFT JOIN %1$sdossier_instruction_type |
49 |
ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur |
ON dossier_instruction_type.dossier_instruction_type = dossier.dossier_instruction_type |
50 |
LEFT JOIN ".DB_PREFIXE."instructeur as instructeur2 |
LEFT JOIN %1$sdossier_autorisation_type_detaille |
51 |
ON dossier.instructeur_2 = instructeur2.instructeur |
ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = dossier_instruction_type.dossier_autorisation_type_detaille |
52 |
LEFT JOIN ".DB_PREFIXE."om_utilisateur as om_utilisateur2 |
-- Recherche l instructeur du dossier |
53 |
ON instructeur2.om_utilisateur = om_utilisateur2.om_utilisateur |
LEFT JOIN %1$sinstructeur |
54 |
LEFT JOIN ".DB_PREFIXE."etat |
ON dossier.instructeur = instructeur.instructeur |
55 |
ON dossier.etat = etat.etat |
LEFT JOIN %1$som_utilisateur |
56 |
LEFT JOIN ".DB_PREFIXE."division |
ON instructeur.om_utilisateur = om_utilisateur.om_utilisateur |
57 |
ON dossier.division = division.division |
-- Recherche l instructeur 2 du dossier |
58 |
LEFT JOIN ".DB_PREFIXE."avis_decision |
LEFT JOIN %1$sinstructeur as instructeur_secondaire |
59 |
ON avis_decision.avis_decision=dossier.avis_decision |
ON dossier.instructeur_2 = instructeur_secondaire.instructeur |
60 |
LEFT JOIN ".DB_PREFIXE."om_collectivite |
LEFT JOIN %1$som_utilisateur as utilisateur_2 |
61 |
ON dossier.om_collectivite=om_collectivite.om_collectivite |
ON instructeur_secondaire.om_utilisateur = utilisateur_2.om_utilisateur |
62 |
LEFT OUTER JOIN ".DB_PREFIXE."arrondissement |
-- Recherche l etat du dossier |
63 |
ON arrondissement.code_postal = dossier.terrain_adresse_code_postal |
LEFT JOIN %1$setat |
64 |
"; |
ON dossier.etat = etat.etat |
65 |
|
-- Recherche la division de rattachement du dossier (différente de celle de l instructeur) |
66 |
|
LEFT JOIN %1$sdivision |
67 |
|
ON dossier.division = division.division |
68 |
|
-- Recherche l avis de décision |
69 |
|
LEFT JOIN %1$savis_decision |
70 |
|
ON avis_decision.avis_decision=dossier.avis_decision |
71 |
|
-- Recherche la collectivite de rattachement du dossier |
72 |
|
LEFT JOIN %1$som_collectivite |
73 |
|
ON dossier.om_collectivite=om_collectivite.om_collectivite |
74 |
|
-- Recherche l arrondissement du dossier |
75 |
|
LEFT JOIN %1$sarrondissement |
76 |
|
ON arrondissement.code_postal = dossier.terrain_adresse_code_postal |
77 |
|
-- Récupère la demande qui a créé le type dossier du dossier |
78 |
|
LEFT JOIN (%1$sdemande |
79 |
|
JOIN %1$sdemande_type |
80 |
|
ON demande.demande_type = demande_type.demande_type |
81 |
|
) |
82 |
|
ON demande.dossier_instruction = dossier.dossier |
83 |
|
AND demande_type.dossier_instruction_type = dossier.dossier_instruction_type |
84 |
|
', |
85 |
|
DB_PREFIXE |
86 |
|
); |
87 |
if ($f->is_option_dossier_commune_enabled()) { |
if ($f->is_option_dossier_commune_enabled()) { |
88 |
$table .= " |
$table .= " |
89 |
LEFT OUTER JOIN ".DB_PREFIXE."commune |
LEFT OUTER JOIN ".DB_PREFIXE."commune |
91 |
"; |
"; |
92 |
} |
} |
93 |
|
|
94 |
|
$nature_travaux_from = "LEFT JOIN ( |
95 |
|
SELECT ntc.dossier, string_agg(ntc.libelle::text, '\n' order by ntc.libelle) as libelle |
96 |
|
FROM |
97 |
|
(SELECT DISTINCT |
98 |
|
dossier, |
99 |
|
famille_travaux.libelle as famille_travaux, |
100 |
|
CONCAT(famille_travaux.libelle, ' / ', nature_travaux.libelle) as libelle |
101 |
|
FROM |
102 |
|
".DB_PREFIXE."lien_dossier_nature_travaux |
103 |
|
INNER JOIN |
104 |
|
".DB_PREFIXE."nature_travaux |
105 |
|
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux |
106 |
|
INNER JOIN |
107 |
|
".DB_PREFIXE."famille_travaux |
108 |
|
ON nature_travaux.famille_travaux = famille_travaux.famille_travaux ORDER BY famille_travaux.libelle) as ntc |
109 |
|
GROUP BY dossier ORDER BY libelle) as nature_travaux ON nature_travaux.dossier = dossier.dossier |
110 |
|
"; |
111 |
// Ajout des colonnes concernant la demat |
// Ajout des colonnes concernant la demat |
112 |
$table .= |
if ($f->get_submitted_get_value('mode') === 'export_csv') { |
113 |
"LEFT JOIN |
// Jointure permettant d'afficher l'id platau du service consultant et le |
114 |
(SELECT |
// libellé du service consultant dans les exports si le mode service consulté est |
115 |
|
// actif |
116 |
|
$table .= $f->is_option_mode_service_consulte_enabled() === true ? |
117 |
|
'LEFT JOIN '.DB_PREFIXE.'consultation_entrante |
118 |
|
ON dossier.dossier = consultation_entrante.dossier |
119 |
|
' : |
120 |
|
''; |
121 |
|
$table .= |
122 |
|
"LEFT JOIN |
123 |
|
(SELECT |
124 |
|
dossier, |
125 |
|
external_uid |
126 |
|
FROM |
127 |
|
".DB_PREFIXE."lien_id_interne_uid_externe |
128 |
|
WHERE object = 'dossier' |
129 |
|
AND category = 'platau' |
130 |
|
) AS dossier_platau |
131 |
|
ON |
132 |
|
dossier_platau.dossier = dossier.dossier |
133 |
|
LEFT JOIN |
134 |
|
(SELECT |
135 |
|
dossier, |
136 |
|
external_uid |
137 |
|
FROM |
138 |
|
".DB_PREFIXE."lien_id_interne_uid_externe |
139 |
|
WHERE object = 'dossier_consultation' |
140 |
|
AND category = 'platau' |
141 |
|
) AS consultation_platau |
142 |
|
ON |
143 |
|
consultation_platau.dossier = dossier.dossier |
144 |
|
LEFT JOIN |
145 |
|
(SELECT |
146 |
|
dossier, |
147 |
|
ARRAY_TO_STRING(ARRAY_AGG(external_uid ORDER BY external_uid ASC), ', ') AS external_uid |
148 |
|
FROM |
149 |
|
".DB_PREFIXE."lien_id_interne_uid_externe |
150 |
|
WHERE |
151 |
|
object = 'piece' |
152 |
|
AND category = 'platau' |
153 |
|
GROUP BY |
154 |
|
dossier) AS pieces_platau |
155 |
|
ON |
156 |
|
pieces_platau.dossier = dossier.dossier |
157 |
|
LEFT JOIN |
158 |
|
(SELECT |
159 |
|
dossier, |
160 |
|
ARRAY_TO_STRING(ARRAY_AGG(object || ' : ' || external_uid), ', ') AS external_uid |
161 |
|
FROM |
162 |
|
".DB_PREFIXE."lien_id_interne_uid_externe |
163 |
|
WHERE |
164 |
|
object != 'piece' |
165 |
|
AND object != 'dossier' |
166 |
|
AND object != 'dossier_consultation' |
167 |
|
AND category = 'platau' |
168 |
|
GROUP BY |
169 |
|
dossier) AS autres_platau |
170 |
|
ON |
171 |
|
autres_platau.dossier = dossier.dossier |
172 |
|
"; |
173 |
|
$nature_travaux_from = "LEFT JOIN ( |
174 |
|
SELECT ftc.dossier, string_agg(ftc.libelle::text, ', ') as famille_travaux_libelle |
175 |
|
FROM |
176 |
|
(SELECT DISTINCT |
177 |
dossier, |
dossier, |
178 |
external_uid |
famille_travaux.libelle |
179 |
FROM |
FROM |
180 |
".DB_PREFIXE."lien_id_interne_uid_externe |
".DB_PREFIXE."lien_dossier_nature_travaux |
181 |
WHERE object = 'dossier' |
INNER JOIN |
182 |
AND category = 'platau' |
".DB_PREFIXE."nature_travaux |
183 |
) AS dossier_platau |
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux |
184 |
ON |
INNER JOIN |
185 |
dossier_platau.dossier = dossier.dossier |
".DB_PREFIXE."famille_travaux |
186 |
LEFT JOIN |
ON nature_travaux.famille_travaux = famille_travaux.famille_travaux |
187 |
(SELECT |
ORDER BY famille_travaux.libelle) as ftc |
188 |
dossier, |
GROUP BY dossier) as famille_travaux ON famille_travaux.dossier = dossier.dossier |
189 |
external_uid |
LEFT JOIN ( |
190 |
FROM |
SELECT ntc.dossier, string_agg(ntc.libelle::text, ', ') as nature_travaux_libelle |
191 |
".DB_PREFIXE."lien_id_interne_uid_externe |
FROM |
192 |
WHERE object = 'dossier_consultation' |
(SELECT DISTINCT |
193 |
AND category = 'platau' |
dossier, |
194 |
) AS consultation_platau |
nature_travaux.libelle |
195 |
ON |
FROM |
196 |
consultation_platau.dossier = dossier.dossier |
".DB_PREFIXE."lien_dossier_nature_travaux |
197 |
LEFT JOIN |
INNER JOIN |
198 |
(SELECT |
".DB_PREFIXE."nature_travaux |
199 |
dossier, |
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux |
200 |
ARRAY_TO_STRING(ARRAY_AGG(external_uid ORDER BY external_uid ASC), ', ') AS external_uid |
ORDER BY nature_travaux.libelle) as ntc |
201 |
FROM |
GROUP BY dossier) as nature_travaux ON nature_travaux.dossier = dossier.dossier |
202 |
".DB_PREFIXE."lien_id_interne_uid_externe |
"; |
203 |
WHERE |
} |
|
object = 'piece' |
|
|
AND category = 'platau' |
|
|
GROUP BY |
|
|
dossier) AS pieces_platau |
|
|
ON |
|
|
pieces_platau.dossier = dossier.dossier |
|
|
LEFT JOIN |
|
|
(SELECT |
|
|
dossier, |
|
|
ARRAY_TO_STRING(ARRAY_AGG(object || ' : ' || external_uid), ', ') AS external_uid |
|
|
FROM |
|
|
".DB_PREFIXE."lien_id_interne_uid_externe |
|
|
WHERE |
|
|
object != 'piece' |
|
|
AND object != 'dossier' |
|
|
AND object != 'dossier_consultation' |
|
|
AND category = 'platau' |
|
|
GROUP BY |
|
|
dossier) AS autres_platau |
|
|
ON |
|
|
autres_platau.dossier = dossier.dossier |
|
|
LEFT JOIN |
|
|
(SELECT DISTINCT(dossier_instruction), source_depot |
|
|
FROM ".DB_PREFIXE."demande) AS demande |
|
|
ON demande.dossier_instruction = dossier.dossier |
|
|
"; |
|
204 |
|
|
205 |
$champ_date_depot_mairie = 'to_char(dossier.date_depot_mairie ,\'DD/MM/YYYY\') as "'._("date_depot_mairie").'"'; |
$champ_date_depot_mairie = 'to_char(dossier.date_depot_mairie ,\'DD/MM/YYYY\') as "'.__("dépôt mairie").'"'; |
206 |
|
|
207 |
/*Champs du début de la requête*/ |
/*Champs du début de la requête*/ |
208 |
$champAffiche_debut_commun = array( |
$champAffiche_debut_commun = array( |
209 |
'dossier.dossier as "'._("dossier").'"', |
'dossier.dossier as "'._("dossier").'"', |
210 |
'dossier.dossier_libelle as "'._("dossier").'"' |
'dossier.geom as "geom_picto"', |
211 |
|
'demande.source_depot as "demat_picto"', |
212 |
|
$select__dossier_libelle__column_as, |
213 |
); |
); |
214 |
if ($f->is_option_dossier_commune_enabled()) { |
if ($f->is_option_dossier_commune_enabled()) { |
215 |
$champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"'; |
$champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"'; |
217 |
array_push($champAffiche_debut_commun, |
array_push($champAffiche_debut_commun, |
218 |
$case_demandeur.' as "'._("petitionnaire").'"', |
$case_demandeur.' as "'._("petitionnaire").'"', |
219 |
$trim_concat_terrain, |
$trim_concat_terrain, |
220 |
'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"', |
'dossier_autorisation_type_detaille.libelle as "'._("type").'"', |
221 |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'.__("dépôt").'"', |
222 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"', |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("complétude").'"', |
223 |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
224 |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
225 |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
226 |
END as "'._("date_limite").'"' |
END as "'.__("limite").'"' |
227 |
); |
); |
228 |
|
|
229 |
if ($f->is_option_date_depot_mairie_enabled() === true) { |
if ($f->is_option_date_depot_mairie_enabled() === true) { |
237 |
// avant de tronquer la valeur et d'ajouter une ellipse "…" |
// avant de tronquer la valeur et d'ajouter une ellipse "…" |
238 |
$max_chars = 40; |
$max_chars = 40; |
239 |
// |
// |
240 |
$nature_des_travaux_select = " |
$description_projet_select = " |
241 |
CASE WHEN char_length(nature_des_travaux) <= ".$max_chars." THEN |
CASE WHEN nature_travaux.libelle IS NULL AND char_length(description_projet) <= ".$max_chars." THEN |
242 |
CONCAT('<span title=\"', |
CONCAT('<span class=\"nature_travaux_cursor\" title=\"', |
243 |
nature_des_travaux, |
description_projet, |
244 |
|
'\">', |
245 |
|
replace(description_projet, '\n', '<br/>'), |
246 |
|
'</span>') |
247 |
|
WHEN nature_travaux.libelle IS NULL AND char_length(description_projet) > ".$max_chars." THEN |
248 |
|
CONCAT('<span class=\"nature_travaux_cursor\" title=\"', |
249 |
|
description_projet, |
250 |
'\">', |
'\">', |
251 |
replace(nature_des_travaux, '\n', '<br/>'), |
replace(left(description_projet, ".$max_chars."), '\n', '<br/>') || '…', |
252 |
'</span>') |
'</span>') |
253 |
ELSE |
WHEN nature_travaux.libelle IS NOT NULL AND ARRAY_LENGTH(STRING_TO_ARRAY(nature_travaux.libelle, '\n'), 1) = 1 THEN |
254 |
CONCAT('<span title=\"', |
CONCAT('<span class=\"nature_travaux_cursor\" title=\"', |
255 |
nature_des_travaux, |
nature_travaux.libelle, |
256 |
|
'\n', |
257 |
|
description_projet, |
258 |
'\">', |
'\">', |
259 |
replace(left(nature_des_travaux, ".$max_chars."), '\n', '<br/>') || '…', |
replace(nature_travaux.libelle, '\n', '<br/>'), |
260 |
|
'</span>') |
261 |
|
WHEN nature_travaux.libelle IS NOT NULL AND ARRAY_LENGTH(STRING_TO_ARRAY(nature_travaux.libelle, '\n'), 1) > 1 THEN |
262 |
|
CONCAT('<span class=\"nature_travaux_cursor\" title=\"', |
263 |
|
nature_travaux.libelle, |
264 |
|
'\n', |
265 |
|
description_projet, |
266 |
|
'\">', |
267 |
|
split_part(nature_travaux.libelle, '\n', 1), '<br/>', '[...]', |
268 |
'</span>') |
'</span>') |
269 |
END as \""._("nature des travaux").'"'; |
END as \""._("nature des travaux").'"'; |
270 |
// description/nature des travaux. En cas de modif, bloc de code aussi présent dans |
// description/nature des travaux. En cas de modif, bloc de code aussi présent dans |
271 |
// dossier.form.inc.php (le formulaire du DI)', 'om_requete' et 'stats à la demande' |
// dossier.form.inc.php (le formulaire du DI)', 'om_requete' et 'stats à la demande' |
272 |
$nature_des_travaux_from = " |
$description_projet_from = " |
273 |
INNER JOIN ( |
INNER JOIN ( |
274 |
SELECT |
SELECT |
275 |
CONCAT_WS( |
CONCAT_WS( |
305 |
CASE WHEN donnees_techniques.erp_trvx_am IS TRUE |
CASE WHEN donnees_techniques.erp_trvx_am IS TRUE |
306 |
THEN '".str_replace("'", "''", _('erp_trvx_am'))."' END, |
THEN '".str_replace("'", "''", _('erp_trvx_am'))."' END, |
307 |
CASE WHEN donnees_techniques.erp_vol_nouv_exist IS TRUE |
CASE WHEN donnees_techniques.erp_vol_nouv_exist IS TRUE |
308 |
THEN '".str_replace("'", "''", _('erp_vol_nouv_exist'))."' END |
THEN '".str_replace("'", "''", _('erp_vol_nouv_exist'))."' END, |
309 |
) as nature_des_travaux, |
CASE WHEN mh_design_appel_denom = '' THEN |
310 |
|
NULL |
311 |
|
ELSE |
312 |
|
TRIM(mh_design_appel_denom) |
313 |
|
END, |
314 |
|
CASE WHEN mh_loc_denom = '' THEN |
315 |
|
NULL |
316 |
|
ELSE |
317 |
|
TRIM(mh_loc_denom) |
318 |
|
END |
319 |
|
) as description_projet, |
320 |
dossier_instruction |
dossier_instruction |
321 |
FROM ".DB_PREFIXE."donnees_techniques |
FROM ".DB_PREFIXE."donnees_techniques |
322 |
) as nature_des_travaux |
) as description_projet |
323 |
ON nature_des_travaux.dossier_instruction = dossier.dossier |
ON description_projet.dossier_instruction = dossier.dossier |
324 |
"; |
"; |
325 |
// On ne veut cette colonne que dans les trois listings "Recherche", |
// On ne veut cette colonne que dans les trois listings "Recherche", |
326 |
// "Mes encours" et "Tous les encours" |
// "Mes encours" et "Tous les encours" |
335 |
// Modifie les colonnes à afficher en début du tableau |
// Modifie les colonnes à afficher en début du tableau |
336 |
$champAffiche_debut_commun = array( |
$champAffiche_debut_commun = array( |
337 |
'dossier.dossier as "'._("dossier").'"', |
'dossier.dossier as "'._("dossier").'"', |
338 |
'dossier.dossier_libelle as "'._("dossier").'"' |
'dossier.geom as "geom_picto"', |
339 |
|
'demande.source_depot as "demat_picto"', |
340 |
|
$select__dossier_libelle__column_as, |
341 |
); |
); |
342 |
if ($f->is_option_dossier_commune_enabled()) { |
if ($f->is_option_dossier_commune_enabled()) { |
343 |
$champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"'; |
$champAffiche_debut_commun[] = 'commune.libelle as "'.__("commune").'"'; |
345 |
array_push($champAffiche_debut_commun, |
array_push($champAffiche_debut_commun, |
346 |
$case_demandeur.' as "'._("petitionnaire").'"', |
$case_demandeur.' as "'._("petitionnaire").'"', |
347 |
$trim_concat_terrain, |
$trim_concat_terrain, |
348 |
'dossier_autorisation_type_detaille.libelle as "'._("nature_dossier").'"', |
'dossier_autorisation_type_detaille.libelle as "'._("type").'"', |
349 |
$nature_des_travaux_select, |
$description_projet_select, |
350 |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'.__("dépôt").'"', |
351 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'._("date_complet").'"', |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("complétude").'"', |
352 |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
353 |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
354 |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
355 |
END as "'._("date_limite").'"' |
END as "'.__("limite").'"' |
356 |
); |
); |
357 |
if ($f->is_option_date_depot_mairie_enabled() === true) { |
if ($f->is_option_date_depot_mairie_enabled() === true) { |
358 |
$champAffiche_debut_commun[] = $champ_date_depot_mairie; |
$champAffiche_debut_commun[] = $champ_date_depot_mairie; |
359 |
} |
} |
360 |
// Modifie également le from |
// Modifie également le from |
361 |
$table .= $nature_des_travaux_from; |
$table .= $description_projet_from.' '.$nature_travaux_from; |
362 |
} |
} |
363 |
|
|
364 |
/*Champs de la fin de la requête*/ |
/*Champs de la fin de la requête*/ |
380 |
array_push($champAffiche_fin_commun, "om_collectivite.libelle as \""._("collectivite")."\""); |
array_push($champAffiche_fin_commun, "om_collectivite.libelle as \""._("collectivite")."\""); |
381 |
} |
} |
382 |
|
|
383 |
$selection .= "AND groupe.code != 'CTX'"; |
// Identifie s'il y a déjà un WHERE dans la requête |
384 |
|
if (stripos($selection, "WHERE") === false) { |
385 |
|
$selection .= " WHERE "; |
386 |
|
} else { |
387 |
|
$selection .= " AND "; |
388 |
|
} |
389 |
|
// Les dossiers des contentieux sont gérés dans un autre listing, il ne doivent |
390 |
|
// pas apparaître dans la liste des dossiers d'instruction de l'onglet instruction -> recherche |
391 |
|
// /!\ l'opérateur != exclus les valeurs null. Il faut donc préciser que les groupe ayant un |
392 |
|
// code NULL doivent bien être récupérés. |
393 |
|
$selection .= " (groupe.code IS NULL OR groupe.code != 'CTX')"; |
394 |
|
|
395 |
|
$instructeur_nom = 'CASE WHEN instructeur.nom IS NOT NULL AND division.code IS NOT NULL THEN |
396 |
|
CONCAT(\'<span title="Instructeur: \', instructeur.nom, '."'\n'".', \'Division: \', division.code, \'"\', \'>\', instructeur.nom, \' (\', division.code, \')\', \'</span>\') |
397 |
|
WHEN instructeur.nom IS NOT NULL AND division.code IS NULL THEN |
398 |
|
instructeur.nom |
399 |
|
ELSE |
400 |
|
instructeur.nom |
401 |
|
END as "'.__("instructeur").'"'; |
402 |
|
|
403 |
|
|
404 |
/*Liste des champs affichés dans le tableau de résultat*/ |
/*Liste des champs affichés dans le tableau de résultat*/ |
405 |
$champAffiche = array_merge( |
$champAffiche = array_merge( |
406 |
$champAffiche_debut_commun, |
$champAffiche_debut_commun, |
407 |
array('instructeur.nom as "'._("instructeur").'"', |
array( |
408 |
'division.code as "'._("division").'"', |
$instructeur_nom, |
409 |
), |
), |
410 |
$champAffiche_fin_commun |
$champAffiche_fin_commun |
411 |
); |
); |
426 |
// Liste des autres dossiers d'instructions |
// Liste des autres dossiers d'instructions |
427 |
if ($retourformulaire== 'dossier_instruction'){ |
if ($retourformulaire== 'dossier_instruction'){ |
428 |
$champAffiche = array( |
$champAffiche = array( |
429 |
'b.dossier as "'._("dossier_instruction").'"', |
'dossier.dossier as "'._("dossier_instruction").'"', |
430 |
'b.dossier_libelle as "'._("dossier").'"' |
'dossier.geom as "geom_picto"', |
431 |
|
'demande.source_depot as "demat_picto"', |
432 |
|
$select__dossier_libelle__column_as, |
433 |
); |
); |
434 |
if ($f->is_option_dossier_commune_enabled()) { |
if ($f->is_option_dossier_commune_enabled()) { |
435 |
$champAffiche[] = 'c.libelle as "'._("commune").'"'; |
$champAffiche[] = 'c.libelle as "'._("commune").'"'; |
436 |
} |
} |
437 |
array_push($champAffiche, |
array_push($champAffiche, |
438 |
'dossier_instruction_type.libelle as "'._("demande_type").'"', |
'dossier_instruction_type.libelle as "'._("demande_type").'"', |
439 |
'to_char(b.date_depot ,\'DD/MM/YYYY\') as "'._("date_depot").'"', |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'._("dépôt").'"', |
440 |
'b.etat as "'._("etat").'"' |
'dossier.etat as "'._("etat").'"' |
441 |
); |
); |
442 |
|
|
443 |
$table =DB_PREFIXE.'dossier as a |
$table =DB_PREFIXE.'dossier as a |
444 |
JOIN '.DB_PREFIXE.'dossier_autorisation |
JOIN '.DB_PREFIXE.'dossier_autorisation |
445 |
ON a.dossier_autorisation=dossier_autorisation.dossier_autorisation |
ON a.dossier_autorisation=dossier_autorisation.dossier_autorisation |
446 |
JOIN '.DB_PREFIXE.'dossier as b |
JOIN '.DB_PREFIXE.'dossier as dossier |
447 |
ON b.dossier_autorisation=dossier_autorisation.dossier_autorisation |
ON dossier.dossier_autorisation=dossier_autorisation.dossier_autorisation |
448 |
JOIN '.DB_PREFIXE.'dossier_instruction_type |
JOIN '.DB_PREFIXE.'dossier_instruction_type |
449 |
ON dossier_instruction_type.dossier_instruction_type = b.dossier_instruction_type'; |
ON dossier_instruction_type.dossier_instruction_type = dossier.dossier_instruction_type'; |
450 |
if ($f->is_option_dossier_commune_enabled()) { |
if ($f->is_option_dossier_commune_enabled()) { |
451 |
$table .= ' |
$table .= ' |
452 |
JOIN '.DB_PREFIXE.'commune as c |
JOIN '.DB_PREFIXE.'commune as c |
453 |
ON c.commune = dossier.commune'; |
ON c.commune = dossier.commune'; |
454 |
} |
} |
455 |
$selection = 'WHERE a.dossier=\''.$f->db->escapeSimple($idxformulaire).'\''; |
$selection = 'WHERE a.dossier=\''.$f->db->escapeSimple($idxformulaire).'\''; |
456 |
$tri= "order by b.date_depot ASC"; |
$tri= "order by dossier.date_depot ASC"; |
457 |
|
|
458 |
// |
// |
459 |
$tab_actions['left']["consulter"] = |
$tab_actions['left']["consulter"] = |
470 |
"display"=>false, |
"display"=>false, |
471 |
); |
); |
472 |
} |
} |
473 |
|
|
474 |
|
|
475 |
if ( $retourformulaire == "dossier_autorisation") { |
if ( $retourformulaire == "dossier_autorisation") { |
476 |
|
|
477 |
// |
// |
501 |
} |
} |
502 |
|
|
503 |
// Si filtre DI auxquels on peut proposer une autre décision |
// Si filtre DI auxquels on peut proposer une autre décision |
504 |
|
// /!\ Requête lié à celles permettant de savoir si l'instructeur peut changer la |
505 |
|
// décision et à l'affichage du widgets des dossiers éligibles au changement : |
506 |
|
// * instruction.class.php : isInstrCanChangeDecision() |
507 |
|
// * dossier_instruction.class.php : view_widget_dossiers_evenement_retour_finalise() |
508 |
|
// TODO ; faire évoluer cette affichage pour reprendre celui des DI (avec la recherche avancée) |
509 |
if (isset($extra_parameters["filtre_decision"]) |
if (isset($extra_parameters["filtre_decision"]) |
510 |
&& $extra_parameters["filtre_decision"] == true) { |
&& $extra_parameters["filtre_decision"] == true) { |
511 |
|
|
522 |
'type' => 'pagination_select', |
'type' => 'pagination_select', |
523 |
'display' => false); |
'display' => false); |
524 |
// Ajout jointure |
// Ajout jointure |
525 |
$table .= "JOIN ".DB_PREFIXE."instruction ON instruction.instruction = ( |
$table = sprintf( |
526 |
SELECT instruction |
'%1$sdossier |
527 |
FROM ".DB_PREFIXE."instruction |
JOIN %1$setat |
528 |
JOIN ".DB_PREFIXE."evenement on instruction.evenement=evenement.evenement |
ON dossier.etat = etat.etat AND etat.statut = \'encours\' |
529 |
WHERE instruction.dossier = dossier.dossier |
JOIN %1$slien_dossier_demandeur |
530 |
AND evenement.retour IS FALSE |
ON dossier.dossier = lien_dossier_demandeur.dossier AND lien_dossier_demandeur.petitionnaire_principal IS TRUE |
531 |
ORDER BY date_evenement DESC, instruction DESC |
JOIN %1$sdossier_instruction_type |
532 |
LIMIT 1 |
ON dossier.dossier_instruction_type=dossier_instruction_type.dossier_instruction_type |
533 |
) |
JOIN %1$sdossier_autorisation_type_detaille |
534 |
JOIN ".DB_PREFIXE."evenement ON instruction.evenement=evenement.evenement |
ON dossier_instruction_type.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille |
535 |
JOIN ".DB_PREFIXE."dossier_instruction_type ON dossier.dossier_instruction_type=dossier_instruction_type.dossier_instruction_type AND dossier_instruction_type.code IN ('P', 'T', 'M')"; |
-- Récupère la demande qui a créé le type dossier du dossier |
536 |
|
LEFT JOIN (%1$sdemande |
537 |
|
JOIN %1$sdemande_type |
538 |
|
ON demande.demande_type = demande_type.demande_type |
539 |
|
) |
540 |
|
ON demande.dossier_instruction = dossier.dossier |
541 |
|
AND demande_type.dossier_instruction_type = dossier.dossier_instruction_type |
542 |
|
JOIN %1$sinstruction |
543 |
|
-- Recherche de la dernière instruction qui ne soit pas liée à un événement retour |
544 |
|
ON instruction.instruction = ( |
545 |
|
SELECT instruction |
546 |
|
FROM %1$sinstruction |
547 |
|
JOIN %1$sevenement ON instruction.evenement=evenement.evenement |
548 |
|
AND evenement.retour IS FALSE |
549 |
|
WHERE instruction.dossier = dossier.dossier |
550 |
|
ORDER BY date_evenement DESC, instruction DESC |
551 |
|
LIMIT 1 |
552 |
|
) |
553 |
|
-- On ne garde que les dossiers pour lesquels la dernière instruction est finalisée |
554 |
|
-- ou alors pour laquelle l instruction a été ajouté par la commune et est |
555 |
|
-- non signée, non notifié, etc. |
556 |
|
AND (instruction.om_final_instruction IS TRUE |
557 |
|
OR instruction.created_by_commune IS TRUE) |
558 |
|
AND instruction.date_retour_signature IS NULL |
559 |
|
AND instruction.date_envoi_rar IS NULL |
560 |
|
AND instruction.date_retour_rar IS NULL |
561 |
|
AND instruction.date_envoi_controle_legalite IS NULL |
562 |
|
AND instruction.date_retour_controle_legalite IS NULL |
563 |
|
-- On vérifie que l instruction soit un arrêté ou un changement de décision |
564 |
|
JOIN %1$sevenement |
565 |
|
ON instruction.evenement=evenement.evenement |
566 |
|
AND (evenement.type = \'arrete\' |
567 |
|
OR evenement.type = \'changement_decision\') |
568 |
|
-- Recherche les informations du pétitionnaire principal pour l affichage |
569 |
|
JOIN %1$sdemandeur |
570 |
|
ON lien_dossier_demandeur.demandeur = demandeur.demandeur |
571 |
|
-- Recherche la collectivité rattachée à l instructeur |
572 |
|
JOIN %1$sinstructeur |
573 |
|
ON dossier.instructeur=instructeur.instructeur |
574 |
|
JOIN %1$sdivision |
575 |
|
ON instructeur.division=division.division |
576 |
|
JOIN %1$sdirection |
577 |
|
ON division.direction=direction.direction |
578 |
|
JOIN %1$som_collectivite |
579 |
|
ON direction.om_collectivite=om_collectivite.om_collectivite |
580 |
|
%2$s |
581 |
|
', |
582 |
|
DB_PREFIXE, |
583 |
|
$description_projet_from.' '.$nature_travaux_from |
584 |
|
); |
585 |
// Modification sélection |
// Modification sélection |
586 |
$selection = "WHERE |
$selection = "WHERE dossier_instruction_type.sous_dossier IS NOT TRUE AND |
587 |
groupe.code != 'CTX' |
om_collectivite.niveau = '2'"; |
|
AND ((evenement.type = 'arrete' AND instruction.om_final_instruction IS TRUE) OR evenement.type = 'changement_decision') |
|
|
AND evenement.retour IS FALSE |
|
|
AND instruction.date_retour_signature IS NULL |
|
|
AND instruction.date_envoi_rar IS NULL |
|
|
AND instruction.date_retour_rar IS NULL |
|
|
AND instruction.date_envoi_controle_legalite IS NULL |
|
|
AND instruction.date_retour_controle_legalite IS NULL |
|
|
AND etat.statut = 'encours' |
|
|
AND om_utilisateur.login != '".$_SESSION['login']."'"; |
|
588 |
// Si collectivité de l'utilisateur niveau mono alors filtre sur celle-ci |
// Si collectivité de l'utilisateur niveau mono alors filtre sur celle-ci |
589 |
if ($f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
if ($f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
590 |
$selection .= " AND dossier.om_collectivite=".$_SESSION['collectivite']; |
$selection .= " AND dossier.om_collectivite=".$_SESSION['collectivite']; |
593 |
$tri = " ORDER BY dossier.dossier "; |
$tri = " ORDER BY dossier.dossier "; |
594 |
} |
} |
595 |
|
|
596 |
// Gestion des groupes et confidentialité |
|
597 |
include ('../sql/pgsql/filter_group.inc.php'); |
// Ajout de la gestion des groupes et confidentialité à la requête du listing |
598 |
|
$sqlFiltreGroup = $this->get_sql_filtre_groupe($table.$selection); |
599 |
|
$selection .= $sqlFiltreGroup['WHERE']; |
600 |
|
$table .= $sqlFiltreGroup['FROM']; |
601 |
|
// Ajout du filtrage des sous dossier à la requête d'affichage du listing |
602 |
|
$sqlFiltreSD = $this->get_sql_filtre_sous_dossier($table.$selection); |
603 |
|
$selection .= $sqlFiltreSD['WHERE']; |
604 |
|
$table .= $sqlFiltreSD['FROM']; |
605 |
|
|
606 |
|
// Si l'option qui permet de masquer les colonnes comporte la localisation |
607 |
|
// ou le champ date_complet alors on masque la colonne |
608 |
|
$param_affichage_col = $f->get_affichage_di_listing_colonnes_masquees(); |
609 |
|
if (! empty($param_affichage_col)) { |
610 |
|
if (array_search('localisation', $param_affichage_col) !== false) { |
611 |
|
$key_champaff = array_search($trim_concat_terrain, $champAffiche); |
612 |
|
unset($champAffiche[$key_champaff]); |
613 |
|
$champAffiche = array_values($champAffiche); |
614 |
|
// Gestion pour les listings tous_encours et tous_cloture |
615 |
|
$key_champaff_commun = array_search($trim_concat_terrain, $champAffiche_debut_commun); |
616 |
|
unset($champAffiche_debut_commun[$key_champaff_commun]); |
617 |
|
$champAffiche_debut_commun = array_values($champAffiche_debut_commun); |
618 |
|
} |
619 |
|
if (array_search('date_complet', $param_affichage_col) !== false) { |
620 |
|
$key_champaff = array_search('to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("complétude").'"', $champAffiche); |
621 |
|
unset($champAffiche[$key_champaff]); |
622 |
|
$champAffiche = array_values($champAffiche); |
623 |
|
// Gestion pour les listings tous_encours et tous_cloture |
624 |
|
$key_champaff_commun = array_search('to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("complétude").'"', $champAffiche_debut_commun); |
625 |
|
unset($champAffiche_debut_commun[$key_champaff_commun]); |
626 |
|
$champAffiche_debut_commun = array_values($champAffiche_debut_commun); |
627 |
|
} |
628 |
|
} |
629 |
|
|
630 |
?> |
?> |