<?php

namespace Modules\Fournisseur\WebService;

use Helpers\Session\Session;
use Helpers\Parametres\Constante;
use Helpers\Outil\Sql;
use Entity\Model\Paravrac;
use Modules\Fournisseur\Repository\GestFourniss;
use Entity\Model\WftDemEnt;

class CreationFournisseur
{
    
    private $pdo;
    
    public function __construct(\PDO $pdo)
    {
        $this->pdo = $pdo;
    }
    
    
    /*
     * mode (creation / modification)
     *      permet de voir si on créer un fournisseur, ou si on modifie un fournisseur déjà valider
     *
     * etatFournisseur (C / M)
     *      neccessaire pour l'appel WSDL
     *      C signifie une demande de création
     *      M signifie une demande de modification
     *
     * Les deux champs sont neccesaire car on peu modifie une demande de création
     *
     * ficheFournisseur
     *
     * @param  array<mixed> $array
     * @param  array<mixed> $contact
     * @param  string|int $confirmation
     * @param  string $type
     * @return string
     */
    public function ficheFournisseur($array, $contact, $confirmation = 'false', string $type = 'Fournisseur')
    {
        $spliter = constante::spliter;
        $session = new Session($type);
        
        $EdiRoutage = $session->getSession('EdiRoutage');
        $adressCompl = $session->getSession('adresseCompl');
        $chiffreAffaire = $session->getSession('chiffreAffaire');
        $file_save_frs = $session->getSession('file_save_frs');
        
        $zoneGeoAdresse = $session->getSessionArray('zoneGeoAdresse');

        $taxe1= isset($array['NO_SIRET'])? $array['NO_SIRET']:'';
        $taxe2= isset($array['TAXE2'])? $array['TAXE2']:'';
        $taxe3= isset($array['TAXE3'])? $array['TAXE3']:'';
        $taxe4= isset($array['TAXE4'])? $array['TAXE4']:'';

        if ($session->getMode()=='Creation' || $session->getSession('etatFournisseur')=='C') {
            $creation='TRUE';
        } else {
            $creation='FALSE';
        }
            
        $NomFicSource = $session->getSession('NOM_FIC_SOURCE');

        /*$array['RS'] = isset($array['RS'])?htmlspecialchars($array['RS']):'';
        $array['ENSCOMM'] = isset($array['ENSCOMM'])?htmlspecialchars($array['ENSCOMM']):'';
        $array['RS_REGL'] = isset($array['RS_REGL'])?htmlspecialchars($array['RS_REGL']):'';
        $array['ADR'] = isset($array['ADR'])?htmlspecialchars($array['ADR']):'';
        $array['ADR_REGL'] = isset($array['ADR_REGL'])?htmlspecialchars($array['ADR_REGL']):'';
        $array['MOTCLE'] = isset($array['MOTCLE'])?htmlspecialchars($array['MOTCLE']):'';*/
        
        foreach ($array as $key => $value) {
            if (!is_array($value)) {
                $array[$key] = htmlspecialchars($value);
            }
        }
        
        $codeDemande = $session->getSession('codeDemande') ?? '';

        $code = $array['CODE'];
        
        if ($session->getSession('refuser')) {
            $PARAVRAC = new Paravrac($this->pdo);
            $paramCode = $PARAVRAC->find(["TYPEPARV" => 'NUM_FO_PAR', "CODEPARV" => 'MODE']);
            
            $SaieiCode = str_replace(' ', '', $paramCode['LIB01PARV']);
            if ($SaieiCode == 'A') {
                $code = '';
            }
        }
        
        if ($codeDemande) {
            $wftDemEnt = new WftDemEnt($this->pdo);
            $demande = $wftDemEnt->find($codeDemande);
            
            if ($demande['STATUT_DEMANDE'] == '0') {
                $file_save_frs = '';
            }
        }
        
        $gestFournissRepo = new GestFourniss($this->pdo);

        $envoi =   '<MajFournisseurIn LangueUtilisation="'.$_SESSION['Session_Langue'].'">
                    <NOMFIC_FICHE_ORIGINE>'.$file_save_frs.'</NOMFIC_FICHE_ORIGINE>
                    <CodeDemande>'.$codeDemande.'</CodeDemande>
                    <CodeUtilisateur>'.$_SESSION['Session_Login'].'</CodeUtilisateur>
                    <ModeCreation>'.$creation.'</ModeCreation>
                    <Confirmation>'.$confirmation.'</Confirmation>
                    <OXALINK>false</OXALINK>
                    <Validation>true</Validation>
                    '.($NomFicSource? "<NOM_FIC_SOURCE>$NomFicSource</NOM_FIC_SOURCE>":"").'
                    <Fournisseur>
                        <CODE Format="A12" Modifiable="1" TypeNum="I">'.$code.'</CODE>
                        <PROSPECT Format="L">'.($array['PROSPECT']? 'true':'false').'</PROSPECT>
                        <DTEVALMIN Format="D" Modifiable="1">'.$array['DTEVALMIN'].'</DTEVALMIN>
                        <DTEVALMAX Format="D" Modifiable="1">'.$array['DTEVALMAX'].'</DTEVALMAX>
                        <Identity>
                            <RS Format="A45" Modifiable="1">'.$array['RS'].'</RS>
                            <ENSCOMM Format="A45" Modifiable="1">'.($array['ENSCOMM']??'').'</ENSCOMM>
                            <ADR Format="A90" Modifiable="1">'.$array['ADR'].'</ADR>
                            <CPOSTAL Format="A10" Modifiable="1">'.$array['CPOSTAL'].'</CPOSTAL>
                            <VILLE1 Format="A35" Modifiable="1">'.$array['VILLE1'].'</VILLE1>
                            <CODE_PAYS Format="A2" Modifiable="1">'.$array['CODE_PAYS'].'</CODE_PAYS>
                            <TEL Format="A16" Modifiable="1">'.($array['TEL']??'').'</TEL>
                            <TELEX Format="A16" Modifiable="1">'.($array['TELEX'] ?? '').'</TELEX>
                            <FAX Format="A16" Modifiable="1">'.($array['FAX'] ?? '').'</FAX>
                            <EMAIL Format="A100" Modifiable="1">'.($array['EMAIL'] ?? '').'</EMAIL>
                            <SITEWEB Format="A100" Modifiable="1">'.($array['SITEWEB'] ?? '').'</SITEWEB>
                            <COD_LNG Format="A3" Modifiable="1">'.($array['COD_LNG']?? '').'</COD_LNG>
                            <NO_SIRET Format="A30" Modifiable="1">'.$taxe1.'</NO_SIRET>
                            <TAXE2 Format="A30" Modifiable="1">'.$taxe2.'</TAXE2>
                            <TAXE3 Format="A30" Modifiable="1">'.$taxe3.'</TAXE3>
                            <TAXE4 Format="A30" Modifiable="1">'.$taxe4.'</TAXE4>
                            <NO_TVA_IC Format="A15" Modifiable="1">'.($array['NO_TVA_IC'] ?? '').'</NO_TVA_IC>
                            <NO_DUNS Format="A15" Modifiable="1">'.($array['NO_DUNS'] ?? '').'</NO_DUNS>
                            <ID_EXT Format="A30" Modifiable="1">'.($array['ID_EXT'] ?? '').'</ID_EXT>
                            <FOUPPAL Format="A12" Modifiable="1">'.($array['FOUPPAL']??'').'</FOUPPAL>
                            <ADR_COMMANDE Format="L" Modifiable="1">'.($array['ADR_COMMANDE']??'').'</ADR_COMMANDE>
                            <DISPO_MOBILITY Format="L" Modifiable="1">'.($array['DISPO_MOBILITY']??'').'</DISPO_MOBILITY>
                        </Identity>
                        <Reglement>
                            <RS_REGL Format="A45" Modifiable="1">'.($array['RS_REGL']??'').'</RS_REGL>
                            <ADR_REGL Format="A90" Modifiable="1">'.($array['ADR_REGL']??'').'</ADR_REGL>
                            <CPREGL Format="A10" Modifiable="1">'.($array['CPREGL'] ?? '').'</CPREGL>
                            <VILREGL Format="A35" Modifiable="1">'.($array['VILREGL'] ?? '').'</VILREGL>
                            <PAYSREGL Format="A2" Modifiable="1">'.($array['PAYSREGL'] ?? '').'</PAYSREGL>
                            <DOM_BK Format="A26" Modifiable="1" >'.($array['DOM_BK'] ?? '').'</DOM_BK>
                            <CODE_BK Format="AU5" Modifiable="1">'.($array['CODE_BK'] ?? '').'</CODE_BK>
                            <CODE_GUIC Format="AU5" Modifiable="1">'.($array['CODE_GUIC']?? '').'</CODE_GUIC>
                            <NO_CPTE Format="AU11" Modifiable="1">'.($array['NO_CPTE'] ?? '').'</NO_CPTE>
                            <CLE_RIB Format="AU2" Modifiable="1">'.($array['CLE_RIB'] ?? '').'</CLE_RIB>
                            <IBANPAYS Format="A2" Modifiable="1">'.($array['IBANPAYS'] ?? '').'</IBANPAYS>
                            <IBANCLE Format="N2" Modifiable="1">'.($array['IBANCLE'] ?? '').'</IBANCLE>
                            <IBANCPT Format="A30" Modifiable="1">'.($array['IBANCPT'] ?? '').'</IBANCPT>
                            <CODEBIC Format="AU11" Modifiable="1" >'.($array['CODEBIC'] ?? '').'</CODEBIC>
                            <RESP_FAC Format="A30" Modifiable="1">'.($array['RESP_FAC'] ?? '').'</RESP_FAC>
                        </Reglement>
                        <Conditions>
                            <COND_PAIE Format="A7" Modifiable="1">'.$array['COND_PAIE'].'</COND_PAIE>
                            <MODE_PAIE Format="A7" Modifiable="1">'.$array['MODE_PAIE'].'</MODE_PAIE>
                            <LIV Format="A7" Modifiable="1" >'.($array['LIV'] ?? '').'</LIV>
                            <DEVISE Format="AU3" Modifiable="1">'.$array['DEVISE'].'</DEVISE>
                            <TYP_TVA Format="A1" Modifiable="1" >'.($array['TYP_TVA'] ?? '').'</TYP_TVA>
                            <MNTMINFAC Format="N13.2" Modifiable="1">'.$array['MNTMINFAC'].'</MNTMINFAC>
                            <CA_MIN_ST Format="N13.2" Modifiable="1">'.$array['CA_MIN_ST'].'</CA_MIN_ST>
                            <CA_MAX_ST Format="N13.2" Modifiable="1">'.$array['CA_MAX_ST'].'</CA_MAX_ST>
                            <RMINCPXN Format="L" Modifiable="1">'.$array['RMINCPXN'].'</RMINCPXN>
                            <REMISE Format="N2.2" Modifiable="1">'.($array['REMISE'] ?? '').'</REMISE>
                            <ZONE_LIB1 Format="A26" Modifiable="1">'.($array['ZONE_LIB1'] ?? '').'</ZONE_LIB1>
                            <ZONE_LIB2 Format="A26" Modifiable="1">'.($array['ZONE_LIB2'] ?? '').'</ZONE_LIB2>
                            <MOTCLE Format="A20" Modifiable="1">'.($array['MOTCLE'] ?? '').'</MOTCLE>
                            <Eproc>
                                <FOURPREF Format="L" Modifiable="1">'.$array['FOURPREF'].'</FOURPREF>
                                <AUTOCC Format="L" Modifiable="1" >'.$array['AUTOCC'].'</AUTOCC>
                                <SEUILEPDIF Format="L" Modifiable="1" >'.$array['SEUILEPDIF'].'</SEUILEPDIF>
                                <MTMAXCC Format="N13.2" Modifiable="1" >'.$array['MTMAXCC'].'</MTMAXCC>
                                <MTMAXCCHCT Format="N13.2" Modifiable="1">'.$array['MTMAXCCHCT'].'</MTMAXCCHCT>
                                <NOCCGEN Format="L" Modifiable="1">'.$array['NOCCGEN'].'</NOCCGEN>
                            </Eproc>
                            <Franco>
                                <MNTMINFRA Format="N13.2" Modifiable="1">'.$array['MNTMINFRA'].'</MNTMINFRA>
                                <RFRACT Format="L" Modifiable="1">'.$array['RFRACT'].'</RFRACT>
                                <ARTFRPORT Format="A13" Modifiable="1">'.($array['ARTFRPORT'] ?? '').'</ARTFRPORT>
                                <FRPOBLIG Format="L" Modifiable="1">'.$array['FRPOBLIG'].'</FRPOBLIG>
                            </Franco>
                            <DEFTYPDOC Format="A7" Modifiable="1">'.($array['DEFTYPDOC'] ?? '').'</DEFTYPDOC>
                        </Conditions>
                        <Detail>
                            <CODE_REGR Format="A3" Modifiable="1">'.($array['CODE_REGR'] ?? '').'</CODE_REGR>
                            <DTE_AGREM Format="D" Modifiable="1">'.$array['DTE_AGREM'].'</DTE_AGREM>
                            <IND_QUALI Format="A5" Modifiable="1">'.($array['IND_QUALI'] ?? '').'</IND_QUALI>
                            <CERTIF Format="A20" Modifiable="1">'.($array['CERTIF'] ?? '').'</CERTIF>
                            <CLASSE Format="A1">'.($array['CLASSE']??'').'</CLASSE>
                            <FRANCTVA Format="L" Modifiable="1">'.$array['FRANCTVA'].'</FRANCTVA>
                            <NAUTOSFA Format="L" Modifiable="1">'.$array['NAUTOSFA'].'</NAUTOSFA>
                            <NOT_MANU Format="L" Modifiable="1">'.$array['NOT_MANU'].'</NOT_MANU>
                            <RECEP_AUTO Format="L" Modifiable="1">'.$array['RECEP_AUTO'].'</RECEP_AUTO>
                            <PER_REC_AUTO Format="A1" Modifiable="1">'.($array['PER_REC_AUTO'] ?? '').'</PER_REC_AUTO>
                        </Detail>
                        <ImpressionCde Modifiable="1">
                            <ROUTAGECDE Format="A1" >'.($EdiRoutage['ROUTAGECDE']??'').'</ROUTAGECDE>
                            <BDC_ELEC Format="L" >'.($EdiRoutage['BDC_ELEC']??'').'</BDC_ELEC>
                            <TYPE_FORM Format="A1" >'.($EdiRoutage['TYPE_FORM']??'').'</TYPE_FORM>
                            <FORMAT Format="N9">'.($EdiRoutage['FORMAT']??'').'</FORMAT>
                            <MODE_ENV Format="A1">'.($EdiRoutage['MODE_ENV']??'').'</MODE_ENV>
                            <MAIL_DEST Format="A100">'.($EdiRoutage['MAIL_DEST']??'').'</MAIL_DEST>
                            <ADR_FTP Format="A255">'.($EdiRoutage['ADR_FTP']??'').'</ADR_FTP>
                            <USER_FTP Format="A30">'.($EdiRoutage['USER_FTP']??'').'</USER_FTP>
                            <PWD_FTP Format="A30">'.($EdiRoutage['PWD_FTP']??'').'</PWD_FTP>
                            <PATH_DEP Format="A255">'.($EdiRoutage['PATH_DEP']??'').'</PATH_DEP>
                        </ImpressionCde>
                        <OXALINK>
                            <GEREPORTAIL Format="L">'.$array['GEREPORTAIL'].'</GEREPORTAIL>
                        </OXALINK>
                        <ListContacts Modifiable="1">';
        for ($i=0; $i<count($contact); $i++) {
            $etat = $contact[$i]['ETAT'] ?? 'I'; // a la création d'un fournisseur $contact[$i]['ETAT'] n'éxiste pas !!

            if ($contact[$i]['OXALINK_ID'] && $contact[$i]['CTC_OXALINK']) {
                $idOxalinkUser = $contact[$i]['OXALINK_ID'];
            } elseif (!$contact[$i]['OXALINK_ID'] && $contact[$i]['CTC_OXALINK']) {
                $ctcOxalink = $gestFournissRepo->contactFrsExist($contact[$i]['EMAIL']);
                if ($ctcOxalink) {
                    $idOxalinkUser = $ctcOxalink['USER_ID'];
                    //$oxalinkUserEntity->update(['STATUT' => 'V'], $ctcOxalink['USER_ID']);
                } else {
                    $idOxalinkUser = Sql::guidGenerate();
                }
            } else {
                /*$ctcOxalink = $gestFournissRepo->contactFrsExist($contact[$i]['EMAIL']);
                                if($ctcOxalink)
                                {
                                    $oxalinkUserEntity->update(['STATUT' => 'F'], $ctcOxalink['USER_ID']);
                }*/
                $idOxalinkUser = '';
            }
            $contact[$i]['NOM']         = isset($contact[$i]['NOM'])?htmlspecialchars($contact[$i]['NOM']):'';
            $contact[$i]['FONCTION']    = isset($contact[$i]['FONCTION'])?htmlspecialchars($contact[$i]['FONCTION']):'';
            $envoi .= '<Contact Etat="'.$etat.'">
                                            <IND_FOU Format="N2">'.$contact[$i]['IND_FOU'].'</IND_FOU>
                                            <NOM Format="A25">'.$contact[$i]['NOM'].'</NOM>
                                            <FONCTION Format="A40" >'.$contact[$i]['FONCTION'].'</FONCTION>
                                            <TEL Format="A16">'.$contact[$i]['TEL'].'</TEL>
                                            <FAX Format="A16">'.$contact[$i]['FAX'].'</FAX>
                                            <TELPORT Format="A16" >'.$contact[$i]['TELPORT'].'</TELPORT>
                                            <EMAIL Format="A100">'.$contact[$i]['EMAIL'].'</EMAIL>
                                            <COD_ADR Format="A3"></COD_ADR>
                                            <VIBOXAP Format="L">'.$contact[$i]['VIBOXAP'].'</VIBOXAP>
                                            <OXALINK_ID>'.$idOxalinkUser.'</OXALINK_ID>
                                        </Contact>';
        }
        $envoi .='        </ListContacts>
                        <ListAdresses Modifiable="1">';
        if ($adressCompl) {
            for ($i=0; $i<count($adressCompl); $i++) {
                $etat = $adressCompl[$i]['ETAT'] ?? 'A';
                                    
                $adressCompl[$i]['RAISOC'] = isset($adressCompl[$i]['RAISOC'])?htmlspecialchars($adressCompl[$i]['RAISOC']):'';
                $adressCompl[$i]['ADRFOUR'] =  isset($adressCompl[$i]['RAISOC'])?htmlspecialchars($adressCompl[$i]['ADRFOUR']):'';
    
                $envoi .= '<Adresse Etat="'.$etat.'">
                                                    <COD_ADR Format="A12" Modifiable="1">'.$adressCompl[$i]['COD_ADR'].'</COD_ADR>
                                                    <RAISOC Format="A45" Modifiable="1">'.$adressCompl[$i]['RAISOC'].'</RAISOC>
                                                    <ADRFOUR Format="A90" Modifiable="1">'.$adressCompl[$i]['ADRFOUR'].'</ADRFOUR>
                                                    <CP Format="A10" Modifiable="1">'.$adressCompl[$i]['CP'].'</CP>
                                                    <VILLE Format="A35" Modifiable="1">'.$adressCompl[$i]['VILLE'].'</VILLE>
                                                    <CODPAYS Format="A2" Modifiable="1">'.$adressCompl[$i]['CODPAYS'].'</CODPAYS>
                                                    <TELEPHONE Format="A16" Modifiable="1">'.$adressCompl[$i]['TELEPHONE'].'</TELEPHONE>
                                                    <TELEX Format="A16" Modifiable="1">'.$adressCompl[$i]['TELEX'].'</TELEX>
                                                    <FAX Format="A16" Modifiable="1">'.$adressCompl[$i]['FAX'].'</FAX>
                                                    <EMAIL Format="A100" Modifiable="1">'.$adressCompl[$i]['EMAIL'].'</EMAIL>
                                                    <ADR_COMMANDE Format="L" Modifiable="1">'.$adressCompl[$i]['ADR_COMMANDE'].'</ADR_COMMANDE>
                                                    <ListZonesGeo Modifiable="1" NonVisible="0">';
                                    $listeGeoAdrTmp = $zoneGeoAdresse[$adressCompl[$i]['COD_ADR']]??[];
                foreach ($listeGeoAdrTmp as $zoneAdr) {
                    $envoi .= '  <ZoneGeo Etat="'.$zoneAdr['ETAT'].'">
                                                                            <DCOUP Format="A7" Objet="DCOUPGEO">'.$zoneAdr['DCOUP'].'</DCOUP>
                                                                            <ZONEGEO Format="A7" Objet="ZONEGEO">'.$zoneAdr['ZONEGEO'].'</ZONEGEO>
                                                                        </ZoneGeo>';
                }
                                        
                    $envoi .= ' </ListZonesGeo>
                                            </Adresse>';
            }
        }
        $envoi .='        </ListAdresses>
                        <ListBDD Modifiable="1">';
        foreach ($session->getSessionArray('Bdd') as $bdd) {
            $envoi .='<BDD Etat="'.$bdd['ETAT'].'">';
            $envoi .='<NO_PAGE Format="N2">'.($bdd['NO_PAGE']??'').'</NO_PAGE>';
            $envoi .='<NUMORDRE Format="N2">'.$bdd['NUMORDRE'].'</NUMORDRE>';
            $envoi .='<TITRE Format="A60" >'.$bdd['TITRE'].'</TITRE>';
            $envoi .='<TEXTEBDD Format="A3000" >'.$bdd['TEXTEBDD'].'</TEXTEBDD>';
            $envoi .='<VEPROC Format="L">'.$bdd['VEPROC'].'</VEPROC>';
            $envoi .='<ONGLET Format="A1" >'.$bdd['ONGLET'].'</ONGLET>';
            $envoi .='<LANGUE Format="A3">'.$bdd['LANGUE'].'</LANGUE>';
            $envoi .='<EXIST_PARAM Format="L"/>';
            $envoi .='<EXIST_SURGRP Format="L"/>';
            $envoi .='<LIEPARAM Format="L">'.$bdd['LIEPARAM'].'</LIEPARAM>';
            $envoi .='<HERITAGE Format="L">'.$bdd['HERITAGE'].'</HERITAGE>';
            $envoi .='</BDD>';
        }
        $envoi .='        </ListBDD>
                        <ListSsFamille Modifiable="1">';
        foreach ($session->getSessionArray('sousFamille') as $sousFamille) {
            $envoi .='<CODE_SFAM Etat="'.$sousFamille['ETAT'].'">'.$sousFamille['CODE_SFAM'].'</CODE_SFAM>';
        }
        $envoi .='        </ListSsFamille>
                        <ListTypeAchats Modifiable="1">';
        foreach ($session->getSessionArray('typeAchat') as $typeAchat) {
            $envoi .= '<TypeAchats Etat="'.$typeAchat['ETAT'].'">
                                            <TACFOTAC Objet="TAC">'.$typeAchat['TACFOTAC'].'</TACFOTAC>
                                            <TACFODEF>'.$typeAchat['DEFAUT'].'</TACFODEF>
                                        </TypeAchats>';
        }
        $envoi .='        </ListTypeAchats>
                        <ListMotsClef Modifiable="1">';
        foreach ($session->getSessionArray('motclef') as $motclef) {
            $motclef['MOTCLEF'] = isset($motclef['MOTCLEF'])?htmlspecialchars($motclef['MOTCLEF']):'';
            $envoi .='<MOTCLEF Etat="'.$motclef['ETAT'].'">'.$motclef['MOTCLEF'].'</MOTCLEF>';
        }
        $envoi .='        </ListMotsClef>
                        <ListZonesGeo Modifiable="1">';
        foreach ($session->getSessionArray('zoneGeo') as $zoneGeo) {
            $envoi .='
                                    <ZoneGeo Etat="'.$zoneGeo['ETAT'].'">
                                        <DCOUP Format="A7" >'.$zoneGeo['DCOUP'].'</DCOUP>
                                        <ZONEGEO Format="A7">'.$zoneGeo['ZONEGEO'].'</ZONEGEO>
                                      </ZoneGeo>
                                ';
        }
        $envoi .='        </ListZonesGeo>
                        <ListChampsSup Modifiable="1">';
                        $matches  = str_replace("CS_EXTENTION", "", preg_grep('/^CS_EXTENTION/', array_keys($array)));
        foreach ($matches as $key) {
            $completeKey = 'CS_EXTENTION'.$key;
            $explod = explode($spliter, $completeKey);
            $valeurCS = $array[$completeKey];
            $i = $explod[3];
            $envoi .='<ChpSup Etat="I">
                                            <NOCS>'.$i.'</NOCS>
                                            <VALEUR>'.($valeurCS).'</VALEUR>
                                        </ChpSup>';
        }
        $envoi .='        </ListChampsSup>
                        <ListChiffreAffaire Modifiable="1">';
        if (is_array($chiffreAffaire)) {
            foreach ($chiffreAffaire as $CA) {
                $envoi .='  <ChiffreAffaire Etat="'.$CA['ETAT'].'">
                                                <ANNEE>'.$CA['ANNEE'].'</ANNEE>
                                                <CHIFF_AFF>'.$CA['CHIFF_AFF'].'</CHIFF_AFF>
                                                <DEVISE_CA>'.$CA['DEVISE_CA'].'</DEVISE_CA>
                                                </ChiffreAffaire>';
            }
        }
        $envoi .='        </ListChiffreAffaire>
                        <ListSocietes Modifiable="1">';
        foreach ($session->getSessionArray('societe') as $societe) {
            $societe['CODE_STE'] = isset($societe['CODE_STE'])?htmlspecialchars($societe['CODE_STE']):'';
            $envoi .='<CODE_STE Etat="'.$societe['Etat'].'">'.$societe['CODE_STE'].'</CODE_STE>';
        }
        $envoi .='        </ListSocietes>
                    </Fournisseur>
                    </MajFournisseurIn>';
        
        return new \Helpers\Webservice\Wsdl('Oxaproc_fournisseur.wsdl', 'SRM_FOURNISS_ENREG', $envoi, false);
    }
}
