<?php
namespace Modules\Fournisseur\Controller;

use Skeleton\Controller\Controller;
use Helpers\Session\Session;
use Modules\Fournisseur\WebService\Fournisseur;
use Helpers\Trad\Trad;
use Helpers\Session\ParseBase1;

class EdiRoutageController extends Controller
{
    public function init()
    {
        if (!session::sessionExist('Fournisseur') && !session::sessionExist('FournisseurSimplie')) {
            return $this->redirect('Index.Index.error');
        }
    }

    // phpcs:ignore
    public function CreationEdiRoutageAction() : string
    {
        $session = new Session('Fournisseur');
        
        return $this->renderer->render('@Fournisseur/EdiRoutage/ediRoutage', [
            'menuActive' => 'Fournisseur',
            'menuLeft' => 'GestionFournisseur',
            'modeFournisseur' => $session->getMode(),
            'gestion' => true,
            "ediRoutage" => true,
            'post' => $session->getSession('EdiRoutage'),
            ]);
    }
    
    public function modificationEdiRoutageAction() : string
    {
        $session = new Session('Fournisseur');
        $codeFrs = $this->request->getAttribute('id');
        
        $session = new Session('Fournisseur');
        $EdiRoutageSession = $session->getSessionArray('EdiRoutage');
        $mode = $session->getSession('etatFournisseur');
        
        if ($session->getSession('OXALINK')) {
            $codeDemande = $codeFrs;
        } else {
            $code = $codeFrs;
        }
        
        $value=[
            "Langue" => $_SESSION['Session_Langue'],
            "Login" => $_SESSION['Session_Login'],
            "no_ao" => $_SESSION["Session_SocUsr"],
            "codeFrs" => $code??'',
            'codeDemande' => $codeDemande??'',
            'affDemande' => 'TRUE',
            'mode' => $mode,
            'signa' => $session->getSession('signa'),
        ];
        
        if ($mode=='M' || $session->getSession('ModifSigner')) {
            $lockModif = $session->getSessionArray('droitInteraction')['ImpressionCde']=='0'? true:false;
        }
        
        if (!$EdiRoutageSession) {
            $xmlFile = $session->getSession('file_save_frs');
            
            if ($xmlFile) {
                $fileTMP = (new ParseBase1())->getRep()->tmp.$xmlFile;
                
                $fileContentXML = file_get_contents($fileTMP);
                $ficheFourniss = new \SimpleXMLElement($fileContentXML);
            } else {
                $ficheFourniss = new Fournisseur();
                $ficheFourniss = $ficheFourniss->ficheFournisseur($value);
                $ficheFourniss = new \SimpleXMLElement($ficheFourniss->responseData);
            }
            
            $ediRoutage=[
                'BDC_ELEC' =>   strval($ficheFourniss->Fournisseur->ImpressionCde->BDC_ELEC),
                'ROUTAGECDE' => strval($ficheFourniss->Fournisseur->ImpressionCde->ROUTAGECDE),
                'TYPE_FORM' =>  strval($ficheFourniss->Fournisseur->ImpressionCde->TYPE_FORM),
                'input_FORMAT'=>strval($ficheFourniss->Fournisseur->ImpressionCde->FORMAT),
                'MODE_ENV' =>   strval($ficheFourniss->Fournisseur->ImpressionCde->MODE_ENV),
                'MAIL_DEST' =>  strval($ficheFourniss->Fournisseur->ImpressionCde->MAIL_DEST),
                'ADR_FTP' =>    strval($ficheFourniss->Fournisseur->ImpressionCde->ADR_FTP),
                'USER_FTP' =>   strval($ficheFourniss->Fournisseur->ImpressionCde->USER_FTP),
                'PWD_FTP' =>    strval($ficheFourniss->Fournisseur->ImpressionCde->PWD_FTP),
                'PATH_DEP' =>   strval($ficheFourniss->Fournisseur->ImpressionCde->PATH_DEP),
                'FORMAT' =>   strval($ficheFourniss->Fournisseur->ImpressionCde->FORMAT),
            ];
            $session->setSession('EdiRoutage', $ediRoutage);
        }
        
        $trad = $this->getTranslationService();
        
        return $this->renderer->render('@Fournisseur/EdiRoutage/ediRoutage', [
            'menuActive' => 'Fournisseur',
            'menuLeft' => 'GestionFournisseur',
            'modeFournisseur' => $session->getMode(),
            'gestion' => true,
            "ediRoutage" => true,
            'post' => $session->getSession('EdiRoutage'),
            'id' => $codeFrs,
            'lockModif' => $lockModif??false,
            ]);
    }
}
