<?php

// Constantes globales de l'application
class APPLICATION
{
    const ITEMS_PER_PAGE = 15;
    const ADMIN_MAIL = 'contact@aptimap.fr';
}

// Constantes des projets
class PROJET
{
    const INVESTISSEMENT    = 'investissement';
    const EXPLOITATION      = 'exploitation';

    const PROJET_FORMATTED = [
        self::INVESTISSEMENT    => 'Investissement',
        self::EXPLOITATION      => 'Exploitation',
    ];
}

// Liste des status d'un PAAT
class PAAT_STATUT {
    const INITIALISATION    = 'initialisation';
    const EN_COURS          = 'en_cours';
    const SOUMIS            = 'soumis';
    const CLOTURE           = 'cloture';
}

// Liste des statuts d'un projet
class PROJET_STATUT{
    const EN_COURS                      = 1;
    const SOUMISE                       = 2;
    const VALIDEE_RESPONSABLE_ACHAT     = 3;
    const REJETEE_RESPONSABLE_ACHAT     = 4;
    const VALIDEE_CHEF_PROJET           = 5;
    const REJETEE_CHEF_PROJET           = 6;
    const VALIDEE_DIRECTEUR_ACHAT       = 7;
    const AVIS_FAVORABLE_CONTROLEUR     = 8;
    const AVIS_DEFAVORABLE_CONTROLEUR   = 9;
    const ABANDONNEE                    = 10;
    const SUSPENDUE                     = 11;
    const SUPPRIMEE                     = 12;
    const CLOTUREE                      = 13;
}


class PROJET_RISQUE {
    const MAITRISE          = 'maitrise';
    const RETARD            = 'retard';
    const RETARD_IMPORTANT  = 'retard_important';
}


// Liste des types de calcul des gains d'un projet
class TYPE_CALCUL_GAINS {
    //TODO à renommer
    const ACHATS_RECURRENTS     = 1;
    const ACHATS_COMPLEXES      = 2;
    const ACHATS_INVESTISSEMENT = 3;

    const TYPE_CALCUL_GAINS_FORMATTED = [
        self::ACHATS_RECURRENTS     => 'Achats récurrents',
        self::ACHATS_COMPLEXES      => 'Achats complexes',
        self::ACHATS_INVESTISSEMENT => 'Achats investissement'
    ];
}

class TYPE_ACHAT_INVESTISSEMENT {
    const INVESTISSEMENT        = 1;
    const PRODUIT_PRESTATION    = 2;

    const TYPE_ACHAT_INVESTISSEMENT_FORMATTED = [
        self::INVESTISSEMENT        => 'Investissement',
        self::PRODUIT_PRESTATION    => 'Produit / Prestation'
    ];
}

// Liste des différents rôles de l'application
class ROLE
{
    const SUPER_ADMINISTRATEUR          = 'super_administrateur';
    const ADMINISTRATEUR_STRUCTURE      = 'administrateur_structure';
    const ACHETEUR                      = 'acheteur';
    const CONTROLEUR_GESTION            = 'controleur_gestion';
    const RESPONSABLE_ACHAT             = 'responsable_achat';
    const CHEF_PROJET                   = 'chef_projet';
    const DIRECTEUR_ACHAT               = 'directeur_achat';
    const EQUIPE_PROJET                 = 'equipe_projet';
    const EXPERT                        = 'expert';
    const DIRECTEUR                     = 'directeur';
    const RESPONSABLE_PERFORMANCE_ARS   = 'responsable_performance_ars';

    const ROLES_FORMATTED = [
        self::SUPER_ADMINISTRATEUR          => 'Super administrateur',
        self::ADMINISTRATEUR_STRUCTURE      => 'Administrateur de structure',
        self::ACHETEUR                      => 'Acheteur',
        self::CONTROLEUR_GESTION            => 'Controleur de gestion',
        self::RESPONSABLE_ACHAT             => 'Responsable achat',
        self::CHEF_PROJET                   => 'Chef de projet',
        self::DIRECTEUR_ACHAT               => 'Directeur achat',
        self::EQUIPE_PROJET                 => 'Equipe projet',
        self::EXPERT                        => 'Expert',
        self::DIRECTEUR                     => 'Directeur',
        self::RESPONSABLE_PERFORMANCE_ARS   => 'Responsable de la performance ARS',
    ];
}

// Liste des différentes régions
class REGION
{
    const AUVERGNE_RHONE_ALPES      = 'AUVERGNE_RHONE_ALPES';
    const BOURGOGNE_FRANCHE_COMTE   = 'BOURGOGNE_FRANCHE_COMTE';
    const BRETAGNE                  = 'BRETAGNE';
    const CENTRE_VAL_DE_LOIRE       = 'CENTRE_VAL_DE_LOIRE';
    const CORSE                     = 'CORSE';
    const GRAND_EST                 = 'GRAND_EST';
    const HAUTS_DE_FRANCE           = 'HAUTS_DE_FRANCE';
    const ILE_DE_FRANCE             = 'ILE_DE_FRANCE';
    const NORMANDIE                 = 'NORMANDIE';
    const NOUVELLE_AQUITAINE        = 'NOUVELLE_AQUITAINE';
    const OCCITANIE                 = 'OCCITANIE';
    const PAYS_DE_LA_LOIRE          = 'PAYS_DE_LA_LOIRE';
    const PROVENCE_ALPES_COTE_AZUR  = 'PROVENCE_ALPES_COTE_AZUR';

