<?php

namespace Modules\Reception\Controller;

use Helpers\Fichier\Fichier;
use Helpers\Webservice\Wsdl;
use Skeleton\Controller\Controller;

class ImpressionBonSortieController extends Controller
{

    public function impressionAction(): string
    {
        // TODO : add Rules
        $bonId = $this->request->getAttribute('id');
        $typeImpression = $this->request->getAttribute('mode');
        $isChiffer = ($typeImpression != 'nonchiffre');
        
        $xmlResult = $this->wsqlImpression($bonId, $isChiffer);
        $reponse = new \SimpleXMLElement($xmlResult->responseData);

        if ($reponse->Retour != 'O') {
            return $reponse->MsgErreur;
        }
        return Fichier::UploadClient(
            $reponse->FichierPDF,
            'BS_' . ($isChiffer ? 'Chiffre' : 'NonChiffre')
            . '_' . $bonId
            . '_' . date('dmY')
        );
    }

    private function wsqlImpression(string $bonId, bool $isChiffre) :Wsdl
    {
        return new Wsdl(
            'Oxaproc_BS.wsdl',
            'OXAPRC_IMPRIMEBS',
            '<BSIn LngUtilisation="'.$_SESSION['Session_Langue'].'">
                <NumeroBS>'.htmlspecialchars($bonId). '</NumeroBS>
                <NonChiffre>' . ($isChiffre ? 'true' : 'false') . '</NonChiffre>
            </BSIn>',
            false
        );
    }
}
