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

/**
 * Programme de demarrage
 */

$object = getValue('OBJECT');



if ($object == 'select_soc_global') {
    // Changement de la société
    // Si le code centre emetteur et et le code centre de livraison de la société sont renseigné alors c'est ok
    $societe = getValue($object);
    
    /**
     * Mis en commentaire suite dossier 24462 !!!! ATTENTION SI re re retour avant de decommenter la ligne ci dessous
     * revoir dossier 21955 et 24462
     * if (array_key_exists('SessionUser_SocUsr', $_SESSION) && $_SESSION['SessionUser_SocUsr'] == $societe) return ; // Dossier 21955 Ajout
     */
    
    if ($infoParam = utilisateur::getAllValueInitSessionByUserAndSociete($_SESSION['Session_Login'], $societe)) 
    {        
        if (array_key_exists('CTR_EMET', $infoParam) && array_key_exists('CTR_LIV', $infoParam) && $infoParam['CTR_EMET'] != '' && $infoParam['CTR_LIV'] != '') {
            
            $idPanier = 0;
            $nb_ligne_panier = Panier::getNbLignePanier($_SESSION['id_user'], $idPanier);

            if (174 == $_SESSION['Session_NumClient']) { // Uniquement si client 174
                $si = sqlcs::getCSValueSpecific174($infoParam['CTR_EMET'])->Trouve1() ?? [];
                if (!empty($si)) {
                    $infoParam['SI'] = $si['VALEUR'];
                }
            }

            if ($nb_ligne_panier != 0) 
            {
                if (is_null(getValue('action')) || getValue('action') != 'enregistrerConf') 
                {
                    $PanierEntete = new PanierEntete();
                    $PanierEntete->getEntetePanier($idPanier, $_SESSION['id_user']);
                    
                    $lignesPanier = SqlPanier::rqGetAllLignePanier($idPanier)->TrouveTous();
                    $isAccordCadre = 0;
                    foreach($lignesPanier as $ligne)
                    {
                        if($ligne['COD_ACD'] != '')
                        {
                            $isAccordCadre++;
                        }
                    }

                    echo Menu::refreshMenuUtilisateur();
                    
                    echo "Oxa_getDevice().window.closePopup('popup_liste_societes_user');";
                    echo 'if(window.confirm("', cnv_to_javascript(strBuild(trad('Un panier est en cours de saisie sur la société @1@. Voulez-vous confirmer le changement de société de votre panier ? '), $PanierEntete->getCODE_STE())), ($isAccordCadre == 1 ? cnv_to_javascript(trad('L\'accord-cadre présent sera supprimé.')) : ($isAccordCadre > 1 ? cnv_to_javascript(trad('Les accords-cadres présents seront supprimés.')) :'')) ,'"))', '{CallUrlAsync("profil_user.php?OBJECT=select_soc_global&action=enregistrerConf&select_soc_global=' . urlencode($societe) . '","","' . trad('Veuillez patienter, traitement encours') . '");';

                    echo "}"; 

                    echo "if(document.getElementById('sessionSecImpu').childNodes[1] !== undefined)
                    {
                        document.getElementById('sessionSecImpu').childNodes[1].innerHTML =\"".$infoParam['SI']."\";
                        closePopup(); 
                    }";
                    $_SESSION['Session_LibSectionImputation'] = $infoParam['SI'];
                    $connecteur->disconnect();
                    exit();
                }
            }
            $_SESSION['Session_LibSectionImputation'] = $infoParam['SI'];
            $libelleSociete = SqlSociete::getRaisonSociale($societe)->trouve1();
            echo "if(document.getElementById('sessionSecImpu').childNodes[1] !== undefined)
            {
                document.getElementById('sessionSecImpu').childNodes[1].innerHTML =\"".$infoParam['SI']."\";
                closePopup(); 
            }";

            echo "document.getElementById('select_soc_globallibelle').innerHTML =\"".Menu::truncate(utf8_decode($libelleSociete['RAIS_SOC']), 20, "...")."\";";
            echo "document.getElementById('nomSocieteHeader').innerHTML =\"".Menu::truncate(utf8_decode($libelleSociete['RAIS_SOC']), 20, "...")."\";";
            // Dossier 26636 : ajout du true pour mettre à jour le tampon ; sinon la société revient à la société de connexion
            // lors du chargement d'un panier modèle.
            utilisateur::setAllFieldsSessionUser($infoParam, true);
            
            utilisateur::setSociete($societe);
            
            echo Menu::refreshMenuUtilisateur();
            
            $_SESSION['PANIER_A_ACTUALISER'] = false;
            $connecteur->disconnect();
            exit(); // 26025 Dans le cas ou le panier est vide donc le setSociete ne lance pas le controle panier, il faut juste rester sur l'écran actuel sans aller sur le profil d'utilisateur
        }
        
        $_SESSION['SessionUser_CodeCtrEmetteur'] = $infoParam['CTR_EMET'] ?? '';
        $_SESSION['SessionUser_CodeCtrLivraison'] = $infoParam['CTR_LIV'] ?? '';
    
    /**
     * ATTENTION DANS CE PROCESSS il faut travailler via SessionUser_SocUsr
     */
    } else {
        $_SESSION['SessionUser_CodeCtrEmetteur'] = '';
        $_SESSION['SessionUser_CodeCtrLivraison'] = '';
    }
    echo Menu::refreshMenuUtilisateur();
    $_SESSION['SessionUser_SocUsr'] = $societe;
    $_POST['action'] = 'initialisation';

    echo 'document.location.href=\'V2/utilisateur/maSession/user/societe/'.$societe.'\';';
    die();

    // echo "$.redirect('V2/utilisateur/maSession', {'CODE_STE' : '".$societe."'});";
}

