<?php

namespace Modules\Fournisseur;

use Modules\Fournisseur\Controller\ModificationSourceExtController;
use Modules\Fournisseur\Controller\RecapFournisseurController;
use Modules\Fournisseur\Controller\SearchImportFournisseurController;
use Skeleton\Router;
use Skeleton\Module;
use Skeleton\Renderer\RendererInterface;
use Psr\Container\ContainerInterface;
use Modules\Fournisseur\Controller\FournisseurController;
use Modules\Fournisseur\Controller\DocFournisseurController;
use Modules\Fournisseur\Controller\CreationDocFournisseurController;
use Modules\Fournisseur\Controller\CreationFournisseurSimplifierController;
use Modules\Fournisseur\Controller\ModifierDocFournisseurController;
use Modules\Fournisseur\Controller\EvaluationController;
use Modules\Fournisseur\Controller\GestionFournisseurController;
use Modules\Fournisseur\Controller\InteractionsController;
use Modules\Fournisseur\Controller\PopupDocFournisseurController;
use Modules\Fournisseur\Controller\AjaxDocFournisseurController;
use Modules\Fournisseur\Controller\CreationFournisseurController;
use Modules\Fournisseur\Controller\PopUpGestionFournisseurController;
use Modules\Fournisseur\Controller\AjaxGestionFournisseurController;
use Modules\Fournisseur\Controller\MotsClefController;
use Modules\Fournisseur\Controller\ModificationFournisseurController;
use Modules\Fournisseur\Controller\AttestationsFournisseurController;
use Modules\Fournisseur\Controller\CreationAttestationsFournisseurController;
use Modules\Fournisseur\Controller\AttestationsVisaGlobalFournisseurController;
use Modules\Fournisseur\Controller\ModificationAttestationsFournisseurController;
use Modules\Fournisseur\Controller\BddController;
use Modules\Fournisseur\Controller\ConditionGeneralController;
use Modules\Fournisseur\Controller\SessionCreationFournisseurController;
use Modules\Fournisseur\Controller\ValidationFournisseurController;
use Modules\Fournisseur\Controller\MotsClefInteractionController;
use Modules\Fournisseur\Controller\SousFamilleInteractionController;
use Modules\Fournisseur\Controller\SousFamilleController;
use Modules\Fournisseur\Controller\TypeAchatInteractionController;
use Modules\Fournisseur\Controller\TypeAchatController;
use Modules\Fournisseur\Controller\CreationBddController;
use Modules\Fournisseur\Controller\ModificationBddController;
use Modules\Fournisseur\Controller\EdiRoutageController;
use Modules\Fournisseur\Controller\GestionShortListController;
use Modules\Fournisseur\Controller\ZoneGeoController;
use Modules\Fournisseur\Controller\CentreEmetteurController;
use Modules\Fournisseur\Controller\ZoneGeoInteractionController;
use Modules\Fournisseur\Controller\DistribueesController;
use Modules\Fournisseur\Controller\EdiRoutageInteractionController;
use Modules\Fournisseur\Controller\FactureController;
use Modules\Fournisseur\Controller\CommandeController;
use Modules\Fournisseur\Controller\ReponseAOController;
use Modules\Fournisseur\Controller\NotationController;
use Modules\Fournisseur\Controller\ArticlesController;
use Modules\Fournisseur\Controller\GestionGroupementController;
use Modules\Fournisseur\Controller\CreationGroupementController;
use Modules\Fournisseur\Controller\DocumentArticlesController;
use Modules\Fournisseur\Controller\AccordCadreArticlesController;
use Modules\Fournisseur\Controller\PopupArticleController;
use Modules\Fournisseur\Controller\CreationArticleFGController;
use Modules\Fournisseur\Controller\ModificationArticleFGController;
use Modules\Fournisseur\Controller\RattacherGroupementController;
use Modules\Fournisseur\Controller\PopupHistoriqueController;
use Modules\Fournisseur\Controller\ImportFournisseurController;
use Modules\Fournisseur\Controller\IndicateurFournisseurController;
use Modules\Fournisseur\Controller\FournisseurEventController;
use Helpers\Parametres\Parametres;
use Modules\Fournisseur\Controller\SocieteController;

class FournisseurModule extends Module
{

    const DEFINITIONS = __DIR__ . '/config.php';

