<?php
namespace Modules\Consultation;

use Modules\Consultation\Controller\ConsultationArticlesImportController;
use Modules\Consultation\Controller\ConsultationEditController;
use Modules\Consultation\Controller\ConsultationEventController;
use Modules\Consultation\Controller\ContributorController;
use Modules\Consultation\Controller\ExportComparatifController;
use Modules\Consultation\Controller\ImportContributeurController;
use Modules\Consultation\Controller\ImportExcelController;
use Modules\Consultation\Controller\MailBatchController;
use Modules\Consultation\Controller\QuestionReponseController;
use Modules\Consultation\Controller\RelanceContribController;
use Modules\Consultation\Controller\RelanceFourController;
use Skeleton\Router;
use Skeleton\Module;
use Psr\Container\ContainerInterface;
use Skeleton\Renderer\RendererInterface;
use Helpers\Parametres\Parametres;
use Modules\Consultation\Controller\GestionConsultationController;
use Modules\Consultation\Controller\ReferencementAOController;
use Modules\Consultation\Controller\ConsultationController;
use Modules\Consultation\Controller\PiecesJointesController;
use Modules\Consultation\Controller\ClauseController;
use Modules\Consultation\Controller\ArticlesController;
use Modules\Consultation\Controller\ConsultationPanierController;
use Modules\Consultation\Controller\DocAttenduController;
use Modules\Consultation\Controller\SaisieReponsesController;
use Modules\Consultation\Controller\SaisieReponsesPJController;
use Modules\Consultation\Controller\SaisieReponsesQstController;
use Modules\Consultation\Controller\AjoutFournisseurController;
use Modules\Consultation\Controller\ChoixFournisseurController;
use Modules\Consultation\Controller\ExportExcelController;
use Modules\Consultation\Controller\GroupOfContributorsController;
use Modules\Consultation\Controller\ImportDocumentController;
use Modules\Consultation\Controller\IndicateurConsultationController;

class ConsultationModule extends Module
{
    const DEFINITIONS = __DIR__ . '/config.php';

