workaround_importer_une_seule_variable_depuis(__DIR__.'/demandeur.inc.php', 'case_demandeur')),
$case_demandeur_dossier,
);
// Permet l'ajout d'une colonne listant les références cadastrales du dossier
$table .= "
LEFT JOIN
(SELECT
dossier,
ARRAY_TO_STRING(ARRAY_AGG(libelle ORDER BY libelle ASC), ', ') AS libelle
FROM
".DB_PREFIXE."dossier_parcelle
GROUP BY
dossier) AS references_cadastrales
ON
references_cadastrales.dossier = dossier.dossier
";
$common_surface = "
CASE
WHEN donnees_techniques.su2_avt_shon1 IS NOT NULL
OR donnees_techniques.su2_avt_shon2 IS NOT NULL
OR donnees_techniques.su2_avt_shon3 IS NOT NULL
OR donnees_techniques.su2_avt_shon4 IS NOT NULL
OR donnees_techniques.su2_avt_shon5 IS NOT NULL
OR donnees_techniques.su2_avt_shon6 IS NOT NULL
OR donnees_techniques.su2_avt_shon7 IS NOT NULL
OR donnees_techniques.su2_avt_shon8 IS NOT NULL
OR donnees_techniques.su2_avt_shon9 IS NOT NULL
OR donnees_techniques.su2_avt_shon10 IS NOT NULL
OR donnees_techniques.su2_avt_shon11 IS NOT NULL
OR donnees_techniques.su2_avt_shon12 IS NOT NULL
OR donnees_techniques.su2_avt_shon13 IS NOT NULL
OR donnees_techniques.su2_avt_shon14 IS NOT NULL
OR donnees_techniques.su2_avt_shon15 IS NOT NULL
OR donnees_techniques.su2_avt_shon16 IS NOT NULL
OR donnees_techniques.su2_avt_shon17 IS NOT NULL
OR donnees_techniques.su2_avt_shon18 IS NOT NULL
OR donnees_techniques.su2_avt_shon19 IS NOT NULL
OR donnees_techniques.su2_avt_shon20 IS NOT NULL
OR donnees_techniques.su2_avt_shon21 IS NOT NULL
OR donnees_techniques.su2_avt_shon22 IS NOT NULL
OR donnees_techniques.su2_avt_shon23 IS NOT NULL
OR donnees_techniques.su2_avt_shon24 IS NOT NULL
OR donnees_techniques.su2_avt_shon_tot IS NOT NULL
OR donnees_techniques.su2_cstr_shon1 IS NOT NULL
OR donnees_techniques.su2_cstr_shon2 IS NOT NULL
OR donnees_techniques.su2_cstr_shon3 IS NOT NULL
OR donnees_techniques.su2_cstr_shon4 IS NOT NULL
OR donnees_techniques.su2_cstr_shon5 IS NOT NULL
OR donnees_techniques.su2_cstr_shon6 IS NOT NULL
OR donnees_techniques.su2_cstr_shon7 IS NOT NULL
OR donnees_techniques.su2_cstr_shon8 IS NOT NULL
OR donnees_techniques.su2_cstr_shon9 IS NOT NULL
OR donnees_techniques.su2_cstr_shon10 IS NOT NULL
OR donnees_techniques.su2_cstr_shon11 IS NOT NULL
OR donnees_techniques.su2_cstr_shon12 IS NOT NULL
OR donnees_techniques.su2_cstr_shon13 IS NOT NULL
OR donnees_techniques.su2_cstr_shon14 IS NOT NULL
OR donnees_techniques.su2_cstr_shon15 IS NOT NULL
OR donnees_techniques.su2_cstr_shon16 IS NOT NULL
OR donnees_techniques.su2_cstr_shon17 IS NOT NULL
OR donnees_techniques.su2_cstr_shon18 IS NOT NULL
OR donnees_techniques.su2_cstr_shon19 IS NOT NULL
OR donnees_techniques.su2_cstr_shon20 IS NOT NULL
OR donnees_techniques.su2_cstr_shon21 IS NOT NULL
OR donnees_techniques.su2_cstr_shon22 IS NOT NULL
OR donnees_techniques.su2_cstr_shon23 IS NOT NULL
OR donnees_techniques.su2_cstr_shon24 IS NOT NULL
OR donnees_techniques.su2_cstr_shon_tot IS NOT NULL
OR donnees_techniques.su2_chge_shon1 IS NOT NULL
OR donnees_techniques.su2_chge_shon2 IS NOT NULL
OR donnees_techniques.su2_chge_shon3 IS NOT NULL
OR donnees_techniques.su2_chge_shon4 IS NOT NULL
OR donnees_techniques.su2_chge_shon5 IS NOT NULL
OR donnees_techniques.su2_chge_shon6 IS NOT NULL
OR donnees_techniques.su2_chge_shon7 IS NOT NULL
OR donnees_techniques.su2_chge_shon8 IS NOT NULL
OR donnees_techniques.su2_chge_shon9 IS NOT NULL
OR donnees_techniques.su2_chge_shon10 IS NOT NULL
OR donnees_techniques.su2_chge_shon11 IS NOT NULL
OR donnees_techniques.su2_chge_shon12 IS NOT NULL
OR donnees_techniques.su2_chge_shon13 IS NOT NULL
OR donnees_techniques.su2_chge_shon14 IS NOT NULL
OR donnees_techniques.su2_chge_shon15 IS NOT NULL
OR donnees_techniques.su2_chge_shon16 IS NOT NULL
OR donnees_techniques.su2_chge_shon17 IS NOT NULL
OR donnees_techniques.su2_chge_shon18 IS NOT NULL
OR donnees_techniques.su2_chge_shon19 IS NOT NULL
OR donnees_techniques.su2_chge_shon20 IS NOT NULL
OR donnees_techniques.su2_chge_shon21 IS NOT NULL
OR donnees_techniques.su2_chge_shon22 IS NOT NULL
OR donnees_techniques.su2_chge_shon23 IS NOT NULL
OR donnees_techniques.su2_chge_shon24 IS NOT NULL
OR donnees_techniques.su2_chge_shon_tot IS NOT NULL
OR donnees_techniques.su2_demo_shon1 IS NOT NULL
OR donnees_techniques.su2_demo_shon2 IS NOT NULL
OR donnees_techniques.su2_demo_shon3 IS NOT NULL
OR donnees_techniques.su2_demo_shon4 IS NOT NULL
OR donnees_techniques.su2_demo_shon5 IS NOT NULL
OR donnees_techniques.su2_demo_shon6 IS NOT NULL
OR donnees_techniques.su2_demo_shon7 IS NOT NULL
OR donnees_techniques.su2_demo_shon8 IS NOT NULL
OR donnees_techniques.su2_demo_shon9 IS NOT NULL
OR donnees_techniques.su2_demo_shon10 IS NOT NULL
OR donnees_techniques.su2_demo_shon11 IS NOT NULL
OR donnees_techniques.su2_demo_shon12 IS NOT NULL
OR donnees_techniques.su2_demo_shon13 IS NOT NULL
OR donnees_techniques.su2_demo_shon14 IS NOT NULL
OR donnees_techniques.su2_demo_shon15 IS NOT NULL
OR donnees_techniques.su2_demo_shon16 IS NOT NULL
OR donnees_techniques.su2_demo_shon17 IS NOT NULL
OR donnees_techniques.su2_demo_shon18 IS NOT NULL
OR donnees_techniques.su2_demo_shon19 IS NOT NULL
OR donnees_techniques.su2_demo_shon20 IS NOT NULL
OR donnees_techniques.su2_demo_shon21 IS NOT NULL
OR donnees_techniques.su2_demo_shon22 IS NOT NULL
OR donnees_techniques.su2_demo_shon23 IS NOT NULL
OR donnees_techniques.su2_demo_shon24 IS NOT NULL
OR donnees_techniques.su2_demo_shon_tot IS NOT NULL
OR donnees_techniques.su2_sup_shon1 IS NOT NULL
OR donnees_techniques.su2_sup_shon2 IS NOT NULL
OR donnees_techniques.su2_sup_shon3 IS NOT NULL
OR donnees_techniques.su2_sup_shon4 IS NOT NULL
OR donnees_techniques.su2_sup_shon5 IS NOT NULL
OR donnees_techniques.su2_sup_shon6 IS NOT NULL
OR donnees_techniques.su2_sup_shon7 IS NOT NULL
OR donnees_techniques.su2_sup_shon8 IS NOT NULL
OR donnees_techniques.su2_sup_shon9 IS NOT NULL
OR donnees_techniques.su2_sup_shon10 IS NOT NULL
OR donnees_techniques.su2_sup_shon11 IS NOT NULL
OR donnees_techniques.su2_sup_shon12 IS NOT NULL
OR donnees_techniques.su2_sup_shon13 IS NOT NULL
OR donnees_techniques.su2_sup_shon14 IS NOT NULL
OR donnees_techniques.su2_sup_shon15 IS NOT NULL
OR donnees_techniques.su2_sup_shon16 IS NOT NULL
OR donnees_techniques.su2_sup_shon17 IS NOT NULL
OR donnees_techniques.su2_sup_shon18 IS NOT NULL
OR donnees_techniques.su2_sup_shon19 IS NOT NULL
OR donnees_techniques.su2_sup_shon20 IS NOT NULL
OR donnees_techniques.su2_sup_shon21 IS NOT NULL
OR donnees_techniques.su2_sup_shon22 IS NOT NULL
OR donnees_techniques.su2_sup_shon23 IS NOT NULL
OR donnees_techniques.su2_sup_shon24 IS NOT NULL
OR donnees_techniques.su2_sup_shon_tot IS NOT NULL
OR donnees_techniques.su2_tot_shon_tot IS NOT NULL
";
$surface_creee = $common_surface . "
THEN donnees_techniques.su2_cstr_shon_tot
ELSE donnees_techniques.su_cstr_shon_tot
END";
$surface_totale = $common_surface . "
THEN donnees_techniques.su2_tot_shon_tot
ELSE donnees_techniques.su_tot_shon_tot
END";
// Ajout des colonnes concernant la demat
// Jointure permettant d'afficher l'id platau du service consultant et le
// libellé du service consultant dans les exports si le mode service consulté est
// actif
$table .= $f->is_option_mode_service_consulte_enabled() === true ? '
LEFT JOIN '.DB_PREFIXE.'consultation_entrante
ON dossier.dossier = consultation_entrante.dossier
' :
'';
$table .= "
LEFT JOIN
(SELECT
dossier,
external_uid
FROM
".DB_PREFIXE."lien_id_interne_uid_externe
WHERE object = 'dossier'
AND category = 'platau'
) AS dossier_platau
ON
dossier_platau.dossier = dossier.dossier
LEFT JOIN
(SELECT
dossier,
external_uid
FROM
".DB_PREFIXE."lien_id_interne_uid_externe
WHERE object = 'dossier_consultation'
AND category = 'platau'
) AS consultation_platau
ON
consultation_platau.dossier = dossier.dossier
LEFT JOIN
(SELECT
dossier,
ARRAY_TO_STRING(ARRAY_AGG(external_uid ORDER BY external_uid ASC), ', ') AS external_uid
FROM
".DB_PREFIXE."lien_id_interne_uid_externe
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
";
$table .= sprintf('
LEFT JOIN (
%1$slien_dossier_demandeur AS lien_dossier_demandeur_delegataire
JOIN %1$sdemandeur as demandeur_delegataire
ON lien_dossier_demandeur_delegataire.demandeur = demandeur_delegataire.demandeur AND demandeur_delegataire.type_demandeur = \'delegataire\'
)
ON dossier.dossier = lien_dossier_demandeur_delegataire.dossier AND lien_dossier_demandeur_delegataire.petitionnaire_principal IS FALSE
LEFT JOIN %1$sdonnees_techniques
ON donnees_techniques.dossier_instruction = dossier.dossier
LEFT JOIN %1$sarchitecte
ON architecte.architecte = donnees_techniques.architecte',
DB_PREFIXE) ;
// Permet l'ajout de la commune si l'option est activé
$champAffiche_debut_num_dossier = array(
'dossier.dossier as "'.__("dossier").'"',
'dossier.dossier_libelle as "'.__("dossier").'"',
);
if ($f->is_option_dossier_commune_enabled() === true) {
$champAffiche_debut_num_dossier[] = "commune.libelle as \"".__("commune")."\"";
}
$famille_travaux_select = sprintf(
'-- use_column_name_to_sort
(SELECT
string_agg(ftc.libelle::text, \', \') as famille_travaux_libelle
FROM (
SELECT DISTINCT
dossier,
famille_travaux.libelle
FROM
%1$slien_dossier_nature_travaux
INNER JOIN %1$snature_travaux
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux
INNER JOIN %1$sfamille_travaux
ON nature_travaux.famille_travaux = famille_travaux.famille_travaux
ORDER BY famille_travaux.libelle
) as ftc
WHERE ftc.dossier = dossier.dossier
GROUP BY dossier) AS "%2$s"',
DB_PREFIXE,
__("Famille de travaux")
);
$nature_travaux_select = sprintf(
'-- use_column_name_to_sort
(SELECT
string_agg(ntc.libelle::text, \', \' order by ntc.libelle) as nature_travaux_libelle
FROM (
SELECT DISTINCT
dossier,
nature_travaux.libelle
FROM
%1$slien_dossier_nature_travaux
INNER JOIN %1$snature_travaux
ON lien_dossier_nature_travaux.nature_travaux = nature_travaux.nature_travaux
) as ntc
WHERE ntc.dossier = dossier.dossier
GROUP BY dossier) AS "%2$s"',
DB_PREFIXE,
__("Nature de travaux")
);
// description/nature des travaux. En cas de modif, bloc de code aussi présent dans
// dossier.form.inc.php (le formulaire du DI)', 'om_requete' et 'stats à la demande'
$description_projet_select = sprintf(
"-- use_column_name_to_sort
(SELECT
CONCAT_WS(
'\n',
CASE WHEN co_projet_desc = ''
THEN NULL
ELSE TRIM(co_projet_desc)
END,
CASE WHEN ope_proj_desc = ''
THEN NULL
ELSE TRIM(ope_proj_desc)
END,
CASE WHEN am_projet_desc = ''
THEN NULL
ELSE TRIM(am_projet_desc)
END,
CASE WHEN dm_projet_desc = ''
THEN NULL
ELSE TRIM(dm_projet_desc)
END,
CASE WHEN donnees_techniques.erp_cstr_neuve IS TRUE
THEN '".str_replace("'", "''", __('erp_cstr_neuve'))."' END,
CASE WHEN donnees_techniques.erp_trvx_acc IS TRUE
THEN '".str_replace("'", "''", __('erp_trvx_acc'))."' END,
CASE WHEN donnees_techniques.erp_extension IS TRUE
THEN '".str_replace("'", "''", __('erp_extension'))."' END,
CASE WHEN donnees_techniques.erp_rehab IS TRUE
THEN '".str_replace("'", "''", __('erp_rehab'))."' END,
CASE WHEN donnees_techniques.erp_trvx_am IS TRUE
THEN '".str_replace("'", "''", __('erp_trvx_am'))."' END,
CASE WHEN donnees_techniques.erp_vol_nouv_exist IS TRUE
THEN '".str_replace("'", "''", __('erp_vol_nouv_exist'))."' END,
CASE WHEN mh_design_appel_denom = ''
THEN NULL
ELSE TRIM(mh_design_appel_denom)
END,
CASE WHEN mh_loc_denom = ''
THEN NULL
ELSE TRIM(mh_loc_denom)
END
) AS description_projet
FROM %1\$sdonnees_techniques
WHERE donnees_techniques.dossier_instruction = dossier.dossier
) AS \"%2\$s\"",
DB_PREFIXE,
__("Description du projet")
);
// Modifie la méthode de récupération de la nature des travaux
$champAffiche_debut_commun = array(
$case_demandeur_dossier.' as "'.__("petitionnaire").'"',
$case_correspondant.' as "'.__("correspondant").'"',
'TRIM(CONCAT(architecte.nom, \' \', architecte.prenom)) as "'.__("architecte (nom)").'"',
'architecte.nom_cabinet as "'.__("architecte (cabinet)").'"',
$trim_concat_terrain.'as "'.__("localisation").'"',
'references_cadastrales.libelle as "'.__("références cadastrales").'"',
'dossier_autorisation_type_detaille.libelle as "'.__("nature_dossier").'"',
'donnees_techniques.co_tot_log_nb as "'.__("nombre de logements créés").'"',
$surface_creee.' as "'.__("surface créée").'"',
$surface_totale.' as "'.__("surface totale").'"',
$famille_travaux_select,
$nature_travaux_select,
$description_projet_select,
'to_char(dossier.date_depot ,\'DD/MM/YYYY\') as "'.__("date_depot").'"',
'to_char(dossier.date_affichage ,\'DD/MM/YYYY\') as "'.__("date_affichage").'"',
);
// Présence de l'option_date_depot_mairie
if ($f->is_option_date_depot_mairie_enabled() === true) {
$champAffiche_debut_commun[] = 'to_char(dossier.date_depot_mairie ,\'DD/MM/YYYY\') as "'.__("date_depot_mairie").'"';
}
$champAffiche_debut_commun[] = 'to_char(dossier.date_complet ,\'DD/MM/YYYY\') as "'.__("date_complet").'"';
$champAffiche_debut_commun[] = 'CASE WHEN dossier.incomplet_notifie IS TRUE AND dossier.incompletude IS TRUE
THEN to_char(dossier.date_limite_incompletude ,\'DD/MM/YYYY\')
ELSE to_char(dossier.date_limite ,\'DD/MM/YYYY\')
END as "'.__("date_limite").'"';
$champAffiche_demat = array(
'dossier_platau.external_uid as "dossier Plat\'AU"',
'consultation_platau.external_uid as "consultation Plat\'AU"',
'pieces_platau.external_uid as "pièce(s) Plat\'AU"',
'autres_platau.external_uid as "autres objets Plat\'AU"',
);
$champAffiche_demat_sc = array();
if ($f->is_option_mode_service_consulte_enabled() === true) {
$champAffiche_demat_sc = array(
'consultation_entrante.service_consultant_id as "'.__('Service consultant : identifiant').'"',
'consultation_entrante.service_consultant_libelle as "'.__('Service consultant : libellé').'"',
);
}
// Redéfinit la liste des champs à afficher
$champAffiche = array_merge(
$champAffiche_debut_num_dossier,
$champAffiche_debut_commun,
array('instructeur.nom as "'.__("instructeur").'"',
'division.code as "'.__("division").'"',
),
$champAffiche_fin_commun,
$champAffiche_demat,
$champAffiche_demat_sc
);
?>