<?php

namespace Modules\Signature\WebService;

use Helpers\Webservice\Wsdl;

class Commande
{
    
    /**
     * @param array<string> $array
     */
    public function signatureCommande($array):Wsdl
    {
        $envoi = '  <SigCdeIn LngUtilisation="'.$_SESSION['Session_Langue'].'">
                      <Utilisateur>'.$_SESSION['Session_Login'].'</Utilisateur>
                      <UserConnecte>' . (array_key_exists("MODE_BACKUP", $_SESSION) && $_SESSION['MODE_BACKUP'] ? $_SESSION['user_origine'] : $_SESSION['Session_Login']) . '</UserConnecte>
                      <MotdePasse>'.\htmlspecialchars($array['MotdePasse'], ENT_XML1, 'UTF-8').'</MotdePasse>
                      <Mode>'.\htmlspecialchars($array['Mode'], ENT_XML1, 'UTF-8').'</Mode>
                      <NumCde>'.\htmlspecialchars($array['NumCde'], ENT_XML1, 'UTF-8').'</NumCde>
                      <Signataire>'.\htmlspecialchars($array['Signataire'], ENT_XML1, 'UTF-8').'</Signataire>
                      <Comment>'.\htmlspecialchars(($array['Comment']??''), ENT_XML1, 'UTF-8').'</Comment>';
        if ($array['Mode']=='M') {
            $envoi .= '    <NvSignataire>'.$array['NvSignataire'].'</NvSignataire>';
        }
        
        $envoi .= '    <Confirm>'.$array['Confirm'].'</Confirm>
                    </SigCdeIn>';
        
        return new \Helpers\Webservice\Wsdl('', 'OXAPRC_SIGNCDE', $envoi, false);
    }

    /**
     * @param array<string> $listCommandeId
     */
    public function signatureMultiCommande(string $motDePasse, string $mode, string $signataire, array $listCommandeId, bool $confirm, string $comment = '') :Wsdl
    {
        $envoi = '
            <SigCdeIn LngUtilisation="'.$_SESSION['Session_Langue'].'">
            <Utilisateur>'.$_SESSION['Session_Login'].'</Utilisateur>
            <UserConnecte>' . (array_key_exists("MODE_BACKUP", $_SESSION) && $_SESSION['MODE_BACKUP'] ? $_SESSION['user_origine'] : $_SESSION['Session_Login']) . '</UserConnecte>
            <MotdePasse>'.\htmlspecialchars($motDePasse, ENT_XML1, 'UTF-8').'</MotdePasse>
            <Mode>'.\htmlspecialchars($mode, ENT_XML1, 'UTF-8').'</Mode>
            <MultiCde>true</MultiCde>
            <ListeCde>
                '.join('', array_map(function ($numCde) {
                    return '<Cde>
                        <NumCde>'.\htmlspecialchars($numCde, ENT_XML1, 'UTF-8').'</NumCde>
                    </Cde>';
        }, $listCommandeId)).'
            </ListeCde>
            <Signataire>'.\htmlspecialchars($signataire, ENT_XML1, 'UTF-8').'</Signataire>
            <Comment>'.\htmlspecialchars(($comment), ENT_XML1, 'UTF-8').'</Comment>
            <Confirm>'.($confirm ? 'true' : 'false').'</Confirm>
        </SigCdeIn>';
        
        return new Wsdl('', 'OXAPRC_SIGNCDE', $envoi, false);
    }
}
