<?php

namespace Modules\Additional\Specifique\Client112\Modules\Facture\Controller;

use Skeleton\Controller\Controller;
use Helpers\Trad\Trad;
use Helpers\Session\ParseBase1;

class GestionFactureController extends Controller
{
    public function init()
    {
        if (!\Helpers\Roles\Predispatch::connectRole()) {
            return $this->redirect($this->contenaire->get('base').'index.php');
        }
    }

    public function specMailAction() : string
    {
        
        $post    = $this->request->getParsedBody();
        $numFact = $this->request->getAttribute('numFact');
        $codeSte = $this->request->getAttribute('codeSte');

        $trad = $this->getTranslationService();

        $facture = new \Entity\Model\FactEnt($this->pdo);
        $facture = $facture->find($numFact);

        $parv = \Helpers\Outil\Roles::getDroit($this->pdo, 'URLACCESOXAPROC ', 'OXAPROC');

        $isAffiche = new \Modules\Additional\Specifique\Client112\Modules\Facture\Repository\Gestion($this->pdo);
        $isAfficheArray = $isAffiche->getLibelleMail($codeSte);
        $destinataire = $isAffiche->getMailByCodeUser(trim(explode('|', $isAfficheArray['LIBELLE'])[0]))['EMAIL'];
        $destinataire = str_replace(' ', '', $destinataire);
        
        if (is_array($isAffiche)) {
            $isAfficheArray['EMAIL'] = trim($destinataire);
        } else {
            $isAfficheArray['EMAIL'] = '';
        }
                    
        $reponse['Destinataires'] = $destinataire;

        $reponse['Corps'] = "\tBonjour,\n
        Nous avons reçu la facture n° @1@ attachée en pièce jointe à cet email du fournisseur @2@ pour un montant @3@ @4@\n
        Cette facture ne fait référence à aucune commande dans notre outil de gestion des engagements de dépense.\n
        Merci de bien vouloir créer la commande de régularisation nécessaire en cliquant sur le lien ci-après :\n
        @5@ \n
        Cordialement.\n
        Le service Comptabilité.\n
        ";

        $reponse['Sujet'] = "Demande de régularisation de la facture n° : @1@";
        
        $reponse['Corps'] = Trad::strBuild(
            $trad->t($reponse['Corps']),
            $numFact,
            $facture['CODE_FOUR'],
            number_format($facture['TOTAL_TTC'], 2),
            $facture['DEVISE'],
            $parv
        );

        $reponse['Sujet'] = Trad::strBuild(
            $trad->t($reponse['Sujet']),
            $numFact
        );
        
        if (trim($facture['FIC_LAD'])!='') {
            $reponse['PJ_DEFAUT']  =
            [
                0 =>
                [
                    'urlPj' => (new ParseBase1())->getRep()->pj.$facture['FIC_LAD'],
                    'nomPj' => $facture['FIC_LAD'],
                    'libellePj' => 'IMG_FACT'
                ]
            ];
        }
        
        \Helpers\Ariane\Ariane::generate(1, $trad->t('Mail de commande de régularisation'));
        
        return $this->renderer->render('@Facture/mail/mail', [
            'menuActive'       => 'Facture',
            'menuLeft'         => 'GestionFacture',
            'post'             => $post,
            'numFact'          => $numFact,
            'codeSte'          => $codeSte,
            'erreur'           => '',
            'module'           => 'facture',
            'CodeEvent'        => 'MAI',
            'pathValidation'   => 'Ajax.MailController.validationMail',
            'pathConfirmation' => 'Ajax.Erreur.popupInformation',
            'pathRetour'       => 'Facture.GestionFacture.index',
            'postRetour'       => json_encode($_SESSION['ariane'][0]['post']),
            'reponse'          => $reponse,
            'titreModule'      => $trad->t('Factures et avoirs'),
            'titre'            => $trad->t('Mail incident pour la facture ').$numFact,
            
        ]);
    }
}
