Modifies le script suivant pour qu'il fasse les choses suivantes :

- Vérifier que Fluide a 3 valeurs distinctes (électricité, gaz et RCU (réseau de chaleur urbaine))
- Vérifier si c'est du numérique (si pas numérique numérique, faire remonter une erreur)
- Tous les sites de multisource doivent être dans les tables sites (la réciproque n'est pas vraie)
- Recharger les sites en prenant les id (faire attention à la disparition des sites)
- Vérifier les consommations de la table Multisource avec les tables RCU, Gaz et Elec 

"""
SET ThousandSep=' ';
SET DecimalSep=',';
SET MoneyThousandSep=' ';
SET MoneyDecimalSep=',';
SET MoneyFormat='# ##0,00 €;-# ##0,00 €';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET FirstWeekDay=0;
SET BrokenWeeks=0;
SET ReferenceDay=4;
SET FirstMonthOfYear=1;
SET CollationLocale='fr-FR';
SET CreateSearchIndexOnReload=1;
SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
SET LongMonthNames='janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre';
SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
SET LongDayNames='lundi;mardi;mercredi;jeudi;vendredi;samedi;dimanche';
SET NumericalAbbreviation='3:k;6:M;9:G;12:T;15:P;18:E;21:Z;24:Y;-3:m;-6:μ;-9:n;-12:p;-15:f;-18:a;-21:z;-24:y';


// =========================================================================
// Étape 1 : Définition du chemin racine
// =========================================================================
SET vRootPath = 'lib://Source Partage Fichiers DFCG/donnéesEnvironnementales/Fluides/';

// =========================================================================
// Étape 2 : Trouver le chemin du dossier d'export le plus récent
// =========================================================================

// On crée une table temporaire listant tous les dossiers "export_*"

FOR EACH vFolder IN DirList('$(vRootPath)export_*')
	TempFolders:
    LOAD
        '$(vFolder)' as FullPath,
        SubField(SubField('$(vFolder)', '/', -1), '_', 2) as ExportDateString
    AUTOGENERATE 1;
NEXT vFolder;


// On cherche la date maximale parmi les dossiers trouvés
LastExportDate:
LOAD
    Max(ExportDateString) as MaxDate
RESIDENT TempFolders;

// On récupère cette date maximale dans une variable
LET vMaxDate = Peek('MaxDate', 0, 'LastExportDate');

// On nettoie les tables temporaires
DROP TABLE TempFolders;
DROP TABLE LastExportDate;

// On construit le chemin complet vers le dernier dossier
// et on s'assure que la variable vMaxDate n'est pas vide
IF NOT IsNull(vMaxDate) THEN
    LET vLastFolder = '$(vRootPath)export_' & vMaxDate;
    TRACE Le dossier le plus récent est : $(vLastFolder);

    // =========================================================================
    // Étape 3 : Chargement des fichiers DEPUIS LE DERNIER DOSSIER UNIQUEMENT
    // =========================================================================
    
    // On utilise la date extraite pour les nouvelles colonnes
    LET vExportDate = vMaxDate;


Multisource:
LOAD distinct
    "Id de l'équipement"&'__'&Fluide as id,
    "Id de l'équipement",
    Fluide,
    "Nom de l'équipement",
    "Famille d'équipement",
    "Température °C de référence DJU chaud",
    "Température °C de référence DJU froid",
    "Id du site",
    Ville,
    Adresse,
    kWhef as conso_kWh,
    "Date" as date_fact,
    "DJUs chauds",
    "DJUs froids",
    '$(vExportDate)' as DateExport,
    Date(Date#('$(vExportDate)', 'YYYYMMDD'), 'DD/MM/YYYY') as DateExportFormatee
From [$(vLastFolder)/datamart_nrj_distribaset_multisource_KPIs.csv]
(txt, utf8, embedded labels, delimiter is ',', msq)
WHERE 
	Source='Fournisseur'
	AND "Nom du compte client" = 'CD59 - Conseil Départemental du Nord';

site_filtered:
LOAD
    id_du_site as "Id du site",
    nom_du_site,
    latitude,
    longitude,
    surface_m2 as "Surface (m2)",
    nature as "Nature",
    sous_nature as "Sous-nature"
FROM [$(vLastFolder)/datamart_nrj_distribI_sites_source_yearly.csv]
(txt, utf8, embedded labels, delimiter is ',', msq)
WHERE source = 'Fournisseur';

Site:
LOAD
    "Id du site",
    "Nom du site" as nom_du_site,
    "Typologie de site",
    "Surface (m2)",
    "Année de construction",
    "Année de référence",
    Catégorie,
    "En fonctionnement",
    "Horaire de fermeture",
    "Horaire d'ouverture",
    Nature,
    "Nombre d'occupants",
    "Surface de plancher (m2)",
    "Surface SHON (m2)",
    "Sous-catégorie",
    "Sous-nature",
    '$(vExportDate)' as DateExport,
    Date(Date#('$(vExportDate)', 'YYYYMMDD'), 'DD/MM/YYYY') as DateExportFormatee
FROM [$(vLastFolder)/datamart_nrj_distribted_dataset_KPI_sites.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

OUTER JOIN (Site)
LOAD
    "Id du site",
    nom_du_site,
    latitude,
    longitude,
    "Surface (m2)",
    "Nature",
    "Sous-nature"
RESIDENT site_filtered;

// ajout de ville et adresse à la table Site
LEFT JOIN (Site)
LOAD 
	"Id du site",
	Ville,
    Adresse
RESIDENT Multisource;

DROP TABLE site_filtered;


DROP FIELDS Ville, Adresse FROM Multisource;


Elec:
LOAD
	"Id de l'équipement"&'__'&"1er jour du mois" as id_elec,
    "Id de l'équipement",
    "1er jour du mois" as date_elec,
    "Consommation (kWhef)" as conso_elec,
    "DJUs chauds",
    "DJUs froids"
FROM [$(vLastFolder)/datamart_nrj_distribet_monthly_bills_elec.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

Qualify *;
Unqualify "Id de l'équipement";

Gaz:
LOAD
	"1er jour du mois"&'__'&"Id de l'équipement" as id_gaz,
    "Id de l'équipement",
    "1er jour du mois" as date_gaz,
    "Consommation (kWhef)" as conso_elec,
    "DJUs chauds",
    "DJUs froids"
FROM [$(vLastFolder)/datamart_nrj_distribset_monthly_bills_gaz.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

Qualify *;
Unqualify "Id de l'équipement";

RCU:
LOAD
	"1er jour du mois"&'__'&"Id de l'équipement" as id_gaz,
    "Id de l'équipement",
    "1er jour du mois" as date_rcu,
    "Consommation (kWhef)" as conso_rcu,
    "DJUs chauds",
    "DJUs froids"
FROM [$(vLastFolder)/datamart_nrj_distribmonthly_bills_heating.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);


ELSE
    // Gérer le cas où aucun dossier "export_*" n'a été trouvé
    TRACE Erreur : Aucun dossier correspondant au masque '$(vRootPath)export_*' n'a été trouvé.
ENDIF;

EXIT SCRIPT;

"""