<?php
namespace Modules\Fournisseur;

use Modules\Fournisseur\Controller\CreateEditFournisseurController;
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\SuiviFournisseurController;
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;
        $ao = $parametres->id_ao;
        $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.'/exportListeFournisseur', GestionFournisseurController::class, 'Fournisseur.GestionFournisseur.exportListeFournissCSV');
        $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');
        
/** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** creation/modification fournisseur **/
        /* init Creation frs initCreation */
        $router->get($base_url.'/creation/init', CreateEditFournisseurController::class, 'Fournisseur.CreateEditFournisseur.initCreation');
        $router->get($base_url.'/creation/init/ajax/pays', CreateEditFournisseurController::class, 'Fournisseur.CreateEditFournisseur.ajaxChangePays');

        /* 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/{simplie:'.$global.'+}', 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');
        
/** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** 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');
        
/** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** 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.'+}]', 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.'/document/{id:'.$fourniss.'+}/{ordre:'.$noOrdre.'+}/downloadFichier', AjaxDocFournisseurController::class, 'Fournisseur.DocFournisseur.downloadFichier');
        $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.'/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');
       
        /** ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ **/
        /** Suivi **/
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.suivi');
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}/nouveau', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.ajoutEvenement');
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}/{numOrdre:'.$global.'+}/suppresion', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.suppressionEvent');
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}/{numOrdre:'.$global.'+}/modification', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.modificationtEvenement');
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}/factureEnvoyee', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.factureEnvoyee');
        $router->get($base_url.'/suivi/{id:'.$fourniss.'+}/{numOrdre:'.$global.'+}/showPdfFacture', SuiviFournisseurController::class, 'Fournisseur.Fournisseur.showPdfFacture');
    }
}
