1 |
<?php |
2 |
|
3 |
/** |
4 |
* Afin de ne pas afficher le code HTML utilisé pour le champ "nature des |
5 |
* travaux", il est nécessaire de redéclarer pour l'export csv, les champs à |
6 |
* afficher. |
7 |
*/ |
8 |
|
9 |
// Récupère toutes les variables du script *.inc |
10 |
include('../sql/pgsql/dossier_instruction.inc.php'); |
11 |
|
12 |
|
13 |
|
14 |
// Récupération du bon champs selon la qualité du demandeur |
15 |
// On récupère le délégataire s'il est renseigné, sinon le pétitionnaire principal |
16 |
$case_correspondant = " |
17 |
CASE WHEN demandeur_delegataire.qualite IS NULL |
18 |
THEN CASE WHEN demandeur.qualite='particulier' |
19 |
THEN TRIM(CONCAT(demandeur.particulier_nom, ' ', demandeur.particulier_prenom)) |
20 |
ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, ' ', demandeur.personne_morale_denomination)) |
21 |
END |
22 |
ELSE CASE WHEN demandeur_delegataire.qualite='particulier' |
23 |
THEN TRIM(CONCAT(demandeur_delegataire.particulier_nom, ' ', demandeur_delegataire.particulier_prenom)) |
24 |
ELSE TRIM(CONCAT(demandeur_delegataire.personne_morale_raison_sociale, ' ', demandeur_delegataire.personne_morale_denomination)) |
25 |
END |
26 |
END |
27 |
"; |
28 |
|
29 |
$common_surface = " |
30 |
CASE |
31 |
WHEN donnees_techniques.su2_avt_shon1 IS NOT NULL |
32 |
OR donnees_techniques.su2_avt_shon2 IS NOT NULL |
33 |
OR donnees_techniques.su2_avt_shon3 IS NOT NULL |
34 |
OR donnees_techniques.su2_avt_shon4 IS NOT NULL |
35 |
OR donnees_techniques.su2_avt_shon5 IS NOT NULL |
36 |
OR donnees_techniques.su2_avt_shon6 IS NOT NULL |
37 |
OR donnees_techniques.su2_avt_shon7 IS NOT NULL |
38 |
OR donnees_techniques.su2_avt_shon8 IS NOT NULL |
39 |
OR donnees_techniques.su2_avt_shon9 IS NOT NULL |
40 |
OR donnees_techniques.su2_avt_shon10 IS NOT NULL |
41 |
OR donnees_techniques.su2_avt_shon11 IS NOT NULL |
42 |
OR donnees_techniques.su2_avt_shon12 IS NOT NULL |
43 |
OR donnees_techniques.su2_avt_shon13 IS NOT NULL |
44 |
OR donnees_techniques.su2_avt_shon14 IS NOT NULL |
45 |
OR donnees_techniques.su2_avt_shon15 IS NOT NULL |
46 |
OR donnees_techniques.su2_avt_shon16 IS NOT NULL |
47 |
OR donnees_techniques.su2_avt_shon17 IS NOT NULL |
48 |
OR donnees_techniques.su2_avt_shon18 IS NOT NULL |
49 |
OR donnees_techniques.su2_avt_shon19 IS NOT NULL |
50 |
OR donnees_techniques.su2_avt_shon20 IS NOT NULL |
51 |
OR donnees_techniques.su2_avt_shon21 IS NOT NULL |
52 |
OR donnees_techniques.su2_avt_shon22 IS NOT NULL |
53 |
OR donnees_techniques.su2_avt_shon23 IS NOT NULL |
54 |
OR donnees_techniques.su2_avt_shon24 IS NOT NULL |
55 |
OR donnees_techniques.su2_avt_shon_tot IS NOT NULL |
56 |
OR donnees_techniques.su2_cstr_shon1 IS NOT NULL |
57 |
OR donnees_techniques.su2_cstr_shon2 IS NOT NULL |
58 |
OR donnees_techniques.su2_cstr_shon3 IS NOT NULL |
59 |
OR donnees_techniques.su2_cstr_shon4 IS NOT NULL |
60 |
OR donnees_techniques.su2_cstr_shon5 IS NOT NULL |
61 |
OR donnees_techniques.su2_cstr_shon6 IS NOT NULL |
62 |
OR donnees_techniques.su2_cstr_shon7 IS NOT NULL |
63 |
OR donnees_techniques.su2_cstr_shon8 IS NOT NULL |
64 |
OR donnees_techniques.su2_cstr_shon9 IS NOT NULL |
65 |
OR donnees_techniques.su2_cstr_shon10 IS NOT NULL |
66 |
OR donnees_techniques.su2_cstr_shon11 IS NOT NULL |
67 |
OR donnees_techniques.su2_cstr_shon12 IS NOT NULL |
68 |
OR donnees_techniques.su2_cstr_shon13 IS NOT NULL |
69 |
OR donnees_techniques.su2_cstr_shon14 IS NOT NULL |
70 |
OR donnees_techniques.su2_cstr_shon15 IS NOT NULL |
71 |
OR donnees_techniques.su2_cstr_shon16 IS NOT NULL |
72 |
OR donnees_techniques.su2_cstr_shon17 IS NOT NULL |
73 |
OR donnees_techniques.su2_cstr_shon18 IS NOT NULL |
74 |
OR donnees_techniques.su2_cstr_shon19 IS NOT NULL |
75 |
OR donnees_techniques.su2_cstr_shon20 IS NOT NULL |
76 |
OR donnees_techniques.su2_cstr_shon21 IS NOT NULL |
77 |
OR donnees_techniques.su2_cstr_shon22 IS NOT NULL |
78 |
OR donnees_techniques.su2_cstr_shon23 IS NOT NULL |
79 |
OR donnees_techniques.su2_cstr_shon24 IS NOT NULL |
80 |
OR donnees_techniques.su2_cstr_shon_tot IS NOT NULL |
81 |
OR donnees_techniques.su2_chge_shon1 IS NOT NULL |
82 |
OR donnees_techniques.su2_chge_shon2 IS NOT NULL |
83 |
OR donnees_techniques.su2_chge_shon3 IS NOT NULL |
84 |
OR donnees_techniques.su2_chge_shon4 IS NOT NULL |
85 |
OR donnees_techniques.su2_chge_shon5 IS NOT NULL |
86 |
OR donnees_techniques.su2_chge_shon6 IS NOT NULL |
87 |
OR donnees_techniques.su2_chge_shon7 IS NOT NULL |
88 |
OR donnees_techniques.su2_chge_shon8 IS NOT NULL |
89 |
OR donnees_techniques.su2_chge_shon9 IS NOT NULL |
90 |
OR donnees_techniques.su2_chge_shon10 IS NOT NULL |
91 |
OR donnees_techniques.su2_chge_shon11 IS NOT NULL |
92 |
OR donnees_techniques.su2_chge_shon12 IS NOT NULL |
93 |
OR donnees_techniques.su2_chge_shon13 IS NOT NULL |
94 |
OR donnees_techniques.su2_chge_shon14 IS NOT NULL |
95 |
OR donnees_techniques.su2_chge_shon15 IS NOT NULL |
96 |
OR donnees_techniques.su2_chge_shon16 IS NOT NULL |
97 |
OR donnees_techniques.su2_chge_shon17 IS NOT NULL |
98 |
OR donnees_techniques.su2_chge_shon18 IS NOT NULL |
99 |
OR donnees_techniques.su2_chge_shon19 IS NOT NULL |
100 |
OR donnees_techniques.su2_chge_shon20 IS NOT NULL |
101 |
OR donnees_techniques.su2_chge_shon21 IS NOT NULL |
102 |
OR donnees_techniques.su2_chge_shon22 IS NOT NULL |
103 |
OR donnees_techniques.su2_chge_shon23 IS NOT NULL |
104 |
OR donnees_techniques.su2_chge_shon24 IS NOT NULL |
105 |
OR donnees_techniques.su2_chge_shon_tot IS NOT NULL |
106 |
OR donnees_techniques.su2_demo_shon1 IS NOT NULL |
107 |
OR donnees_techniques.su2_demo_shon2 IS NOT NULL |
108 |
OR donnees_techniques.su2_demo_shon3 IS NOT NULL |
109 |
OR donnees_techniques.su2_demo_shon4 IS NOT NULL |
110 |
OR donnees_techniques.su2_demo_shon5 IS NOT NULL |
111 |
OR donnees_techniques.su2_demo_shon6 IS NOT NULL |
112 |
OR donnees_techniques.su2_demo_shon7 IS NOT NULL |
113 |
OR donnees_techniques.su2_demo_shon8 IS NOT NULL |
114 |
OR donnees_techniques.su2_demo_shon9 IS NOT NULL |
115 |
OR donnees_techniques.su2_demo_shon10 IS NOT NULL |
116 |
OR donnees_techniques.su2_demo_shon11 IS NOT NULL |
117 |
OR donnees_techniques.su2_demo_shon12 IS NOT NULL |
118 |
OR donnees_techniques.su2_demo_shon13 IS NOT NULL |
119 |
OR donnees_techniques.su2_demo_shon14 IS NOT NULL |
120 |
OR donnees_techniques.su2_demo_shon15 IS NOT NULL |
121 |
OR donnees_techniques.su2_demo_shon16 IS NOT NULL |
122 |
OR donnees_techniques.su2_demo_shon17 IS NOT NULL |
123 |
OR donnees_techniques.su2_demo_shon18 IS NOT NULL |
124 |
OR donnees_techniques.su2_demo_shon19 IS NOT NULL |
125 |
OR donnees_techniques.su2_demo_shon20 IS NOT NULL |
126 |
OR donnees_techniques.su2_demo_shon21 IS NOT NULL |
127 |
OR donnees_techniques.su2_demo_shon22 IS NOT NULL |
128 |
OR donnees_techniques.su2_demo_shon23 IS NOT NULL |
129 |
OR donnees_techniques.su2_demo_shon24 IS NOT NULL |
130 |
OR donnees_techniques.su2_demo_shon_tot IS NOT NULL |
131 |
OR donnees_techniques.su2_sup_shon1 IS NOT NULL |
132 |
OR donnees_techniques.su2_sup_shon2 IS NOT NULL |
133 |
OR donnees_techniques.su2_sup_shon3 IS NOT NULL |
134 |
OR donnees_techniques.su2_sup_shon4 IS NOT NULL |
135 |
OR donnees_techniques.su2_sup_shon5 IS NOT NULL |
136 |
OR donnees_techniques.su2_sup_shon6 IS NOT NULL |
137 |
OR donnees_techniques.su2_sup_shon7 IS NOT NULL |
138 |
OR donnees_techniques.su2_sup_shon8 IS NOT NULL |
139 |
OR donnees_techniques.su2_sup_shon9 IS NOT NULL |
140 |
OR donnees_techniques.su2_sup_shon10 IS NOT NULL |
141 |
OR donnees_techniques.su2_sup_shon11 IS NOT NULL |
142 |
OR donnees_techniques.su2_sup_shon12 IS NOT NULL |
143 |
OR donnees_techniques.su2_sup_shon13 IS NOT NULL |
144 |
OR donnees_techniques.su2_sup_shon14 IS NOT NULL |
145 |
OR donnees_techniques.su2_sup_shon15 IS NOT NULL |
146 |
OR donnees_techniques.su2_sup_shon16 IS NOT NULL |
147 |
OR donnees_techniques.su2_sup_shon17 IS NOT NULL |
148 |
OR donnees_techniques.su2_sup_shon18 IS NOT NULL |
149 |
OR donnees_techniques.su2_sup_shon19 IS NOT NULL |
150 |
OR donnees_techniques.su2_sup_shon20 IS NOT NULL |
151 |
OR donnees_techniques.su2_sup_shon21 IS NOT NULL |
152 |
OR donnees_techniques.su2_sup_shon22 IS NOT NULL |
153 |
OR donnees_techniques.su2_sup_shon23 IS NOT NULL |
154 |
OR donnees_techniques.su2_sup_shon24 IS NOT NULL |
155 |
OR donnees_techniques.su2_sup_shon_tot IS NOT NULL |
156 |
OR donnees_techniques.su2_tot_shon_tot IS NOT NULL |
157 |
"; |
158 |
|
159 |
$surface_creee = $common_surface . " |
160 |
THEN donnees_techniques.su2_cstr_shon_tot |
161 |
ELSE donnees_techniques.su_cstr_shon_tot |
162 |
END"; |
163 |
|
164 |
$surface_totale = $common_surface . " |
165 |
THEN donnees_techniques.su2_tot_shon_tot |
166 |
ELSE donnees_techniques.su_tot_shon_tot |
167 |
END"; |
168 |
|
169 |
// Ajout des colonnes concernant la demat |
170 |
|
171 |
// Jointure permettant d'afficher l'id platau du service consultant et le |
172 |
// libellé du service consultant dans les exports si le mode service consulté est |
173 |
// actif |
174 |
$table .= $f->is_option_mode_service_consulte_enabled() === true ? ' |
175 |
LEFT JOIN '.DB_PREFIXE.'consultation_entrante |
176 |
ON dossier.dossier = consultation_entrante.dossier |
177 |
' : |
178 |
''; |
179 |
$table .= " |
180 |
LEFT JOIN |
181 |
(SELECT |
182 |
dossier, |
183 |
external_uid |
184 |
FROM |
185 |
".DB_PREFIXE."lien_id_interne_uid_externe |
186 |
WHERE object = 'dossier' |
187 |
AND category = 'platau' |
188 |
) AS dossier_platau |
189 |
ON |
190 |
dossier_platau.dossier = dossier.dossier |
191 |
LEFT JOIN |
192 |
(SELECT |
193 |
dossier, |
194 |
external_uid |
195 |
FROM |
196 |
".DB_PREFIXE."lien_id_interne_uid_externe |
197 |
WHERE object = 'dossier_consultation' |
198 |
AND category = 'platau' |
199 |
) AS consultation_platau |
200 |
ON |
201 |
consultation_platau.dossier = dossier.dossier |
202 |
LEFT JOIN |
203 |
(SELECT |
204 |
dossier, |
205 |
ARRAY_TO_STRING(ARRAY_AGG(external_uid ORDER BY external_uid ASC), ', ') AS external_uid |
206 |
FROM |
207 |
".DB_PREFIXE."lien_id_interne_uid_externe |
208 |
WHERE |
209 |
object = 'piece' |
210 |
AND category = 'platau' |
211 |
GROUP BY |
212 |
dossier) AS pieces_platau |
213 |
ON |
214 |
pieces_platau.dossier = dossier.dossier |
215 |
LEFT JOIN |
216 |
(SELECT |
217 |
dossier, |
218 |
ARRAY_TO_STRING(ARRAY_AGG(object || ' : ' || external_uid), ', ') AS external_uid |
219 |
FROM |
220 |
".DB_PREFIXE."lien_id_interne_uid_externe |
221 |
WHERE |
222 |
object != 'piece' |
223 |
AND object != 'dossier' |
224 |
AND object != 'dossier_consultation' |
225 |
AND category = 'platau' |
226 |
GROUP BY |
227 |
dossier) AS autres_platau |
228 |
ON |
229 |
autres_platau.dossier = dossier.dossier |
230 |
"; |
231 |
|
232 |
$table .= sprintf(' |
233 |
LEFT JOIN ( |
234 |
%1$slien_dossier_demandeur AS lien_dossier_demandeur_delegataire |
235 |
JOIN %1$sdemandeur as demandeur_delegataire |
236 |
ON lien_dossier_demandeur_delegataire.demandeur = demandeur_delegataire.demandeur AND demandeur_delegataire.type_demandeur = \'delegataire\' |
237 |
) |
238 |
ON dossier.dossier = lien_dossier_demandeur_delegataire.dossier AND lien_dossier_demandeur_delegataire.petitionnaire_principal IS FALSE |
239 |
LEFT JOIN %1$sdonnees_techniques |
240 |
ON donnees_techniques.dossier_instruction = dossier.dossier |
241 |
LEFT JOIN %1$sarchitecte |
242 |
ON architecte.architecte = donnees_techniques.architecte', |
243 |
DB_PREFIXE) ; |
244 |
|
245 |
// Permet l'ajout de la commune si l'option est activé |
246 |
$champAffiche_debut_num_dossier = array( |
247 |
'dossier.dossier as "'.__("dossier").'"', |
248 |
'dossier.dossier_libelle as "'.__("dossier").'"', |
249 |
); |
250 |
|
251 |
if ($f->is_option_dossier_commune_enabled() === true) { |
252 |
$champAffiche_debut_num_dossier[] = "commune.libelle as \"".__("commune")."\""; |
253 |
} |
254 |
|
255 |
|
256 |
$famille_travaux_select = sprintf( |
257 |
'-- use_column_name_to_sort |
258 |
(SELECT |
259 |
string_agg(ftc.libelle::text, \', \') as famille_travaux_libelle |
260 |
FROM ( |
261 |
SELECT DISTINCT |
262 |
dossier, |
263 |
famille_travaux.libelle |
264 |
FROM |
265 |
%1$slien_dossier_nature_travaux |
266 |
INNER JOIN %1$snature_travaux |
267 |
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux |
268 |
INNER JOIN %1$sfamille_travaux |
269 |
ON nature_travaux.famille_travaux = famille_travaux.famille_travaux |
270 |
ORDER BY famille_travaux.libelle |
271 |
) as ftc |
272 |
WHERE ftc.dossier = dossier.dossier |
273 |
GROUP BY dossier) AS "%2$s"', |
274 |
DB_PREFIXE, |
275 |
__("Famille de travaux") |
276 |
); |
277 |
|
278 |
$nature_travaux_select = sprintf( |
279 |
'-- use_column_name_to_sort |
280 |
(SELECT |
281 |
string_agg(ntc.libelle::text, \', \' order by ntc.libelle) as nature_travaux_libelle |
282 |
FROM ( |
283 |
SELECT DISTINCT |
284 |
dossier, |
285 |
nature_travaux.libelle |
286 |
FROM |
287 |
%1$slien_dossier_nature_travaux |
288 |
INNER JOIN %1$snature_travaux |
289 |
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux |
290 |
) as ntc |
291 |
WHERE ntc.dossier = dossier.dossier |
292 |
GROUP BY dossier) AS "%2$s"', |
293 |
DB_PREFIXE, |
294 |
__("Nature de travaux") |
295 |
); |
296 |
|
297 |
// description/nature des travaux. En cas de modif, bloc de code aussi présent dans |
298 |
// dossier.form.inc.php (le formulaire du DI)', 'om_requete' et 'stats à la demande' |
299 |
$description_projet_select = sprintf( |
300 |
"-- use_column_name_to_sort |
301 |
(SELECT |
302 |
CONCAT_WS( |
303 |
'\n', |
304 |
CASE WHEN co_projet_desc = '' |
305 |
THEN NULL |
306 |
ELSE TRIM(co_projet_desc) |
307 |
END, |
308 |
CASE WHEN ope_proj_desc = '' |
309 |
THEN NULL |
310 |
ELSE TRIM(ope_proj_desc) |
311 |
END, |
312 |
CASE WHEN am_projet_desc = '' |
313 |
THEN NULL |
314 |
ELSE TRIM(am_projet_desc) |
315 |
END, |
316 |
CASE WHEN dm_projet_desc = '' |
317 |
THEN NULL |
318 |
ELSE TRIM(dm_projet_desc) |
319 |
END, |
320 |
CASE WHEN donnees_techniques.erp_cstr_neuve IS TRUE |
321 |
THEN '".str_replace("'", "''", __('erp_cstr_neuve'))."' END, |
322 |
CASE WHEN donnees_techniques.erp_trvx_acc IS TRUE |
323 |
THEN '".str_replace("'", "''", __('erp_trvx_acc'))."' END, |
324 |
CASE WHEN donnees_techniques.erp_extension IS TRUE |
325 |
THEN '".str_replace("'", "''", __('erp_extension'))."' END, |
326 |
CASE WHEN donnees_techniques.erp_rehab IS TRUE |
327 |
THEN '".str_replace("'", "''", __('erp_rehab'))."' END, |
328 |
CASE WHEN donnees_techniques.erp_trvx_am IS TRUE |
329 |
THEN '".str_replace("'", "''", __('erp_trvx_am'))."' END, |
330 |
CASE WHEN donnees_techniques.erp_vol_nouv_exist IS TRUE |
331 |
THEN '".str_replace("'", "''", __('erp_vol_nouv_exist'))."' END, |
332 |
CASE WHEN mh_design_appel_denom = '' |
333 |
THEN NULL |
334 |
ELSE TRIM(mh_design_appel_denom) |
335 |
END, |
336 |
CASE WHEN mh_loc_denom = '' |
337 |
THEN NULL |
338 |
ELSE TRIM(mh_loc_denom) |
339 |
END |
340 |
) AS description_projet |
341 |
FROM %1\$sdonnees_techniques |
342 |
WHERE donnees_techniques.dossier_instruction = dossier.dossier |
343 |
) AS \"%2\$s\"", |
344 |
DB_PREFIXE, |
345 |
__("Description du projet") |
346 |
); |
347 |
|
348 |
// Modifie la méthode de récupération de la nature des travaux |
349 |
$champAffiche_debut_commun = array( |
350 |
$case_demandeur.' as "'.__("petitionnaire").'"', |
351 |
$case_correspondant.' as "'.__("correspondant").'"', |
352 |
'TRIM(CONCAT(architecte.nom, \' \', architecte.prenom)) as "'.__("architecte (nom)").'"', |
353 |
'architecte.nom_cabinet as "'.__("architecte (cabinet)").'"', |
354 |
$trim_concat_terrain.'as "'.__("localisation").'"', |
355 |
'dossier_autorisation_type_detaille.libelle as "'.__("nature_dossier").'"', |
356 |
'donnees_techniques.co_tot_log_nb as "'.__("nombre de logements créés").'"', |
357 |
$surface_creee.' as "'.__("surface créée").'"', |
358 |
$surface_totale.' as "'.__("surface totale").'"', |
359 |
$famille_travaux_select, |
360 |
$nature_travaux_select, |
361 |
$description_projet_select, |
362 |
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'.__("date_depot").'"', |
363 |
'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("date_complet").'"', |
364 |
'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE |
365 |
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\') |
366 |
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\') |
367 |
END as "'.__("date_limite").'"', |
368 |
); |
369 |
|
370 |
$champAffiche_demat = array( |
371 |
'dossier_platau.external_uid as "dossier Plat\'AU"', |
372 |
'consultation_platau.external_uid as "consultation Plat\'AU"', |
373 |
'pieces_platau.external_uid as "pièce(s) Plat\'AU"', |
374 |
'autres_platau.external_uid as "autres objets Plat\'AU"', |
375 |
); |
376 |
$champAffiche_demat_sc = array(); |
377 |
if ($f->is_option_mode_service_consulte_enabled() === true) { |
378 |
$champAffiche_demat_sc = array( |
379 |
'consultation_entrante.service_consultant_id as "'.__('Service consultant : identifiant').'"', |
380 |
'consultation_entrante.service_consultant_libelle as "'.__('Service consultant : libellé').'"', |
381 |
); |
382 |
} |
383 |
|
384 |
// Redéfinit la liste des champs à afficher |
385 |
$champAffiche = array_merge( |
386 |
$champAffiche_debut_num_dossier, |
387 |
$champAffiche_debut_commun, |
388 |
array('instructeur.nom as "'.__("instructeur").'"', |
389 |
'division.code as "'.__("division").'"', |
390 |
), |
391 |
$champAffiche_fin_commun, |
392 |
$champAffiche_demat, |
393 |
$champAffiche_demat_sc |
394 |
); |
395 |
|
396 |
?> |