    public function __construct(ContainerInterface $container)
    {
        $container->get(RendererInterface::class)->addPath('Consultation', __DIR__ . '/views');
        
        $router = $container->get(Router::class);
        
        $parametres = new Parametres();
        $global     = $parametres->expression_global;
        $ao   = $parametres->id_commande;
        $fournisseur = $parametres->id_fournisseur;
        $numeric = $parametres->expression_decimal;
        $bool = $parametres->expression_bool;

        $noOrdre = $parametres->ordre_document;
        $id_document = $parametres->expresion_seperator;
        $base_url = $container->get('baseUrl') . $container->get('Consultation.prefix');
        
        /** Gestion consultations **/
        $router->get($base_url. '[/filtre/{filtre:'.$global.'+}]', GestionConsultationController::class, 'Consultation.GestionConsultation.index');
        $router->get($base_url. '/ajax/detailEntete/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxDetailEntete');
        $router->get($base_url. '/popup/ListeFournisseur/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.popupListeFournisseur');
        $router->get($base_url. '/popup/transfere/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.popupTransfere');
        $router->get($base_url. '/ajax/transfere/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxTransfere');
        $router->get($base_url. '/ajax/valider/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxValider');
        $router->get($base_url. '/ajax/confirmationValidate/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.confirmationValidate');
        $router->get($base_url. '/ajax/devalider/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxDevalider');
        $router->get($base_url. '/ajax/DevaliderSelectFrs/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxDevaliderSelectFrs');
        $router->get($base_url. '/ajax/impression/{idAO:'.$ao.'+}/{tousFournisseur:'.$ao.'+}[/{typeFG:'.$ao.'+}/{codeFrs:'.$ao.'+}]', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxImpression');
        
        $router->get($base_url. '/{ao:'.$ao.'+}/popupExport', ExportComparatifController::class, 'Consultation.ExportTableau.popupExportComparatif');
        $router->get($base_url. '/{ao:'.$ao.'+}/export-comparatif', ExportComparatifController::class, 'Consultation.ExportTableau.exportComparatif');
        
        $router->get($base_url. '/envoyer/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.envoyer');
        $router->get($base_url. '/ajax/envoie/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxEnvoie');
        $router->get($base_url. '/popup/CommunicationFournisseur/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.popupCommunicationFournisseur');
        $router->get($base_url. '/ajout/CommunicationFournisseur/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.envoieEmailCommunicationFournisseur');
        $router->get($base_url. '/creerPanier/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.creerPanier');
        $router->get($base_url. '/ajax/creerPanier/{idAO:'.$ao.'+}', GestionConsultationController::class, 'Consultation.GestionConsultation.ajaxCreerPanier');
        $router->get($base_url. '/popup/export', GestionConsultationController::class, 'Consultation.GestionConsultation.popupExport');
        $router->get($base_url. '/export', GestionConsultationController::class, 'Consultation.GestionConsultation.export');
        
        /** Consultation **/
        $router->get($base_url. '/creatEdit/{idAO:'.$ao.'+}[/{origine:'.$global.'+}/{idOrigine:'.$global.'+}]', ConsultationEditController::class, 'Consultation.Consultation.creatEdit');
        $router->get($base_url. '/ajax/update-center', ConsultationEditController::class, 'Consultation.Consultation.ajaxUpdateCenter');
        $router->get($base_url. '/validate/{idAO:'.$ao.'+}[/{origine:'.$global.'+}/{idOrigine:'.$global.'+}]', ConsultationEditController::class, 'Consultation.Consultation.validation');
        
        $router->get($base_url. '/details/{idAO:'.$ao.'+}[/{onglet:'.$global.'+}]', ConsultationController::class, 'Consultation.Consultation.details');
        $router->get($base_url. '/ajax/UpdateComp/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.ajaxUpdateComp');
        $router->get($base_url. '/ajax/UpdateEmailAuto/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.ajaxUpdateEmailAuto');
        $router->get($base_url. '/delete/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.delete');
        $router->get($base_url. '/cloture/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.cloture');
        $router->get($base_url. '/popup/blocNote/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.popupBlocNote');
        $router->get($base_url. '/popup/StepBar/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', ConsultationController::class, 'Consultation.Consultation.popupStepBar');
        $router->get($base_url. '/popup/UpdateDate/{idAO:'.$ao.'+}', ConsultationController::class, 'Consultation.Consultation.popupUpdateDate');
        $router->get($base_url. '/{idAO:'.$ao.'+}/envoie-info-dem', ConsultationController::class, 'Consultation.Consultation.delegToDem');

        /** gestion contributeurs */
        $router->get($base_url. '/contributor/index/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.index');
        $router->get($base_url. '/contributor/contributorsListForRfx/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.contributorsListForRfx');
        $router->get($base_url. '/contributor/validateNewContributors/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.validateNewContributors');
        $router->get($base_url. '/contributor/removeContributorFromRfx/{idAO:'.$ao.'+}/{contributor:'.$global.'+}', ContributorController::class, 'Consultation.Contributor.removeContributorFromRfx');
        $router->get($base_url. '/contributor/confirmedContributorRemoval/{idAO:'.$ao.'+}/{contributor:'.$global.'+}', ContributorController::class, 'Consultation.Contributor.confirmedContributorRemoval');
        $router->get($base_url. '/contributor/contributorsListForGroup/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.contributorsListForGroup');
        $router->get($base_url. '/contributor/getContributorPeriod/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.getContributorPeriod');
        $router->get($base_url. '/contributor/setContributorPeriod/{idAO:'.$ao.'+}', ContributorController::class, 'Consultation.Contributor.setContributorPeriod');
        $router->get($base_url. '/groupOfContributors/index/{idAO:'.$ao.'+}', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.index');
        $router->get($base_url. '/groupOfContributors/creatEdit/{idAO:'.$ao.'+}', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.creatEdit');
        $router->get($base_url. '/groupOfContributors/validate/{idAO:'.$ao.'+}[/{group:'.$global.'+}]', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.validate');
        $router->get($base_url. '/groupOfContributors/delete/{idAO:'.$ao.'+}/{group:'.$global.'+}', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.delete');
        $router->get($base_url. '/groupOfContributors/confirmedDelete/{idAO:'.$ao.'+}/{group:'.$global.'+}', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.confirmedDelete');
        $router->get($base_url. '/groupOfContributors/addContributorToGroup/{idAO:'.$ao.'+}', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.addContributorToGroup');
        $router->get($base_url. '/groupOfContributors/removeContributorFromGroup/{idAO:'.$ao.'+}/{group:'.$global.'+}[/{contributor:'.$global.'+}]', GroupOfContributorsController::class, 'Consultation.GroupOfContributors.removeContributorFromGroup');
        
        $router->get($base_url. '/import-contributeur/contributors-import-index/{idAO:'.$ao.'+}', ImportContributeurController::class, 'Consultation.ImportContributeur.contributorsImportIndex');
        $router->get($base_url. '/import-contributeur/contributors-import/{idAO:'.$ao.'+}', ImportContributeurController::class, 'Consultation.ImportContributeur.contributorsImport');
        $router->get($base_url. '/import-contributeur/contributors-import-summary/{idAO:'.$ao.'+}', ImportContributeurController::class, 'Consultation.ImportContributeur.contributorsImportSummary');

        /** Event */
        $router->get($base_url. '/{id:'.$ao.'+}/event[/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}]', ConsultationEventController::class, 'Consultation.Event.suivi');
        $router->get($base_url. '/{id:'.$ao.'+}/event/export', ConsultationEventController::class, 'Consultation.Event.export');

        /** consultation depuis le panier **/
        $router->get($base_url. '/panier/creatEdit[/{mode:'.$global.'+}]', ConsultationPanierController::class, 'Consultation.ConsultationPanier.creatEdit');
        $router->get($base_url. '/panier/validate', ConsultationPanierController::class, 'Consultation.ConsultationPanier.validate');
        $router->get($base_url. '/panier/popup/addFrs', ConsultationPanierController::class, 'Consultation.ConsultationPanier.popupAddFrs');
        $router->get($base_url. '/panier/ajax/AddFrs', ConsultationPanierController::class, 'Consultation.ConsultationPanier.ajaxAddFrs');
        $router->get($base_url. '/panier/ajax/checkNbFourniss', ConsultationPanierController::class, 'Consultation.ConsultationPanier.ajaxCheckNbFourniss');
        
        /** Ligne **/
        $router->get($base_url. '/Ligne/createEdit/{idAO:'.$ao.'+}[/{idLigne:'.$ao.'+}]', ArticlesController::class, 'Consultation.Articles.createEdit');
        $router->get($base_url. '/ajax/Ligne/changeArticle', ArticlesController::class, 'Consultation.Articles.ajaxChangeArticle');
        $router->get($base_url. '/ajax/Ligne/changeGamme', ArticlesController::class, 'Consultation.Articles.ajaxChangeGamme');
        $router->get($base_url. '/ajax/Ligne/changeDA', ArticlesController::class, 'Consultation.Articles.ajaxChangeDA');
        $router->get($base_url. '/ajax/Ligne/changementSurLigne', ArticlesController::class, 'Consultation.Articles.ajaxChangementSurLigne');
        $router->get($base_url. '/Ligne/validate/{idAO:'.$ao.'+}[/{idLigne:'.$ao.'+}]', ArticlesController::class, 'Consultation.Articles.validate');
        $router->get($base_url. '/Ligne/delete/{idAO:'.$ao.'+}/{idLigne:'.$ao.'+}', ArticlesController::class, 'Consultation.Articles.delete');
        $router->get($base_url. '/suppressionMultiLignes/{idAO:'.$ao.'+}', ArticlesController::class, 'Consultation.Articles.suppressionMultiLignes');
        
        $router->get($base_url. '/Ligne/listeLigneDaImport/{idAO:'.$ao.'+}', ArticlesController::class, 'Consultation.Articles.listeLigneDaImport');
        $router->get($base_url. '/Ligne/ajax/AddArticle/{idAO:'.$ao.'+}', ArticlesController::class, 'Consultation.Articles.ajaxAddArticle');
        
        $router->get($base_url. '/Ligne/ajaxUpdateAPRIX/{idAO:'.$ao.'+}', ArticlesController::class, 'Consultation.Articles.ajaxUpdateAPRIX');
        $router->get($base_url. '/{idAO:'.$ao.'+}/article/form-import', ConsultationArticlesImportController::class, 'Consultation.Articles.formImport');
        $router->get($base_url. '/{idAO:'.$ao.'+}/article/import', ConsultationArticlesImportController::class, 'Consultation.Articles.import');
        
        /** choix fournisseur **/
        $router->get($base_url. '/listeFournisseur/{idAO:'.$ao.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.listeFournisseur');
        $router->get($base_url. '/ajoutFournisseur/{idAO:'.$ao.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajoutFournisseur');
        $router->get($base_url. '/editFournisseur/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}[/{changeContact:'.$global.'+}]', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.editFournisseur');
        $router->get($base_url. '/deleteFournisseur/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.deleteFournisseur');
        $router->get($base_url. '/ajax/UpdateAdresse/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxUpdateAdresse');
        $router->get($base_url. '/ajax/UpdateContact/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxUpdateContact');
        $router->get($base_url. '/ajax/UpdateMultiContact/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxUpdateMultiContact');
        $router->get($base_url. '/ajax/deleteContact/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}[/{numOrdre:'.$global.'+}]', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.deleteContact');

        $router->get($base_url. '/popup/CreateEditAccord/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}/{mode:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.popupCreateEditAccord');
        $router->get($base_url. '/ajax/DeleteAccord/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxDeleteAccord');
        $router->get($base_url. '/ajax/ValiderAccord/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxValiderAccord');
        $router->get($base_url. '/ajax/RefuserAccord/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.ajaxRefuserAccord');
        $router->get($base_url. '/popup/RefuserAccord/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.popupRefuserAccord');
        $router->get($base_url. '/accordConf/downloadFichier/{idAO:'.$ao.'+}/{idFrs:'.$fournisseur.'+}/{typeFG:'.$fournisseur.'+}', AjoutFournisseurController::class, 'Consultation.AjoutFournisseur.downloadFichier');

        
        /** Pieces jointes **/
        $router->get($base_url. '/PJ/create/{idAO:'.$ao.'+}', PiecesJointesController::class, 'Consultation.PJ.create');
        $router->get($base_url. '/PJ/edit/{idAO:'.$ao.'+}/{noOrdre:'.$global.'+}', PiecesJointesController::class, 'Consultation.PJ.edit');
        $router->get($base_url. '/PJ/delete/{idAO:'.$ao.'+}/{numOrdre:'.$global.'+}', PiecesJointesController::class, 'Consultation.PJ.delete');
        
        /** Clause **/
        $router->get($base_url. '/Clause/create/{idAO:'.$ao.'+}[/{noOrdre:'.$global.'+}]', ClauseController::class, 'Consultation.Clause.creatEdit');
        $router->get($base_url. '/Clause/validate/{idAO:'.$ao.'+}[/{noOrdre:'.$global.'+}]', ClauseController::class, 'Consultation.Clause.validate');
        $router->get($base_url. '/Clause/delete/{idAO:'.$ao.'+}/{noOrdre:'.$global.'+}', ClauseController::class, 'Consultation.Clause.delete');
        
        /** doc attendu **/
        $router->get($base_url. '/DocAttendu/create/{idAO:'.$ao.'+}[/{noOrdre:'.$global.'+}]', DocAttenduController::class, 'Consultation.DocAttendu.creatEdit');
        $router->get($base_url. '/DocAttendu/validate/{idAO:'.$ao.'+}[/{noOrdre:'.$global.'+}]', DocAttenduController::class, 'Consultation.DocAttendu.validate');
        $router->get($base_url. '/DocAttendu/delete/{idAO:'.$ao.'+}/{noOrdre:'.$global.'+}', DocAttenduController::class, 'Consultation.DocAttendu.delete');
        $router->get($base_url. '/ajax/DocAttendu/changeCtrlDossierFournisseur/{idAO:'.$ao.'+}', DocAttenduController::class, 'Consultation.DocAttendu.ajaxChangeCtrlDossierFournisseur');
        
        /** Import document **/
        $router->get($base_url. '/importDocument/liste/{idAO:'.$ao.'+}[/{mode:'.$global.'+}]', ImportDocumentController::class, 'Consultation.ImportDocument.listeDocument');
        $router->get($base_url. '/importDocument/Document/{idSource:'.$id_document.'+}/{noOrder:'.$noOrdre.'+}/duplicate/{idDestination:'.$id_document.'+}', ImportDocumentController::class, 'Consultation.ImportDocument.ajaxImportDoc');

        /** Saise des reponses **/
        /* Entête */
        $router->get($base_url. '/reponse/createEdit/entete/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}[/{idRep:'.$global.'+}/{CV:'.$global.'+}]', SaisieReponsesController::class, 'Consultation.SaisieReponses.createEditEntet');
        $router->get($base_url. '/reponse/validate/entete/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}[/{idRep:'.$global.'+}/{CV:'.$global.'+}]', SaisieReponsesController::class, 'Consultation.SaisieReponses.validateEntete');
        
        $router->get($base_url. '/reponse/delete/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.deleteReponse');
        /* Ligne article */
        $router->get($base_url. '/reponse/ligne/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.listeLigne');
        $router->get($base_url. '/reponse/saisie/ajax/InformationLigne/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}/{idLigne:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.ajaxInformationLigne');
        $router->get($base_url. '/reponse/saisie/ajax/UpdateValue/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.ajaxUpdateValue');
        $router->get($base_url. '/reponse/saisie/ajax/addVariante/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}/{idLigne:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.addVariante');
        $router->get($base_url. '/reponse/saisie/ajax/deleteVariante/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}/{idLigne:'.$global.'+}/{idVariant:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.deleteVariant');
        $router->get($base_url. '/reponse/validateReponse/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.validateReponse');
        $router->get($base_url. '/reponse/devalidateReponse/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesController::class, 'Consultation.SaisieReponses.devalidateReponse');
        
        /* Piece-jointe & document attendu */
        $router->get($base_url. '/reponse/pj/{typeDoc:'.$global.'+}/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesPJController::class, 'Consultation.SaisieReponsesPJ.listePJ');
        $router->get($base_url. '/reponse/pj/createEdit/{typeDoc:'.$global.'+}/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}[/{ordre:'.$global.'+}]', SaisieReponsesPJController::class, 'Consultation.SaisieReponsesPJ.createEdit');
        $router->get($base_url. '/reponse/pj/validate/{typeDoc:'.$global.'+}/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}[/{ordre:'.$global.'+}]', SaisieReponsesPJController::class, 'Consultation.SaisieReponsesPJ.validate');
        $router->get($base_url. '/reponse/pj/downloadFichier/{typeDoc:'.$global.'+}/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}/{ordre:'.$global.'+}', SaisieReponsesPJController::class, 'Consultation.SaisieReponsesPJ.downloadFichier');
        $router->get($base_url. '/reponse/pj/delete/{typeDoc:'.$global.'+}/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}/{ordre:'.$global.'+}', SaisieReponsesPJController::class, 'Consultation.SaisieReponsesPJ.delete');
        
        /* questionnaire */
        $router->get($base_url. '/reponse/questionnaire/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesQstController::class, 'Consultation.SaisieReponsesQst.questionnaire');
        $router->get($base_url. '/reponse/questionnaireContrib/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesQstController::class, 'Consultation.SaisieReponsesQst.questionnaireContrib');
        $router->get($base_url. '/reponse/questionnaire/ajax/UpdateValue/{idAO:'.$ao.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{idRep:'.$global.'+}/{CV:'.$global.'+}', SaisieReponsesQstController::class, 'Consultation.SaisieReponsesQst.ajaxUpdateValue');
        
        
        /** Choix du fournisseur **/
        $router->get($base_url. '/choixFournisseur/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.choixFrs');
        $router->get($base_url. '/ajax/UpdateSelection/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxUpdateSelection');
        $router->get($base_url. '/popupEmailAutoChoixFournisseur/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.popupEmailAutoChoixFournisseur');
        $router->get($base_url. '/validateChoixFrs/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.validateChoixFrs');
        $router->get($base_url. '/ajax/resetChoix/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxResetChoix');
        $router->get($base_url. '/popup/ShowDetails/{idAO:'.$ao.'+}/{idLigne:'.$ao.'+}/{idRep:'.$global.'+}/{typeFG:'.$fournisseur.'+}/{idFrs:'.$fournisseur.'+}/{CV:'.$global.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.popupShowDetails');
        $router->get($base_url. '/choixFournisseurWithOutLigne/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.choixFrsWithOutLigne');
        $router->get($base_url. '/analyseFournisseurs/export/{idAO:'.$ao.'+}/{type:'.$global.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.export');
        $router->get($base_url. '/choix-fournisseur/answer-questionnaire-contributor/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.answerContributorQuestionnaire');
        $router->get($base_url. '/choix-fournisseur/view-contributors-answers/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.viewContributorsAnswers');
        $router->get($base_url. '/choix-fournisseur/view-suppliers-answers/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.viewSuppliersAnswers');
        $router->get($base_url. '/choix-fournisseur/ajax-detail-contributors-answers/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxDetailContributorsAnswers');
        $router->get($base_url. '/choix-fournisseur/ajax-detail-supplier-questionnaire/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxDetailSupplierQuestionnaire');
        $router->get($base_url. '/choix-fournisseur/ajax-detail-contributor-questionnaire/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxDetailContributorQuestionnaire');
        $router->get($base_url. '/choix-fournisseur/ajax-contributor-questionnaire/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxContributorQuestionnaire');
        $router->get($base_url. '/choix-fournisseur/ajax-update-contributor-answer/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxUpdateContributorAnswer');
        $router->get($base_url. '/choix-fournisseur/ajax-details-contributors/{idAO:'.$ao.'+}', ChoixFournisseurController::class, 'Consultation.ChoixFournisseur.ajaxDetailsContributors');

        /** Referencement AO **/
        $router->get($base_url.'/referencementAO', ReferencementAOController::class, 'Consultation.ReferencementAO.index');
        $router->get($base_url.'/popupRefus/{codeTrait:'.$global.'+}', ReferencementAOController::class, 'Consultation.ReferencementAO.popupRefusAO');
        $router->get($base_url.'/accepterReferencementAO/{codeTrait:'.$global.'+}', ReferencementAOController::class, 'Consultation.ReferencementAO.accepterReferencementAO');
        $router->get($base_url.'/refuserReferencementAO/{codeTrait:'.$global.'+}', ReferencementAOController::class, 'Consultation.ReferencementAO.refuserReferencementAO');
    
        /** **/
        $router->get($base_url. '/generateExcel/{idForm:'.$ao.'+}', ExportExcelController::class, 'Consultation.ChoixFournisseur.generateExcel');

        $router->get($base_url. '/{idAO:'.$ao.'+}/popup-import-excel', ImportExcelController::class, 'Consultation.ImportExcel.popupImport');
        $router->get($base_url. '/{idAO:'.$ao.'+}/import-excel', ImportExcelController::class, 'Consultation.ImportExcel.import');
        //$router->get($base_url. '/test-readExcel', ImportExcelController::class, 'Consultation.ImportExcel.testImport');

        $router->get($base_url. '/indicateur', IndicateurConsultationController::class, 'Consultation.IndicateurConsultation.indicateur');

        $router->get($base_url. '/{idAO:'.$ao.'+}/relance-fournisseur', RelanceFourController::class, 'Consultation.RelanceFour.index');
        $router->get($base_url. '/{idAO:'.$ao.'+}/envoie-mail-relance', RelanceFourController::class, 'Consultation.RelanceFour.envoieMailRelance');

        $router->get($base_url. '/{idAO:'.$ao.'+}/relance-contrib', RelanceContribController::class, 'Consultation.RelanceContrib.index');
        $router->get(
            $base_url. '/{idAO:'.$ao.'+}/relance-contrib/envoie-mail-relance',
            RelanceContribController::class,
            'Consultation.RelanceContrib.envoieMailRelance'
        );


        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/listeQuestion[/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}]', QuestionReponseController::class, 'Consultation.QuestionReponse.listeQuestion');
        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/popup/documentQR/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}/{QR:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.popupDocumentQR');

        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/createEditQuestion/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}[/{idQst:'.$ao.'+}]', QuestionReponseController::class, 'Consultation.QuestionReponse.createEditQuestion');
        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/validateQuestion/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}[/{idQst:'.$ao.'+}]', QuestionReponseController::class, 'Consultation.QuestionReponse.validateQuestion');

        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/repondre/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.repondre');
        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/updateValue/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.updateValue');
        
        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/repondre/validate/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.validateReponse');

        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/delete/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.delete');
        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/envoieUnitaire/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}/{idQst:'.$ao.'+}', QuestionReponseController::class, 'Consultation.QuestionReponse.envoieUnitaire');

        $router->get($base_url. '/{idAO:'.$ao.'+}/QuestionReponse/envoieReponse[/{typeFG:'.$fournisseur.'+}/{idFrs:'.$ao.'+}]', QuestionReponseController::class, 'Consultation.QuestionReponse.envoieReponse');
    }
}