    public function __construct(ContainerInterface $container)
    {
        $container->get(RendererInterface::class)->addPath('Fournisseur', __DIR__ . '/views');

        $router = $container->get(Router::class);

        $basePath = $container->get('baseUrl') . $container->get('ShortList.prefix');

        $parametres = new Parametres();
        $global = $parametres->expression_global;
        $annee = $parametres->expression_annee;
        $MODULE = $parametres->MODULE;
        $split = $parametres->expresion_seperator;
        $underscore = $parametres->expression_underscore;

        $fourniss = $parametres->id_fournisseur;
        $facture = $parametres->id_facture;
        $noOrdre = $parametres->ordre_document;
        $camagne = $parametres->expression_global;
        $article = $parametres->id_article;
        $centre = $parametres->id_centre;

        $commande = $parametres->id_commande;

        $fabricant = $parametres->id_fabricant;
        $gamme = $parametres->id_gamme;
        $groupement = $parametres->id_groupement;

        $codeDemande = $parametres->codeDemande;

        $base_url = $container->get('baseUrl') . $container->get('Fournisseur.prefix');

        // $fourniss= "[123]";

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Gestion fournisseur **/
        $router->get($base_url . '[/index/{filtre:' . $underscore . '+}/{mode:' . $underscore . '+}]', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.index');
        $router->get($base_url . '/impression/{id:' . $fourniss . '+}', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.edition');
        $router->get($base_url . '/export', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.exportCSV');
        $router->get($base_url . '/favori/{id:' . $fourniss . '+}', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.favori');
        $router->get($base_url . '/invitation/{id:' . $fourniss . '+}/{idPartenaire:' . $fourniss . '+}', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.invitPartenaire');

        $router->get($base_url . '/popupExport', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupExport');
        $router->get($base_url . '/exportFrs', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.exportFrs');
        $router->get($base_url . '/popupGestionFournisseur/{id:' . $fourniss . '+}', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupGroupement');
        $router->get($base_url . '/popupMultiInvitation/{id:' . $fourniss . '+}', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupMultiPartenaire');
            $router->get($base_url . '/shortListe/{id:' . $fourniss . '+}', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupShortListe');
        $router->get($base_url . '/transfert/{id:' . $fourniss . '+}', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupTransfertFournisseur');
        $router->get($base_url . '/transfertConfirmation/{id:' . $fourniss . '+}/{switch:[A-Za-z0-9]+}', PopUpGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.popupTransfertConfirmation');

        $router->get($base_url . '/ajaxshortListe/{id:' . $fourniss . '+}', AjaxGestionFournisseurController::class, 'Fournisseur.GestionFournisseur.ajaxShortListe');

        $router->get($base_url . '/indicateur', IndicateurFournisseurController::class, 'Fournisseur.Incidateur.indicateur');
        $router->get($base_url . '/indicateur/documents', IndicateurFournisseurController::class, 'Fournisseur.Incidateur.documents');
        $router->get($base_url . '/indicateur/partenaire/{partenaire:' . $fourniss . '+}', IndicateurFournisseurController::class, 'Fournisseur.Incidateur.partenaire');
        $router->get($base_url . '/indicateur/evaluations[/{action:' . $global . '+}]', IndicateurFournisseurController::class, 'Fournisseur.Incidateur.evaluations');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** creation/modification fournisseur **/
        /* init Creation frs initCreation */
        $router->get($base_url . '/search-import[/simplifier/{simplifier_mode:0|1}]', SearchImportFournisseurController::class, 'Fournisseur.SearchImport.index');
        $router->get($base_url . '/search-import/search', SearchImportFournisseurController::class, 'Fournisseur.SearchImport.search');
        $router->get($base_url . '/search-import/detail', SearchImportFournisseurController::class, 'Fournisseur.SearchImport.detail');

        $router->get($base_url . '/creation/autocomplete', SearchImportFournisseurController::class, 'Fournisseur.SearchImport.formAutocomplete');

        /* Source externe */
        $router->get($base_url.'/source-ext/form-update/{id:'.$fourniss.'+}', ModificationSourceExtController::class, 'Fournisseur.SourceExt.formUpdate');
        $router->get($base_url.'/source-ext/update', ModificationSourceExtController::class, 'Fournisseur.SourceExt.update');


        /* Fournisseur */
        $router->get($base_url . '/creation[/refusee/{id:' . $fourniss . '+}/{codeDemande:' . $codeDemande . '+}]', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.nouveauFournisseur');
        $router->get($base_url . '/modification/{id:' . $fourniss . '+}[/MODE/{mode:' . $underscore . '+}[/codetype/{codeType:' . $underscore . '+}]]', ModificationFournisseurController::class, 'Fournisseur.ModificationFournisseur.ModificationFournisseur');

        $router->get($base_url . '/validationFournisseur/{mode:' . $global . '+}[/typeValidation/{type:' . $underscore . '+}]', ValidationFournisseurController::class, 'Fournisseur.ValidationFournisseur.validation');
        $router->get($base_url . '/ConfirmationValidationFournisseur[/typeValidation/{type:' . $underscore . '+}]', ValidationFournisseurController::class, 'Fournisseur.ValidationFournisseur.Confirmationvalidation');
        $router->get($base_url . '/liaisonSociete[/{type:' . $underscore . '+}]', ValidationFournisseurController::class, 'Fournisseur.ValidationFournisseur.liaisonSociete');

        $router->get($base_url . '/ajax-taxe', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.gestionTaxe');
        $router->get($base_url . '/ajax-adresseComplementaire[/typeValidation/{type:' . $underscore . '+}]', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.adresseComplementaire');
        $router->get($base_url . '/ajax-contactComplementaire[/typeValidation/{type:' . $underscore . '+}[/{seconde:' . $underscore . '+}]]', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.contactComplementaire');
        $router->get($base_url . '/ajax-CAComplementaire[/typeValidation/{type:' . $underscore . '+}[/{seconde:' . $underscore . '+}]]', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.CAComplementaire');

        $router->get($base_url . '/popupReprise', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.confirmationValeurIdentite');
        $router->get($base_url . '/popupArticleFais', CreationFournisseurController::class, 'Fournisseur.CreationFournisseur.popupArticleFais');



        /** création fournisseur simplifié */
        $router->get($base_url . '/creation-fournisseur-simplie', CreationFournisseurSimplifierController::class, 'Fournisseur.CreationFournisseurSimplifier.nouveauFournisseur');
        $router->get($base_url . '/ajax-taxe-simply', CreationFournisseurSimplifierController::class, 'Fournisseur.CreationFournisseurSimplifier.gestionTaxe');


        /* mot clef */
        $router->get($base_url . '/creation/motclefs', MotsClefController::class, 'Fournisseur.motsClef.motsClefCreationFournisseur');
        $router->get($base_url . '/modification/motclefs/{id:' . $fourniss . '+}', MotsClefController::class, 'Fournisseur.motsClef.motsClefModificationFournisseur');

        $router->get($base_url . '/motclefs/creation/ajout[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', MotsClefController::class, 'Fournisseur.motsClef.popupAjoutMotsClef');

        $router->get($base_url . '/AjaxAjout/motclefs[/typeValidation/{type:' . $underscore . '+}]', MotsClefController::class, 'Fournisseur.motsClef.ajaxAjoutMotsClef');

        $router->get($base_url . '/ajaxSuppresion/motclefs[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', MotsClefController::class, 'Fournisseur.motsClef.ajaxSuppresionMotClef');

        $router->get($base_url . '/ajax-motclefs-tableau[/typeValidation/{type:' . $underscore . '+}]', MotsClefController::class, 'Fournisseur.motsClefInteraction.ajaxTableauMotclef');

        /* Sous famille */
        $router->get($base_url . '/creation/sousFamille', SousFamilleController::class, 'Fournisseur.SousFamille.sousFamille');
        $router->get($base_url . '/modification/sousFamille/{id:' . $fourniss . '+}', SousFamilleController::class, 'Fournisseur.SousFamille.sousFamilleModification');
        $router->get($base_url . '/SousFamille/popupAjout[/typeValidation/{type:' . $underscore . '+}]', SousFamilleController::class, 'Fournisseur.SousFamille.popupAjoutSousFamille');
        $router->get($base_url . '/SousFamille/ajaxAjout[/typeValidation/{type:' . $underscore . '+}]', SousFamilleController::class, 'Fournisseur.SousFamille.ajaxAjoutSousFamille');

        $router->get($base_url . '/SousFamille/ajaxSuppresion[/typeValidation/{type:' . $underscore . '+}]', SousFamilleController::class, 'Fournisseur.SousFamille.ajaxSuppresionSousFamille');
        $router->get($base_url . '/SousFamille/ajaxSousFamilleTableau[/typeValidation/{type:' . $underscore . '+}]', SousFamilleController::class, 'Fournisseur.SousFamille.ajaxSousFamilleTableau');



        /* Type d'achat*/
        $router->get($base_url . '/creation/typeAchat[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.TypeAchatCreation');
        $router->get($base_url . '/modification/typeAchat/{id:' . $fourniss . '+}[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.TypeAchatModication');
        $router->get($base_url . '/typeAchat/creation/ajout[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.popupAjoutTypeAchat');

        $router->get($base_url . '/AjaxAjout/typeAchat[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.ajaxAjoutTypeAchat');
        $router->get($base_url . '/typeAchat/ajaxSuppresion/{typAch:' . $underscore . '+}[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.ajaxSuppresionTypeAchat');
        $router->get($base_url . '/typeAchat/ajaxDefaut/{typAch:' . $underscore . '+}[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.ajaxDefautTypeAchat');
        $router->get($base_url . '/typeAchat/ajaxTableau[/typeValidation/{type:' . $underscore . '+}]', TypeAchatController::class, 'Fournisseur.TypeAchat.ajaxTypeAchatTableau');




        /* BDD */
        $router->get($base_url . '/creation/liste/Bdd', BddController::class, 'Fournisseur.Bdd.CreationListeBdd');
        $router->get($base_url . '/modification/liste/Bdd/{id:' . $fourniss . '+}', BddController::class, 'Fournisseur.Bdd.ModificationListeBdd');
        $router->get($base_url . '/bdd/ajaxSuppresion/{id:' . $fourniss . '+}[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', BddController::class, 'Fournisseur.Bdd.ajaxSuppresionoBdd');

        $router->get($base_url . '/bdd/nouveau[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', CreationBddController::class, 'Fournisseur.CreationBdd.nouveauBdd');
        $router->get($base_url . '/bdd/edition/{id:' . $fourniss . '+}[/typeBDD/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', ModificationBddController::class, 'Fournisseur.ModificationBdd.editionBdd');

        $router->get($base_url . '/bdd/ajaxCadenas/{id:' . $fourniss . '+}', BddController::class, 'Fournisseur.Bdd.ajaxCadenasBdd');

        $router->get($base_url . '/bdd/ajaxtableau[/typeValidation/{type:' . $underscore . '+}]', BddController::class, 'Fournisseur.Bdd.ajaxBDDTableau');



        /* Edit & Routage */
        $router->get($base_url . '/creation/editRoutage', EdiRoutageController::class, 'Fournisseur.EdiRoutage.CreationEdiRoutage');
        $router->get($base_url . '/modification/editRoutage/{id:' . $fourniss . '+}', EdiRoutageController::class, 'Fournisseur.EdiRoutage.ModificationEdiRoutage');

        /*Zone geo */
        $router->get($base_url . '/creation/zoneGeographique', ZoneGeoController::class, 'Fournisseur.ZoneGeo.CreationZoneGeo');
        $router->get($base_url . '/modification/zoneGeographique/{id:' . $fourniss . '+}', ZoneGeoController::class, 'Fournisseur.ZoneGeo.modificationZoneGeo');

        $router->get($base_url . '/zoneGeographique/ajaxTableau/{regroup:' . $underscore . '+}[/{codeAdresse:' . $underscore . '+}[/{type:' . $global . '+}]]', ZoneGeoController::class, 'Fournisseur.ZoneGeo.ajaxTableau');
        $router->get($base_url . '/zoneGeographique/sessionZoneGeo[/{codeAdresse:' . $underscore . '+}[/{type:' . $global . '+}]]', ZoneGeoController::class, 'Fournisseur.ZoneGeo.sessionZoneGeo');

        //$router->get($base_url.'/zoneGeographique/ajaxTableauCondi/{regroup:'.$underscore.'+}[/{type:'.$global.'+}]', ZoneGeoController::class, 'Fournisseur.ZoneGeo.ajaxTableau');
        //$router->get($base_url.'/zoneGeographique/sessionZoneGeoCondi[/{type:'.$global.'+}]', ZoneGeoController::class, 'Fournisseur.ZoneGeo.sessionZoneGeo');

        $router->get($base_url . '/import', ImportFournisseurController::class, 'Fournisseur.Import.index');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Session **/

        $router->get($base_url . '/sessionFournisseurType[/typeValidation/{type:' . $underscore . '+}]', SessionCreationFournisseurController::class, 'Fournisseur.SessionCreationFournisseur.sessionFournisseurType');
        $router->get($base_url . '/sessionFournisseur[/{code:' . $underscore . '+}]', SessionCreationFournisseurController::class, 'Fournisseur.SessionCreationFournisseur.sessionFournisseur');
        $router->get($base_url . '/sessionExist/{action:' . $global . '+}', SessionCreationFournisseurController::class, 'Fournisseur.SessionCreationFournisseur.sessionExist');
        $router->get($base_url . '/sessionEdiRoutage', SessionCreationFournisseurController::class, 'Fournisseur.SessionCreationFournisseur.sessionEdiRoutage');
        $router->get($base_url . '/session/add', SessionCreationFournisseurController::class, 'Fournisseur.SessionCreationFournisseur.sessionAdd');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Fiche fournisseur **/

        $router->get($base_url . '/fiche/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', FournisseurController::class, 'Fournisseur.Fournisseur.index');

        $router->get($base_url.'/ChiffreAffaire/{id:'.$fourniss.'+}[/{codeDemande:'.$codeDemande.'+}]', FournisseurController::class, 'Fournisseur.Fournisseur.popupChiffreAffaire');
        $router->get($base_url.'/Indicateur/{id:'.$fourniss.'+}[/{codeDemande:'.$codeDemande.'+}]', FournisseurController::class, 'Fournisseur.Fournisseur.indicateurs');
        $router->get($base_url.'/ArticlesAuto/{id:'.$fourniss.'+}', FournisseurController::class, 'Fournisseur.Fournisseur.articlesAuto');
        
/** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Document rattachés **/

        $router->get($base_url . '/document/{id:' . $fourniss . '+}[/demande/{codeDemande:' . $codeDemande . '+}]', DocFournisseurController::class, 'Fournisseur.DocFournisseur.docRattache');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/nouveau[/{type:' . $global . '+}/{ordre:[0-9]+}]', CreationDocFournisseurController::class, 'Fournisseur.DocFournisseur.ajoutDocAtt');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/edition', ModifierDocFournisseurController::class, 'Fournisseur.DocFournisseur.editDocAtt');

        $router->get($base_url . '/document/popupRelance/{id:' . $fourniss . '+}', PopupDocFournisseurController::class, 'Fournisseur.DocFournisseur.PopupRelance');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/listehisto', PopupDocFournisseurController::class, 'Fournisseur.DocFournisseur.listeHisto');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/suiviRelance', PopupDocFournisseurController::class, 'Fournisseur.DocFournisseur.suiviRelance');

        $router->get($base_url . '/document/{id:' . $fourniss . '+}/{noOrdre:' . $fourniss . '+}/supprimer', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.supprimer');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/sansObjet/{cat:' . $underscore . '+}[/{noOrdre:' . $noOrdre . '+}]', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.sansObjet');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/relance', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.relance');

        $router->get($base_url . '/{id:' . $fourniss . '+}/document/{ordre:' . $noOrdre . '+}/downloadFichier', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.downloadFichier');
        $router->get($base_url . '/{id:' . $fourniss . '+}/document/{ordre:' . $noOrdre . '+}/downloadFichierHisto', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.downloadFichierHisto');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/download', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.download');
        $router->get($base_url . '/document/{id:' . $fourniss . '+}/attestation', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.downloadAttestation');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** évaluation **/

        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}', EvaluationController::class, 'Fournisseur.Evaluation.evaluation');
        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}/{campagne:' . $camagne . '+}/listeNoteur', EvaluationController::class, 'Fournisseur.Evaluation.listeNoteur');
        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}/{campagne:' . $camagne . '+}/radarPerformance', EvaluationController::class, 'Fournisseur.Evaluation.radarPerf');
        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}/{campagne:' . $camagne . '+}/imprimer', EvaluationController::class, 'Fournisseur.Evaluation.imprimer');

        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}/{campagne:' . $camagne . '+}/resultat', EvaluationController::class, 'Fournisseur.Evaluation.resultat');
        $router->get($base_url . '/evaluation/{id:' . $fourniss . '+}/{campagne:' . $camagne . '+}/export', EvaluationController::class, 'Fournisseur.Evaluation.exportNoteur');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Historique **/

        $router->get($base_url . '/facture/{id:' . $fourniss . '+}', FactureController::class, 'Fournisseur.Facture.facture');
        $router->get($base_url . '/ajax-facture/{id:' . $facture . '+}', FactureController::class, 'Fournisseur.Facture.ajaxFacture');
        $router->get($base_url . '/exportFacture/{id:' . $fourniss . '+}', FactureController::class, 'Fournisseur.Facture.exportFactureCSV');

        /* commande */
        $router->get($base_url . '/commande/{id:' . $fourniss . '+}', CommandeController::class, 'Fournisseur.Commande.commande');
        $router->get($base_url . '/exportCommande/{id:' . $fourniss . '+}', CommandeController::class, 'Fournisseur.Commande.exportCommandeCSV');

        $router->get($base_url . '/commande/{idCommande:' . $commande . '+}/impressionCde', CommandeController::class, 'Fournisseur.Commande.impressionCde');
        /* ****** */

        $router->get($base_url . '/notation/{id:' . $fourniss . '+}', NotationController::class, 'Fournisseur.Notation.notation');
        $router->get($base_url . '/notation/{id:' . $fourniss . '+}/{annee:' . $annee . '+}', NotationController::class, 'Fournisseur.Notation.visualisationNotation');
        $router->get($base_url . '/notation/editions/{id:' . $fourniss . '+}/{annee:' . $annee . '+}', NotationController::class, 'Fournisseur.Notation.editionsNotation');
        $router->get($base_url . '/notation/radar-performance/{id:' . $fourniss . '+}/{annee:' . $annee . '+}', NotationController::class, 'Fournisseur.Notation.radarPerfFournisseur');
        $router->get($base_url . '/notationAjax/{id:' . $fourniss . '+}/{annee:' . $annee . '+}/{critere:' . $global . '+}', NotationController::class, 'Fournisseur.Notation.ajaxNotation');
        $router->get($base_url . '/notation/oxalys/{id:' . $fourniss . '+}/popup', NotationController::class, 'Fournisseur.Notation.popUpNotationOxalys');
        $router->get($base_url . '/notation/oxalys/{id:' . $fourniss . '+}/ajax', NotationController::class, 'Fournisseur.Notation.ajaxNotationOxalys');


        $router->get($base_url . '/historique/PopupStatsIncident/{id:' . $fourniss . '+}', PopupHistoriqueController::class, 'Fournisseur.popupHistorique.popupStatsIncident');
        $router->get($base_url . '/historique/ajaxStatsIncidents/{id:' . $fourniss . '+}', PopupHistoriqueController::class, 'Fournisseur.popupHistorique.statsIncident');

        /*
         * MODULE FOU (fournisseur)
         * MODULE GFO (groupement fournisseur)
         */
        $router->get($container->get('baseUrl') . '{MODULE:[A-Za-z0-9]+}/reponseAO/{id:' . $fourniss . '+}[/{article:' . $article . '+}]', ReponseAOController::class, 'Fournisseur.ReponseAO.reponseAO');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Interactions **/

        $router->get($base_url . '/interactions/{id:' . $fourniss . '+}', InteractionsController::class, 'Fournisseur.Interactions.interactions');

        /* interaction lié au WF */
        /* Mots clef  */
        $router->get($base_url . '/motclefs/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', MotsClefInteractionController::class, 'Fournisseur.motsClefInteraction.motsClef');
        $router->get($base_url . '/export/motsClef/{id:' . $fourniss . '+}', MotsClefInteractionController::class, 'Fournisseur.motsClefInteraction.exportMotsClef');




        /* Attestation */
        $router->get($base_url . '/attestations/{id:' . $fourniss . '+}', AttestationsFournisseurController::class, 'Fournisseur.AttestationsFournisseur.Attestations');
        $router->get($base_url . '/attestations/creationatt/{id:' . $fourniss . '+}', CreationAttestationsFournisseurController::class, 'Fournisseur.CreationAttestationsFournisseur.CreationAttestations');
        $router->get($base_url . '/Attestations/modification/{id:' . $fourniss . '+}/{attestation:' . $global . '+}', ModificationAttestationsFournisseurController::class, 'Fournisseur.ModificationAttestationsFournisseur.ModificationAttestations');

        $router->get($base_url . '/Attestation/export/{id:' . $fourniss . '+}', AttestationsFournisseurController::class, 'Fournisseur.AttestationsFournisseur.exportAttestations');

        $router->get($base_url . '/Attestation/ajax/Suppresion/{id:' . $fourniss . '+}/{attestation:' . $global . '+}', AttestationsFournisseurController::class, 'Fournisseur.AttestationsFournisseur.ajaxSuppresionAttestation');
        $router->get($base_url . '/Attestation/Popup/ConfirmationSuppresion/{id:' . $fourniss . '+}', AttestationsFournisseurController::class, 'Fournisseur.AttestationsFournisseur.popupConfirmationSuppression');

        $router->get($base_url . '/Attestation/ajax/decisionAdmin', CreationAttestationsFournisseurController::class, 'Fournisseur.AttestationsFournisseur.decisionAdmin');

        /* Attestation  visa global */
        $router->get($base_url . '/attestationsVisaGlobal/{id:' . $fourniss . '+}', AttestationsVisaGlobalFournisseurController::class, 'Fournisseur.AttestationsFournisseurVisaGlobal.AttestationsVisaGlobal');
        $router->get($base_url . '/AttestationVisaGlobal/export/{id:' . $fourniss . '+}', AttestationsVisaGlobalFournisseurController::class, 'Fournisseur.AttestationsVisaGlobalFournisseur.exportAttestations');

        /* sous-famille Interaction */
        $router->get($base_url . '/sousFamille/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', SousFamilleInteractionController::class, 'Fournisseur.SousFamilleInteraction.sousFamille');
        $router->get($base_url . '/export/sousFamille/{id:' . $fourniss . '+}', SousFamilleInteractionController::class, 'Fournisseur.SousFamilleInteraction.exportSousFamille');

        /* Condition général */
        $router->get($base_url . '/conditionGeneral/{id:' . $fourniss . '+}', ConditionGeneralController::class, 'Fournisseur.ConditionGeneral.cg');
        $router->get($base_url . '/conditionGeneral/export/{id:' . $fourniss . '+}', ConditionGeneralController::class, 'Fournisseur.ConditionGeneral.exportCg');

        /* Type d'achat */
        $router->get($base_url . '/typeAchat/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', TypeAchatInteractionController::class, 'Fournisseur.TypeAchatInteraction.achat');
        $router->get($base_url . '/export/TypeAchat/{id:' . $fourniss . '+}', TypeAchatInteractionController::class, 'Fournisseur.TypeAchatInteraction.exportAchat');

        /*Centre emetteur */
        $router->get($base_url . '/centreEmetteur/{id:' . $fourniss . '+}', CentreEmetteurController::class, 'Fournisseur.CentreEmetteur.centreEmetteur');
        $router->get($base_url . '/centreEmetteur/creation/{id:' . $fourniss . '+}', CentreEmetteurController::class, 'Fournisseur.CentreEmetteur.creationCentreEmetteur');
        $router->get($base_url . '/centreEmetteur/Modification/{id:' . $fourniss . '+}/{centre:' . $centre . '+}', CentreEmetteurController::class, 'Fournisseur.CentreEmetteur.modificationCentreEmetteur');
        $router->get($base_url . '/centreEmetteur/suppresion/{id:' . $fourniss . '+}/{centre:' . $centre . '+}', CentreEmetteurController::class, 'Fournisseur.CentreEmetteur.suppresionCentreEmetteur');

        $router->get($base_url . '/centreEmetteur/exportCSV/{id:' . $fourniss . '+}', CentreEmetteurController::class, 'Fournisseur.CentreEmetteur.exportCE');

        /* Zone geo */
        $router->get($base_url . '/zoneGeographique/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', ZoneGeoInteractionController::class, 'Fournisseur.ZoneGeoInteraction.ZoneGeoInteraction');
        $router->get($base_url . '/export/zoneGeographique/{id:' . $fourniss . '+}', ZoneGeoInteractionController::class, 'Fournisseur.ZoneGeoInteraction.exportZoneGeo');

        $router->get($base_url . '/ZoneGeoAdresse/{id:' . $fourniss . '+}/{codeAdresse:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', ZoneGeoInteractionController::class, 'Fournisseur.ZoneGeoInteraction.ZoneGeoAdresse');

        /** société */
        //Fournisseur.societe.popupSociete
        $router->get($base_url . '/societe/liste/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', SocieteController::class, 'Fournisseur.societe.societe');
        $router->get($base_url . '/societe/creation/ajout[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', SocieteController::class, 'Fournisseur.societe.popupAjoutSociete');

        $router->get($base_url . '/AjaxAjout/societe[/typeValidation/{type:' . $underscore . '+}]', SocieteController::class, 'Fournisseur.societe.ajaxAjoutSociete');

        $router->get($base_url . '/ajaxSuppresion/societe[/typeValidation/{type:' . $underscore . '+}/{div:' . $underscore . '+}]', SocieteController::class, 'Fournisseur.societe.ajaxSuppresionSociete');

        $router->get($base_url . '/ajax-societe-tableau[/typeValidation/{type:' . $underscore . '+}]', SocieteController::class, 'Fournisseur.societe.ajaxTableauSociete');



        /* Distribuees */
        $router->get($base_url . '/distribuees/{id:' . $fourniss . '+}', DistribueesController::class, 'Fournisseur.Distribuees.distribuees');
        $router->get($base_url . '/distribuees/creation/{id:' . $fourniss . '+}', DistribueesController::class, 'Fournisseur.Distribuees.creationDistribuees');
        $router->get($base_url . '/distribuees/modification/{id:' . $fourniss . '+}/{fabricant:' . $fabricant . '+}/{gamme:' . $gamme . '+}', DistribueesController::class, 'Fournisseur.Distribuees.modificationDistribuees');
        $router->get($base_url . '/distribuees/suppresion/{id:' . $fourniss . '+}/{fabricant:' . $fabricant . '+}/{gamme:' . $gamme . '+}', DistribueesController::class, 'Fournisseur.Distribuees.suppresionDistribuees');

        $router->get($base_url . '/ajax-detailDistribuees/{id:' . $fourniss . '+}/{codeFabr:' . $fabricant . '+}/{codeGamme:' . $gamme . '+}', DistribueesController::class, 'Fournisseur.Distribuees.listeDetailDistribuees');

        /*EDIT ROUTAGE */
        $router->get($base_url . '/editRoutage/{id:' . $fourniss . '+}[/{codeDemande:' . $codeDemande . '+}]', EdiRoutageInteractionController::class, 'Fournisseur.EdiRoutageInteraction.EdiRoutageInteraction');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** short liste **/

        $router->get($container->get('baseUrl') . $container->get('ShortList.prefix'), GestionShortListController::class, 'Fournisseur.GestionShortList.gestionShortList');
        $router->get($container->get('baseUrl') . $container->get('ShortList.prefix') . '/exportshortList', GestionShortListController::class, 'Fournisseur.GestionShortList.exportShortList');
        $router->get($container->get('baseUrl') . $container->get('ShortList.prefix') . '/suppression/{code:' . $global . '+}', GestionShortListController::class, 'Fournisseur.GestionShortList.suppressionShortList');
        $router->get($container->get('baseUrl') . $container->get('ShortList.prefix') . '/creation', GestionShortListController::class, 'Fournisseur.GestionShortList.creationShortList');
        $router->get($container->get('baseUrl') . $container->get('ShortList.prefix') . '/modification/{idSL:' . $global . '+}', GestionShortListController::class, 'Fournisseur.GestionShortList.modificationShortList');
        $router->get($basePath . '/import', GestionShortListController::class, 'Fournisseur.GestionShortList.importFournisseurShortList');
        $router->get($basePath . '/ajax/import', GestionShortListController::class, 'Fournisseur.GestionShortList.ajaxImportFournisseurShortList');
        $router->get($basePath . '/ajax/recapImport', GestionShortListController::class, 'Fournisseur.GestionShortList.recapImport');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Articles **/

        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}', ArticlesController::class, 'Fournisseur.Articles.articles');
        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/document/{id:' . $split . '+}', DocumentArticlesController::class, 'Fournisseur.DocumentArticles.documentArticlesFournisseur');
        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $article . '+}/export', ArticlesController::class, 'Fournisseur.Articles.exportArticleFG');

        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/accordCadre/{id:' . $fourniss . '+}/{article:' . $article . '+}', AccordCadreArticlesController::class, 'Fournisseur.AccordCadreArticles.accordCadre');

        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}/{article:' . $article . '+}/ordrePreference', PopupArticleController::class, 'Fournisseur.PopupArticles.ordreArticle');
        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}/{article:' . $article . '+}/prixArticle', PopupArticleController::class, 'Fournisseur.PopupArticles.tarifArticle');

        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}/creation[/{article:' . $article . '+}]', CreationArticleFGController::class, 'Fournisseur.CreationArticleFG.creation');
        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}/{article:' . $article . '+}/modification', ModificationArticleFGController::class, 'Fournisseur.CreationArticleFG.modification');
        $router->get($container->get('baseUrl') . '{MODULE:' . $MODULE . '+}/articles/{id:' . $fourniss . '+}/{article:' . $article . '+}/suppresion', ArticlesController::class, 'Fournisseur.Articles.deleteArticleGF');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Groupement **/

        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix'), GestionGroupementController::class, 'Fournisseur.GestionGroupement.index');
        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/fiche/{idGrp:' . $groupement . '+}', GestionGroupementController::class, 'Fournisseur.GestionGroupement.ficheGroupement');
        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/export', GestionGroupementController::class, 'Fournisseur.GestionGroupement.exportListeGroupementCSV');

        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/creation', CreationGroupementController::class, 'Fournisseur.GestionGroupement.nouveauGroupement');
        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/creation/ajax-contact', CreationGroupementController::class, 'Fournisseur.GestionGroupement.erreurContactSuppl');

        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/interaction/{idGrp:' . $groupement . '+}', GestionGroupementController::class, 'Fournisseur.GestionGroupement.interaction');
        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/fournisseur/{idGrp:' . $groupement . '+}', GestionGroupementController::class, 'Fournisseur.GestionGroupement.fournisseurSecondaire');

        $router->get($container->get('baseUrl') . $container->get('Groupement.prefix') . '/rattacher/{idFou:' . $fourniss . '+}/{idGrp:' . $groupement . '+}', RattacherGroupementController::class, 'Fournisseur.GestionGroupement.rattacher');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Trash **/

        //  $router->get($base_url.'/fiche/statistique',  FournisseurController::class, 'Fournisseur.Fournisseur.statistique');
        $router->get($base_url . '/statistique/{id:' . $fourniss . '+}', FournisseurController::class, 'Fournisseur.Fournisseur.statistique');

        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Evenement **/

        $router->get($base_url . '/{id:' . $fourniss . '+}/event', FournisseurEventController::class, 'Fournisseur.Fournisseur.suivi');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/nouveau', FournisseurEventController::class, 'Fournisseur.Fournisseur.ajoutEvenement');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/{numOrdre:' . $global . '+}/suppresion', FournisseurEventController::class, 'Fournisseur.Fournisseur.suppressionEvent');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/{numOrdre:' . $global . '+}/modification', FournisseurEventController::class, 'Fournisseur.Fournisseur.modificationtEvenement');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/factureEnvoyee', FournisseurEventController::class, 'Fournisseur.Fournisseur.factureEnvoyee');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/{numOrdre:' . $global . '+}/showPdfFacture', FournisseurEventController::class, 'Fournisseur.Fournisseur.showPdfFacture');
        $router->get($base_url . '/{id:' . $fourniss . '+}/event/export', FournisseurEventController::class, 'Fournisseur.Event.export');
    
    
        /** */
        $router->get($base_url . '/{id:' . $fourniss . '+}/recap', RecapFournisseurController::class, 'Fournisseur.RecapFournisseur.index');
    }
}
