<?php

namespace Modules\Additional\Specifique\Client151\Modules\Suivi\MenuContextuel;

use Helpers\ChampsSupplementaire\ChampSupp;
use Helpers\Outil\Sql;
use Helpers\Trad\ITrad;
use Helpers\Trad\Trad;
use Skeleton\Router;

class GestionCdeMenuContextuelSpecifique
{
    /**
     *
     * @param \PDO $pdo
     * @param Itrad $trad
     * @param array<mixed> $array
     * @return array<mixed>|void
     */
    public static function gestionMenuContextuelSpecifique($pdo, Router $router, $trad, $array)
    {
        if ($array['ETAT_CDE'] == 'Z') {
            $numFix = Sql::dilispec($pdo, 'PARNCS0151', 'NCS_CA_ENTET_DTEANNULATION_GIDE');
            $numCde = $array['NO_CDE'];
            $codeEnr = str_pad($numCde, 9, '0', STR_PAD_LEFT);
    
            $dateMajGide =  ChampSupp::getValueCS('CA_ENTET', $codeEnr, $numFix, $pdo);
            if ($dateMajGide && $dateMajGide != '00/00/0000') {
                $message = Trad::strBuild($trad->t('La MAJ de l\'annulation de la commande dans GIDE a été faite le @1@ (Champ supplémentaire « Date MAJ GIDE ») souhaitez-vous la supprimer ?'), $dateMajGide);
            } else {
                $message = $trad->t('Confirmez-la-vous mise à jour de l\'annulation de cette commande dans GIDE ?');
            }

            return [
                'libelle' => $trad->t('Annulation GIDE Effectuée'),
                'lienJs' => self::popupConfirm(
                    $router,
                    true,
                    $router->generateUri('Specifique151.Suivi.popupAnnulationGide', ['idCde' => $array['NO_CDE']]),
                    $message,
                    false,
                    'divRefresh',
                    '',
                    false,
                    'filtre_suivi',
                )
            ];
        }
    }

    protected static function popupConfirm(Router $router, bool $modeConfirm, string $path, string $message, bool $popup = false, string $div = '', string $option = '', bool $loader = false, string $form = '') : string
    {
        $message = urlencode($message);

        //popupConfirmationSuppresion

        if ($modeConfirm) {
            $urlPopup = $router->generateUri('Ajax.Erreur.popupConfirmationGestion');
        } else {
            $urlPopup = $router->generateUri('Ajax.Erreur.popupConfirmationSuppresion');
        }
        
        return "popupConfirmation('".$urlPopup."', '','".($path)."', '".$message."', '".$div."', '".$option."', '".$loader."', '".($popup? 'true':'false')."', '".$form."')";
    }
}