$array['MonProfil_lien'] = array(
    '!value' => "javascript:CallUrl('fiche_user.php?action=initialisation');"
);
$array['MonProfil_onclick'] = array(
    '!onclick' => "changeDisplay('onglet_monProfil',true); changeDisplay('onglet_maSession',false); changeDisplay('onglet_mesBackups',false);"
);

$array['MaSession_lien'] = array(
    '!value' => "javascript:CallUrl('session_user.php?action=initialisation');"
);
$array['MaSession_onclick'] = array(
    '!onclick' => "changeDisplay('onglet_maSession',true); changeDisplay('onglet_monProfil',false); changeDisplay('onglet_mesBackups',false);"
);

// On initialise un flag iniquant si l'utilisateur à la possibilité de définir ses backup ou non => cela conditionne l'affichage de l'onglet "Mes backups"
$array['gestionBackup'] = array(
    '!value' => $_SESSION['AuthGestBackup']
);
$array['MesBackups_lien'] = array(
    '!value' => "javascript:CallUrl('user_backup.php?action=initialisation');"
);
$array['MesBackups_onclick'] = array(
    '!onclick' => "changeDisplay('onglet_mesBackups',true); changeDisplay('onglet_monProfil',false); changeDisplay('onglet_maSession',false);"
);

// On tient compte du mode backup : si le mode backup est activé alors le backup a seulement acces aux paramètres de session, pas au profil utilisateur ni à la gestion des mots de passe
if (isset($_SESSION['MODE_BACKUP']) && $_SESSION['MODE_BACKUP'] == 1)
    $array['mode_backup'] = array(
        '!actif' => 1
    );
// Si le mode backup est désactivé
else
    $array['mode_backup'] = array(
        '!actif' => 0
    );

$obj_xml = new GenXslt();
echo "getObj('men_gene').innerHTML = \"", HttpReplacePointeur($obj_xml->XslHtml('application/xsl/profil_user.xsl', $array)), '";';

// IMPORTANT CAR LE PROGRAMME CI-DESSOUS PEUT UTILISER LE POST de la combo de choix de sosciete
require_once 'application/webroot/session_user.php';
