<?php
namespace Modules\DemandeAchat\Controller;

use Skeleton\Controller\Controller;
use Helpers\Trad\Trad;
use Modules\DemandeAchat\Repository\DemandeAchat;

class IndexController extends Controller
{
    public function menuIntermediaireDemandeAchatAction() : string
    {
        $daSignature = new DemandeAchat($this->pdo);
        $nbSignatureDA = count($daSignature->listeDemandeAchat(['filter_Signature' => true]));
        $nbDelegationDA = count($daSignature->listeAllDelegationDA());
        $trad = $this->getTranslationService();
        
        return $this->renderer->render('@GlobalApplication/Index/menuIntermediaire', [
            'menuActive' => 'CollecteBesoins',
            'menuLeft' => 'GestionDemandeAchat',
            'menus' => [[
                [
                    'route' => 'DemandeAchat.GestionDemandeAchat.index',
                    'titre' => $trad->t('Gestion demande d\'achat'),
                ],
                [
                    'route' => 'DemandeAchat.Index.menuIntermediaireImpression',
                    'titre' => $trad->t('Impression'),
                ],
                [
                    'route' => 'Signature.SignatureDa.listeDoc',
                    'titre' => $trad->t('Signatures des DA'),
                    'total' => $nbSignatureDA,
                ],
                [
                    'route' => 'Signature.DelegationSignature.delegation',
                    'route_param' => ['MODULE' => 'demandeAchat'],
                    'titre' => $trad->t('Délégations DA'),
                    'total' => $nbDelegationDA,
                ],
                [
                    'route' => 'DemandeAchat.Index.menuIntermediaireListe',
                    'titre' => $trad->t('Liste'),
                ],
                [
                    'route' => 'DemandeAchat.Index.menuIntermediaireEdition',
                    'titre' => $trad->t('Edition'),
                ],
            ]],
        ]);
    }
    
    // phpcs:ignore
    public function menuIntermediaireImpressionAction() : string
    {
        $trad = $this->getTranslationService();
        return $this->renderer->render('@GlobalApplication/Index/menuIntermediaire', [
            'menuActive' => 'CollecteBesoins',
            'titre' => $trad->t('Impression'),
            'menus' => [[
                [
                    'route' => 'DemandeAchat.ImpressionGlobaleDemandeAchatController.impressionGlobale',
                    'route_param' => ['typeImpression' => 'chiffre'],
                    'titre' => $trad->t('Impression des DA'),
                ],
                [
                    'route' => 'DemandeAchat.ImpressionGlobaleDemandeAchatController.impressionGlobale',
                    'route_param' => ['typeImpression' => 'nonchiffre'],
                    'titre' => $trad->t('Impression des DA (non valorisé)'),
                ],
            ]],
        ]);
    }
    
    public function menuIntermediaireListeAction() : string
    {
        $trad = $this->getTranslationService();
        return $this->renderer->render('@GlobalApplication/Index/menuIntermediaire', [
            'menuActive' => 'CollecteBesoins',
            'titre' => $trad->t('Liste'),
            'menus' => [[
                [
                    'route' => 'DemandeAchat.Liste.listeEntete',
                    'route_param' => ['typeListe' => 'all'],
                    'titre' => $trad->t('Liste des DA / Entête'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeLigne',
                    'route_param' => ['typeListe' => 'all'],
                    'titre' => $trad->t('Liste des DA / Poste'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeEntete',
                    'route_param' => ['typeListe' => 'acommander'],
                    'titre' => $trad->t('Liste des DA à commander / Entête'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeLigne',
                    'route_param' => ['typeListe' => 'acommander'],
                    'titre' => $trad->t('Liste des DA à commander / Poste'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeLigneCommande',
                    'titre' => $trad->t('Liste des Commandes / DA / Postes'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeEvenementDA',
                    'titre' => $trad->t('Evènements de DA par DA'),
                ],
                [
                    'route' => 'DemandeAchat.Liste.listeEvenement',
                    'titre' => $trad->t('Liste globales d\'évènements de DA'),
                ],
            ]],
        ]);
    }
    
    public function menuIntermediaireEditionAction() : string
    {
        $trad = $this->getTranslationService();
        return $this->renderer->render('@GlobalApplication/Index/menuIntermediaire', [
            'menuActive' => 'CollecteBesoins',
            'titre' => $trad->t('Edition'),
            'menus' => [[
                [
                    'route' => 'DemandeAchat.Edition.entete',
                    'titre' => $trad->t('Edition des entêtes de DA'),
                ],
                [
                    'route' => 'DemandeAchat.Edition.ligne',
                    'titre' => $trad->t('Edition des postes de DA'),
                ],
                [
                    'route' => 'DemandeAchat.Edition.specifique',
                    'route_param' => ['typeEdition' => 'nonValidee'],
                    'titre' => $trad->t('Edition des DA non validées'),
                ],
                [
                    'route' => 'DemandeAchat.Edition.specifique',
                    'route_param' => ['typeEdition' => 'aCommander'],
                    'titre' => $trad->t('Edition des DA à commander'),
                ],
                [
                    'route' => 'DemandeAchat.Edition.ligneATraiter',
                    'titre' => $trad->t('Edition des postes de DA à Traiter / Acheteur'),
                ],
            ]],
        ]);
    }
}