    const REGIONS_FORMATTED = [
        self::AUVERGNE_RHONE_ALPES      => 'Auvergne-Rhône-Alpes',
        self::BOURGOGNE_FRANCHE_COMTE   => 'Bourgogne-Franche-Comté',
        self::BRETAGNE                  => 'Bretagne',
        self::CENTRE_VAL_DE_LOIRE       => 'Centre-Val de Loire',
        self::CORSE                     => 'Corse',
        self::GRAND_EST                 => 'Grand Est',
        self::HAUTS_DE_FRANCE           => 'Hauts-de-France',
        self::ILE_DE_FRANCE             => 'Île-de-France',
        self::NORMANDIE                 => 'Normandie',
        self::NOUVELLE_AQUITAINE        => 'Nouvelle-Aquitaine',
        self::OCCITANIE                 => 'Occitanie',
        self::PAYS_DE_LA_LOIRE          => 'Pays de la Loire',
        self::PROVENCE_ALPES_COTE_AZUR  => 'Provence-Alpes-Côte d\'Azur',
    ];
}

class ETAPE_PROJET
{
    const NOMBRE_ETAPE      = 7;
    const CREATION          = 'creation';
    const LEVIERS           = 'leviers';
    const ACHATS            = 'achats';
    const RESP_SOC_ENV      = 'resp_soc_env';
    const STATUT            = 'statut';
    const GESTION_PROJET    = 'gestion_projet';
    const SUIVI             = 'suivi';

    const ETAPES_ORDERED = [
        self::CREATION,
        self::LEVIERS,
        self::ACHATS,
        self::RESP_SOC_ENV,
        self::STATUT,
        self::GESTION_PROJET,
        self::SUIVI
    ];
}

class PLANIFICATION
{
    const PREPARATION       = 'preparation';
    const REDACTION         = 'redaction';
    const PUBLICITE         = 'publicite';
    const SUIVI_PROCEDURE   = 'suivi_procedure';
    const CLOTURE           = 'cloture';

    const PLANIFICATION_ORDERED = [
        self::PREPARATION,
        self::REDACTION,
        self::PUBLICITE,
        self::SUIVI_PROCEDURE,
        self::CLOTURE
    ];
}

class TEXT
{
    const GAINS_SECURISES       = 'gains_securises';
    const MONTANT_REFERENCE     = 'montant_reference';
    const GAINS_NOTIFIES        = 'gains_notifies';
    const MONTANT_NOTIFIE       = 'montant_notifie';
    const GAINS_CIBLE           = 'gains_cible';
    const SUPER_ADMINISTRATION  = 'SUPER ADMINISTRATION';
    const MAITRISE              = 'maitrise';
    const RETARD                = 'retard';
    CONST RETARD_IMPORTANT      = 'retard_important';

    const FORMATTED_TEXT = [
        self::GAINS_SECURISES       => 'Gains sécurisés',
        self::MONTANT_REFERENCE     => 'Montant de référence',
        self::GAINS_NOTIFIES        => 'Gains notifiés',
        self::MONTANT_NOTIFIE       => 'Montant notifié',
        self::GAINS_CIBLE           => 'Gains cibles',
        self::MAITRISE              => 'Maitrisé',
        self::RETARD                => 'Retard',
        self::RETARD_IMPORTANT      => 'Retard important',
    ];

    const FRENCH_MONTH = [
        'Janvier',
        'Février',
        'Mars',
        'Avril',
        'Mai',
        'Juin',
        'Juillet',
        'Août',
        'Septembre',
        'Octobre',
        'Novembre',
        'Décembre'
    ];
}

class CARTOGRAPHIE
{
    /**
     * Names of differents tables for cartographie feature
     */
    public const CSV_DONNEES_CLIENT = 'csv_donnees_client';
    public const CSV_CLIENT_ENTETES = 'csv_client_entetes';
    public const CSV_APTIMAP_ENTETES = 'csv_aptimap_entetes';

    /**
     * Names of CSV_DONNEES_CLIENT columns
     */
    public const CHECKSUM = 'checksum';
    public const STRUCTURE_ID = 'structure_id';
    public const MONTANT_HT_LOWER = 'montant_ht';
    public const LIBELLE_MARCHE = 'libelle_marche';
    public const LIBELLE_SERVICE = 'libelle_service';
    public const LIBELLE_DIRECTION = 'libelle_direction';
    public const DOMAINE = 'domaine';
    public const TIERS_NOM = 'tiers_nom';
    public const DATE_LOWER = 'date';
    public const SEGMENT = 'segment';
    public const SOUS_SEGMENT = "sous_segment";
    public const NATURE_DE_LA_PRESTATION = 'nature_de_la_prestation';
    public const MONTANT_HT = 'MONTANT_HT';
    public const MONTANT_TVA = 'MONTANT_TVA';
    public const MONTANT_TTC = 'MONTANT_TTC';
    public const DATE = 'DATE';
    public const DATE_FIN = 'DATE_FIN';
    public const DATE_DEBUT = 'DATE_DEBUT';

    /**
     * Name of CSV_CLIENT_ENTETES column
     */
    public const NOM = 'nom';
}
