<?php
namespace Modules\Panier;

use Modules\Panier\Controller\ArticleController;
use Modules\Panier\Controller\ArticlePanierController;
use Modules\Panier\Controller\CommandeRegulController;
use Modules\Panier\Controller\ImportDevisController;
use Modules\Panier\Controller\ListePanierController;
use Modules\Panier\Controller\PanierController;
use Modules\Panier\Controller\TabBlocFrsController;
use Modules\Panier\Controller\ValidationPanierController;
use Skeleton\Router;
use Skeleton\Module;
use Psr\Container\ContainerInterface;
use Skeleton\Renderer\RendererInterface;
use Helpers\Parametres\Parametres;
use Modules\Panier\Controller\CentreLivraisonController;
use Modules\Panier\Controller\FournisseurController;
use Modules\Panier\Controller\GeneralPanierController;
use Modules\Panier\Controller\ImportLigneController;

class PanierModule extends Module
{

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

    public function __construct(ContainerInterface $container)
    {
        $container->get(RendererInterface::class)->addPath('Panier', __DIR__ . '/views');
        
        $router = $container->get(Router::class);
        
        $parametres = new Parametres();
        $global = $parametres->expression_global;

        $commande   = $parametres->id_commande;
        $MODULE = $parametres->MODULE;

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

        /** Parametrage **/

        $router->get($base_url.'', PanierController::class, 'Panier.Panier.index');
        $router->get($base_url.'/ajax/downloadDoc/{numDoc:'.$global.'+}/{idBlocFrs:'.$global.'+}', PanierController::class, 'Panier.Panier.ajaxDownloadDoc');
        $router->get($base_url.'/ajax/ChargeEclatementImpu', PanierController::class, 'Panier.Panier.ajaxChargeEclatementImpu');
        $router->get($base_url.'/ajax/ajoutLigneImputation', PanierController::class, 'Panier.Panier.ajaxAjoutLigneImputation');
        $router->get($base_url.'/ajax/deleteLigneImputation/{idImputation:'.$global.'+}', PanierController::class, 'Panier.Panier.ajaxDeleteLigneImputation');
        $router->get($base_url.'/ajax/updateValue', PanierController::class, 'Panier.Panier.updateValue');
        $router->get($base_url.'/popup/bonnePratique/{idBlocFrs:'.$global.'+}', PanierController::class, 'Panier.Panier.popupBonnePratique');
        $router->get($base_url.'/ajax/LoadArticle/{idLigne:'.$global.'+}[/{init:'.$global.'+}]', PanierController::class, 'Panier.Panier.ajaxLoadArticle');
        
        $router->get($base_url.'/waitingSoumission/{idTraitement:'.$global.'+}', PanierController::class, 'Panier.Panier.waitingSoumission');
        $router->get($base_url.'/waitingvalidationFinal/{idTraitement:'.$global.'+}', ValidationPanierController::class, 'Panier.validationPanier.waitingvalidationFinal');
        
        $router->get($base_url.'/transferePanier', PanierController::class, 'Panier.Panier.transferePanier');
        $router->get($base_url.'/popupSavePanier', PanierController::class, 'Panier.Panier.popupSavePanier');
        

        $router->get($base_url.'/soumission', PanierController::class, 'Panier.Panier.soumission');
        $router->get($base_url.'/validation', ValidationPanierController::class, 'Panier.validationPanier.validation');
        $router->get($base_url.'/validation/ajax/updateValue', ValidationPanierController::class, 'Panier.validationPanier.updateValue');
        $router->get($base_url.'/validation/refreshValidation', ValidationPanierController::class, 'Panier.validationPanier.refreshValidation');
        $router->get($base_url.'/validation/demandeDelai', ValidationPanierController::class, 'Panier.validationPanier.demandeDelai');
        


        $router->get($base_url.'/validation/popupSignataire/{typeDoc:'.$global.'+}[/{critereRegroup:'.$global.'+}]', ValidationPanierController::class, 'Panier.validationPanier.popupSignataire');
        $router->get($base_url.'/validation/ajaxSignataireValidation/{typeDoc:'.$global.'+}[/{critereRegroup:'.$global.'+}]', ValidationPanierController::class, 'Panier.validationPanier.ajaxSignataireValidation');
        
        $router->get($base_url.'/validation/popupPlanning/{typeDoc:'.$global.'+}/{critereRegroup:'.$global.'+}/{idLigne:'.$global.'+}', ValidationPanierController::class, 'Panier.validationPanier.popupPlanning');
        $router->get($base_url.'/validation/ajaxAddPlanning', ValidationPanierController::class, 'Panier.validationPanier.ajaxAddPlanning');
        $router->get($base_url.'/validation/ajaxPlanningValidation/{typeDoc:'.$global.'+}/{critereRegroup:'.$global.'+}/{idLigne:'.$global.'+}', ValidationPanierController::class, 'Panier.validationPanier.ajaxPlanningValidation');
        $router->get($base_url.'/validation/impressionDocument/{chiffre:[0-1]}/{typeDoc:'.$global.'+}[/{critereRegroup:'.$global.'+}]', ValidationPanierController::class, 'Panier.validationPanier.impressionDocument');
        
        $router->get($base_url.'/validationFinal', ValidationPanierController::class, 'Panier.validationPanier.validationFinal');
        $router->get($base_url.'/document', ValidationPanierController::class, 'Panier.validationPanier.document');
        
        
        $router->get($base_url.'/ajax/nouveauPanier/{action:'.$global.'+}', PanierController::class, 'Panier.Panier.nouveauPanier');
       
        $router->get($base_url.'/ajax/chargeTabFrs/{tab:'.$global.'+}/{idBlocFrs:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.chargeTabFrs');
        
        $router->get($base_url.'/ajax/clause/add/{idBlocFrs:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxAddClause');
        $router->get($base_url.'/ajax/clause/remove/{idClause:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxRemoveClause');

        $router->get($base_url.'/ajax/pj/add/{idBlocFrs:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxAddPj');
        $router->get($base_url.'/ajax/pj/edit/{idBlocFrs:'.$global.'+}/{idPJ:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxEditPJ');
        $router->get($base_url.'/ajax/pj/remove/{idPJ:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxRemovePJ');

        $router->get($base_url.'/ajax/doc/remove/{idBlocFrs:'.$global.'+}/{numDoc:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxRemoveDoc');

        $router->get($base_url.'/popup/imputation/{action:'.$global.'+}/{idLigne:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.popupActionImpu');
        $router->get($base_url.'/ajax/imputation/{action:'.$global.'+}/{idLigne:'.$global.'+}', TabBlocFrsController::class, 'Panier.TabBlocFrs.ajaxActionImpu');
        

        $router->get($base_url.'/popup/confirmDelete[/{idPanier:'.$global.'+}]', GeneralPanierController::class, 'Panier.GeneralPanier.popupConfirmDelete');
        $router->get($base_url.'/ajax/delete[/{idPanier:'.$global.'+}]', GeneralPanierController::class, 'Panier.GeneralPanier.ajaxDelete');
        $router->get($base_url.'/ajax/loadPanier/{idPanier:'.$global.'+}[/{confirm:'.$global.'+}]', GeneralPanierController::class, 'Panier.GeneralPanier.ajaxLoadPanier');
        $router->get($base_url.'/ajax/Close', GeneralPanierController::class, 'Panier.GeneralPanier.ajaxClose');
        $router->get($base_url.'/ajax/Edit/{idPanier:'.$global.'+}', GeneralPanierController::class, 'Panier.GeneralPanier.ajaxEdit');

        $router->get($base_url.'/commandeRegul', CommandeRegulController::class, 'Panier.CommandeRegul.commandeRegul');
        $router->get($base_url.'/ajax/createRegul[/{confirm:'.$global.'+}]', CommandeRegulController::class, 'Panier.CommandeRegul.ajaxCreateRegul');
        

        $router->get($base_url.'/articles/fiche/{idLigne:'.$global.'+}', ArticlePanierController::class, 'Panier.Articles.fiche');
        $router->get($base_url.'/articles/ajax/changeEquivalence/{idLigne:'.$global.'+}/{rowCompteur:'.$global.'+}', ArticlePanierController::class, 'Panier.Articles.ajaxChangeEquivalence');
        $router->get($base_url.'/articles/addFrais/{idBlocFrs:'.$global.'+}', ArticlePanierController::class, 'Panier.Articles.addFrais');
        $router->get($base_url.'/articles/addFrais/validate/{idBlocFrs:'.$global.'+}', ArticlePanierController::class, 'Panier.Articles.addFraisvalidate');
        $router->get($base_url.'/articles/createEdit/{idBlocFrs:'.$global.'+}[/{idLigne:'.$global.'+}]', ArticlePanierController::class, 'Panier.Articles.createEdit');
        $router->get($base_url.'/articles/validate/{idBlocFrs:'.$global.'+}[/{idLigne:'.$global.'+}]', ArticlePanierController::class, 'Panier.Articles.validateArticle');

        $router->get($base_url.'/fournisseur/popup/contactLivraison/{idBlocFrs:'.$global.'+}', FournisseurController::class, 'Panier.Fournisseur.popupContactLivraison');
        $router->get($base_url.'/fournisseur/ajax/validator/{idBlocFrs:'.$global.'+}', FournisseurController::class, 'Panier.Fournisseur.ajaxValidator');
        $router->get($base_url.'/fournisseur/changementFournisseur/{idLigne:'.$global.'+}', FournisseurController::class, 'Panier.Fournisseur.changementFournisseur');
        $router->get($base_url.'/fournisseur/ajax/RefreshArticle/{idLigne:'.$global.'+}', FournisseurController::class, 'Panier.Fournisseur.ajaxRefreshArticle');
        $router->get($base_url.'/fournisseur/validateChangementMulti/{idLigne:'.$global.'+}', FournisseurController::class, 'Panier.Fournisseur.validateChangementMulti');
        $router->get($base_url.'/fournisseur/validateChangement/{idLigne:'.$global.'+}/{action:'.$global.'+}[/{rowCompteur:'.$global.'+}]', FournisseurController::class, 'Panier.Fournisseur.validateChangement');

        
        $router->get($base_url.'/CentreLivraison/fiche', CentreLivraisonController::class, 'Panier.CentreLivraison.fiche');
        $router->get($base_url.'/CentreLivraison/ajax/RefreshFiche', CentreLivraisonController::class, 'Panier.CentreLivraison.ajaxRefreshFiche');
        $router->get($base_url.'/CentreLivraison/validate', CentreLivraisonController::class, 'Panier.CentreLivraison.validate');

        $router->get($base_url.'/import', ImportLigneController::class, 'Panier.ImportLigne.index');
        $router->get($base_url.'/import/ajax/changeDef', ImportLigneController::class, 'Panier.ImportLigne.ajaxChangeDef');
        $router->get($base_url.'/import/import', ImportLigneController::class, 'Panier.ImportLigne.import');
        $router->get($base_url.'/popup/liste/format', ImportLigneController::class, 'Panier.ImportLigne.listeFormat');
        $router->get($base_url.'/popup/format/updateFavorisFormat/{idFormat:'.$global.'+}', ImportLigneController::class, 'Panier.ImportLigne.updateFavorisFormat');
        $router->get($base_url.'/journalImport/{token:'.$global.'+}', ImportLigneController::class, 'Panier.ImportLigne.journalImport');

        $router->get($base_url.'/import/devis', ImportDevisController::class, 'Panier.ImportDevis.index');
        $router->get($base_url.'/import/devis/ajax/importFile', ImportDevisController::class, 'Panier.ImportDevis.ajaxImportFile');
        

        $router->get($base_url.'/listePanier', ListePanierController::class, 'Panier.listePanier.index');
    }
}
