<?php

namespace Modules\Contrat\Controller;

use Helpers\Ariane\Ariane;
use Helpers\Highcharts\Highcharts;
use Helpers\Trad\Trad;
use Modules\Contrat\Repository\AccordCadre;
use Skeleton\Controller\Controller;

class IndicateurContratController extends Controller
{
    public function indicateurAction() : string
    {
        $trad = $this->getTranslationService();
        $defaultLabel = $trad->t('Sans marché');
        
        $trad = $this->getTranslationService();

        Ariane::generate(0, $trad->t('Analyse des accords-cadres'));

        $accordCadre = new AccordCadre($this->pdo);

        $acdActif = $accordCadre->getIndicateurAccActif()['NB_ACCORD_CADRE']??'0';
        $acdPreavis = $accordCadre->getIndicateurAccPreavis()['ACD_PREAVIS']??'0';

        $listeAcdActifParMarche = $accordCadre->getIndicateurListeAcdParMarcheActif();

        // Render libelle
        $listeAcdActifParMarche = array_map(function (array $item) use ($defaultLabel) {
            $item['libelle'] = empty($item['LIBELLE']) ?
                $defaultLabel :
                $item['LIBELLE']. ' (' . $item['CODE'] . ')';
            return $item;
        }, $listeAcdActifParMarche);

        /* Graph2 */
        $array1['value']        = $listeAcdActifParMarche;
        $array1['detailDonut']  = ['nom' => 'accords-cadres'];
        $array1['titre']        = $trad->t('Nombre accords-cadres actifs par Marché');
        $array1['type']         = 'pie';
        $array1['legend']       = true;

        $highcharts1 = Highcharts::generate($array1, $this->pdo, $trad);

        return $this->renderer->render('@Contrat/Indicateur/indicateur', [
            'menuActive' => 'Contrats',

            'acdActif' => $acdActif,
            'acdPreavis' => $acdPreavis,

            'highcharts1' => $highcharts1,
        ]);
    }
}
