<?php
namespace Modules\Utilisateur\Controller;

use Helpers\Ariane\Ariane;
use Modules\Utilisateur\Outil\MenuIntermediaire;
use Skeleton\Controller\Controller;

class IndexController extends Controller
{

    public function menuIntermediaireSuiviAction() : string
    {
        $menu = $this->getMenu();

        Ariane::generate(0, 'user');
        
        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $menu->getSuivi($this->router, $this->contenaire),
            'menuActive'    => 'eproc',
            'titre' => 'Suivi',
        ]);
    }
    
    public function menuIntermediaireLadFactureAction() : string
    {
        $menu = $this->getMenu();

        Ariane::generate(0, 'user');
        
        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $menu->getFactureLad($this->router),
            'menuActive'    => 'Facture',
            'titre' => 'LAD',
        ]);
    }
    
    public function menuIntermediaireListeFactureAction() : string
    {
        $menu = $this->getMenu();
        Ariane::generate(0, 'user');
        
        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $menu->getFactureListe($this->router),
            'menuActive' => 'Facture',
            'titre' => 'Liste',
        ]);
    }
    
    public function menuIntermediaireEditionFactureAction() : string
    {
        $menu = $this->getMenu();

        Ariane::generate(0, 'user');
        
        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $menu->getFactureEdition($this->router),
            'menuActive' => 'Facture',
            'titre' => 'Edition',
        ]);
    }
    
    public function menuIntermediaireExportMasseFactureAction() : string
    {
        $menu = $this->getMenu();
        Ariane::generate(0, 'user');
        
        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $menu->getFactureExportMasse($this->router),
            'menuActive'    => 'Facture',
            'titre' => 'Export',
        ]);
    }
    
    public function menuIntermediaireFavAction() : string
    {
        $trad = $this->getTranslationService();
        
        $listeFav = new \Modules\Ajax\Repository\Favoris($this->pdo);
        $listeFav = $listeFav->listeFavoris();
        
        $arrayMenu = [];
        
        foreach ($listeFav as $fav) {
            if (str_replace(' ', '', $fav['PATH_PARAMS'])) {
                $array = json_decode($fav['PATH_PARAMS'], true);
            } else {
                $array = [];
            }
                    
            $path = $this->router->generateUri($fav['PATH_FAV'], $array);

            $arrayMenu [] = [
                'titre' => $trad->t($fav['TITRE_FAV']),
                'lien' => "window.location.href = '".$path."'",
            ];
        }

        Ariane::generate(0, 'user');

        return $this->renderer->render('@Utilisateur/Index/menuIntermediaireSuivi', [
            'menus' => $arrayMenu,
            'menuActive' => 'Accueil',
            'titre' => 'Favoris',
        ]);
    }

    private function getMenu() :MenuIntermediaire
    {
        return new MenuIntermediaire(
            $this->pdo,
            $this->getTranslationService()
        );
    }
}

/*

*/
