<?php
require_once 'application/class/class_ManageSession.php';

global $connecteur;

$action = getValue('action');
$codeFrs = getValue('codeFrs');
$ancrage = getValue('ancrage');

$mode = getValue('mode'); // Soit L (lecture), soit LE (lecture/ecriture)
if (is_null($mode) || '' == $mode)
    $mode = 'L'; // mode d'affichage par défaut
$tabInProgress = getValue('tabInProgress');

$typePourCreation = '';

switch ($action) {
    case 'CreerFournisseur':
        $typePourCreation = 'AJOUT_F';
    case 'CreerProspect':
        if ('' === $typePourCreation)
            $typePourCreation = 'AJOUT_P';
    case 'AfficherFicheFournisseur':
        // On va vider toutes les infos des popups existantes
        // AffichePopup::ViderTout(); // Spec 3780 : on peut avoir plusieurs fiches sur le même écran : on ne supprime rien
        // ComposantXslCalendrier::SupprimerTousLesCalendrier(); // Spec 3780 : on peut avoir plusieurs fiches sur le même écran : on ne supprime rien
        
        $modeTmp = ('' !== $typePourCreation) ? $typePourCreation : $mode;
        // Construction de l'array de infos sur les onglets
        $arrayPresentation = GestFourniss::BuildXmlListeOnglets($codeFrs, $ancrage, $modeTmp, $tabInProgress);
        // Affichage de la présentation dynamique
        $array = Presentation_Dyn_Onglets::BuildXml($arrayPresentation, $mode, $tabInProgress, $codeFrs);
        $genXsl = new GenXslt(true);
        Affichage::innerHTMLPointeur($ancrage, $genXsl->XslHtml(Presentation_Dyn_Onglets::$fichier_xml, $array));
        
        // Onglet par défaut
        if (is_null($tabInProgress) || $tabInProgress == '')
            $tabInProgress = GestFourniss_Docs_Ratt::getIdOnglet($codeFrs);
        
        // On affiche le contenu de l'onglet courant
        GestFourniss::AfficherOngletCourant($tabInProgress, $codeFrs, $ancrage, $mode);
        
        $titreFiche = $arrayPresentation['titre']['!libelle'];
        if ('' != $codeFrs)
            $titreFiche .= ' (' . $codeFrs . ')';
        
        Affichage::innerHTML('FicheEditionElement_Titre', $titreFiche);
        
        break;
    case 'ValidationInit':
        $confirmation = false;
        $infosFournisseur = GestFourniss::WsdlEnregistrer($codeFrs, $confirmation);
        
        if ('' == $codeFrs)
            $codeFrs = $infosFournisseur['CODE'];
        
        if ('O' == $infosFournisseur['Statut'])
            echo 'CallUrl("gest_fourniss.php?ancrage=' . $ancrage . '&codeFrs=' . urlencode($codeFrs) . '&action=EnregistrerLienFournisseur");';
        else {
            $_SESSION['ValidationFournisseur'] = serializeSecure($infosFournisseur);
            echo 'OpenPopup(\'gest_fourniss.php?action=Validation&ancrage=' . $ancrage . '&codeFrs=' . urlencode($codeFrs) . '&mode=LE\', \'win_pop_validation\', 1000, 200);';
        }
        
        break;
    case 'Validation':
        $infosFournisseur = unserializeSecure($_SESSION['ValidationFournisseur']);
        unset($_SESSION['ValidationFournisseur']);
        GestFourniss::GetAfficheErreur($infosFournisseur, $action, $ancrage, $codeFrs)->echoHtml();
        break;
    case 'EnregistrementPopup':
        $info_popup = 'Popup';
    case 'Enregistrement':
        if (is_null($info_popup))
            $info_popup = '';
        $confirmation = true;
        $infosFournisseur = GestFourniss::WsdlEnregistrer($codeFrs, $confirmation);
        if ('O' == $infosFournisseur['Statut']) {
            echo 'CallUrl("gest_fourniss.php?ancrage=', $ancrage, '&codeFrs=', urlencode($codeFrs), '&action=EnregistrerLienFournisseur', $info_popup, '");';
        } else {
            GestFourniss::GetAfficheErreur($infosFournisseur, $action, $ancrage, $codeFrs)->echoHtml();
        }
        break;
    case 'EnregistrerLienFournisseurPopup':
    case 'EnregistrerLienFournisseur':
        if (Param::GetLienFournisseurSocieteActif() && FicheFournisseurXml::GetIsModeCreation(FicheFournisseurXml::ChargeSession($codeFrs))) {
            $retourWsdl = GestFourniss::WsdlLienSociete($codeFrs);
            if ('O' != $retourWsdl['Statut'])
                Affichage::messageJS(Trad('L\'enregistrement des informations du fournisseur s\'est effecuée correctement, cependant une erreur est survenue lors de l\'enregistrement de son lien avec la société.') . ' : ' . $retourWsdl['MsgErreur']);
        }
        if ('EnregistrerLienFournisseurPopup' == $action)
            echo 'window.closePopup();parent.'; // Notez la présence de 'parent.' dans la ligne ci-dessous
        echo 'TraiteUrl(\'gest_fourniss.php?action=AfficherFicheFournisseur&codeFrs=', htmlentities($codeFrs), '&ancrage=', $ancrage, '&mode=L&tabInProgress=', GestFourniss_Identity::getIdOnglet($codeFrs), '\', document.getElementById(\'tabInProgress\'));';
        
        break;
    case 'ChangeFavori':
        $resultat = GestFourniss::WsdlChangeFavori($codeFrs);
        if ('E' == $resultat['Statut'])
            Affichage::messageJS($resultat['MsgErreur']);
        else {
            $idBase = getValue('idBase');
            $action = $resultat['Action'];
            if ($action == 'A')
                $classeCss = 'img_favorioui_16x16 img16 dib';
            else
                $classeCss = 'img_favoripossible_16x16 img16 dib';
            Affichage::setAttribut($idBase, 'className', $classeCss);
            // PopupBrowse::execSearch('btnRechercherSimple', true);
        }
        
        break;
    case 'EditerFiche':
        $resultat = GestFourniss::WsdlEditerFiche($codeFrs);
        if ('E' == $resultat['Statut'])
            Affichage::messageJS($resultat['MsgErreur']);
        else
            echo 'window.open(\'', Fichier::GetURL('tmp', $resultat['FichierPDF'], urlencode($codeFrs)), '.pdf\', "fiche_four");';
        break;
    case 'InviterALG':
        $resultat = GestFourniss::WsdlInviterFournisseur($codeFrs, 'ALG');
        if ('E' == $resultat['Statut'])
            Affichage::messageJS($resultat['MsgErreur']);
        else {
            Affichage::messageJS(Trad('Ce fournisseur a été invité chez le partenaire ALG.'));
            PopupBrowse::execSearch('btnRechercherSimple');
        }
        break;
}

$connecteur->disconnect();
exit();