<?php

namespace Modules\Utilisateur\Outil;

use Helpers\Trad\ITrad;
use Modules\GlobalApplication\Repository\FactureRepo;
use Psr\Container\ContainerInterface;
use Skeleton\Router;
use Helpers\Outil\Roles;
use TwigExtension\MenuLeftExtension;
use DI\Container;

class MenuIntermediaire
{
    protected \PDO $pdo;
    protected ITrad $trad;
    
    public function __construct(\PDO $pdo, ITrad $trad)
    {
        $this->pdo = $pdo;
        $this->trad = $trad;
    }
    
    public function getSuivi(Router $router, ContainerInterface $container)
    {

        $menuLeftExtension = new MenuLeftExtension($router, $this->pdo, $container);
        $listeAction = $menuLeftExtension->getListeMenuSuivi();

        $optionMenu = [];

        foreach ($listeAction as $action) {
            $lien = $action['link'];
            $optionMenu[] = [
                'titre' => $this->trad->t($action['label']),
                'lien' =>  "window.location.href='$lien'",
                'total' => $action['notif']??'',
            ];
        }
                
        return $optionMenu;
    }
    
    public function getFactureLad(Router $router)
    {
        $optionMenu = [];
        if (\Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_LAD') || \Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_LADA')) {
            $lien = $router->generateUri('Facture.Zedoc.zedoc');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Vidéocodage'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.FactureImporter.listeFactureImport');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Acquisition des factures'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.Zedoc.listRejected');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Gestion des rejets'),
                'lien' =>  "window.location.href='$lien'",
            );
        }
        
        return $optionMenu;
    }
    
    public function getFactureListe(Router $router)
    {
        $optionMenu = [];
        if (\Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_LIS')) {
            $lien = $router->generateUri('Facture.ListesFactureController.listeEntete');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Facture par Entête'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.ListesFactureController.listeLigne');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Facture par ligne'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.Event.listeEvenements');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Evènement de Factures'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.Event.listeGlobaleEvenements');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Liste globale des évènements'),
                'lien' =>  "window.location.href='$lien'",
            );
        }
        return $optionMenu;
    }
    
    public function getFactureEdition(Router $router)
    {
        $optionMenu = [];
        if (\Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_LIS') || \Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_XT')) {
            $lien = $router->generateUri('Facture.ImpressionFacture.impressionEntete');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Edition Entête'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.ImpressionFacture.impressionLigne');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Edition ligne'),
                'lien' =>  "window.location.href='$lien'",
            );
        }
        if (\Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_XT')) {
            $lien = $router->generateUri('Facture.EditionEtatCcaController.editionEtatCca');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Edition Etat CCA'),
                'lien' =>  "window.location.href='$lien'",
            );
        }
        return $optionMenu;
    }
    
    public function getFactureExportMasse(Router $router)
    {
        $optionMenu = [];

        if (\Helpers\Outil\Roles::droitsUtilisateur($this->pdo, 'HA_FA_EXPM')
            && ! FactureRepo::hasSpeStreamImageFacture()
        ) {
            $lien = $router->generateUri('Facture.ExportMasse.exportMasse');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Export en masse'),
                'lien' =>  "window.location.href='$lien'",
            );
            $lien = $router->generateUri('Facture.ExportMasseViaExcel.import');
            $optionMenu[]= array(
                'titre' => $this->trad->t('Export en masse par Excel'),
                'lien' =>  "window.location.href='$lien'",
            );
        }
        return $optionMenu;
    }
}
