<?php

namespace Modules\Additional\Specifique\Client95\Html;

use Helpers\Outil\Roles;
use Helpers\Trad\ITrad;
use Helpers\Trad\Trad;
use Modules\Additional\Specifique\Client95\Modules\EtatStatistique\Service\EtatStatistiqueService;
use PDO;
use Psr\Container\ContainerInterface;
use Skeleton\Router;

class HtmlExtension extends \Twig\Extension\AbstractExtension
{

    /**
     * @var PDO $pdo
     */
    protected PDO $pdo;
    /**
     * @var Router $router
     */
    private $router;
    /**
     * @var ContainerInterface $contenaire
     */
    private $contenaire;
    private ITrad $trad;
    
    public function __construct(Router $router, ContainerInterface $contenaire, \PDO $pdo)
    {
        $this->router = $router;
        $this->pdo = $pdo;
        $this->contenaire = $contenaire;
        $this->trad = $contenaire->get(ITrad::class);
    }

    public function getFunctions()
    {
        return [
            new \Twig\TwigFunction('specifiqueStatistique', [
                $this,
                'specifiqueStatistique'
            ], [
                'is_safe' => [
                    'html'
                ]
            ])
        ];
    }
        
    /**
     * specifiqueStatistique
     *
     * @return string
     */
    public function specifiqueStatistique()
    {
        $trad = $this->trad;
        $title = $trad->t('Suivi budgétaire');

        $service = new EtatStatistiqueService($this->pdo);

        $html = '';

        if (count($service->getZoomList('centre')) > 0) {
            $html ='<div class="clearfix">
                        <h1>' . $title . '</h1>
                        <a class="tuilesEtat" href="'.$this->router->generateUri('Specifique95.EtatStatistique.suiviBudgetaire').'" style="margin-left:10px;">
                            <img class ="pictos" src="'.$this->contenaire->get('baseUrl').'/IconeV2/Global/Table-mode.svg">
                            <span class="tuilesTitle">' . $trad->t('Suivi budgétaire') . '</span>
                        </a>	
                        <a class="tuilesEtat" href="'.$this->router->generateUri('Specifique95.EtatStatistique.analyseFacture').'" style="margin-left:10px;">
                            <img class ="pictos" src="'.$this->contenaire->get('baseUrl').'/IconeV2/Global/Table-mode.svg">
                            <span class="tuilesTitle">' . $trad->t('Analyse du facturé') . '</span>
                        </a>	
                        <a class="tuilesEtat" href="'.$this->router->generateUri('Specifique95.EtatStatistique.analyseEngage').'" style="margin-left:10px;">
                            <img class ="pictos" src="'.$this->contenaire->get('baseUrl').'/IconeV2/Global/graphic-mode.svg">
                            <span class="tuilesTitle">' . $trad->t('Analyse de l\'engagé') . '</span>
                        </a>	
                        <a class="tuilesEtat" href="'.$this->router->generateUri('Specifique95.EtatStatistique.analyseEngageFacture').'" style="margin-left:10px;">
                            <img class ="pictos" src="'.$this->contenaire->get('baseUrl').'/IconeV2/Global/graphic-mode.svg">
                            <span class="tuilesTitle">' . $trad->t('Analyse Engagé / Facturé') . '</span>
                        </a>';
            if (Roles::isAdminCentral($this->pdo, $_SESSION['Session_Login'])) {
                // si l'utilisateur est admin central
                $html .= '
                    <a class="tuilesEtat" href="'.$this->router->generateUri('Specifique95.EtatStatistique.engageParCategorieDepense').'" style="margin-left:10px;">
                        <img class ="pictos" src="'.$this->contenaire->get('baseUrl').'/IconeV2/Global/graphic-mode.svg">
                        <span class="tuilesTitle">' . $trad->t('Engagé par catégories de dépenses') . '</span>
                    </a>';
            }
    
            $html .= '</div>';
        }
                
        return $html;
    }
}
