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

$panier_modele = ListePanier(1);
$panier_brouillon = ListePanier(0);

// paniers modeles

$message_suppression_panier = HttpReplacePointeur(trad('Confirmez-vous la suppression du panier ?'));
$message_chargement_panier = HttpReplacePointeur(trad("Le panier en cours n'est pas vide et son contenu sera perdu, voulez-vous poursuivre ?"));
if (getValue('action') == 'initPaniersModeles') {

    $array_menu['titre'] = Trad('Paniers modèles');
    
    if (is_array($panier_modele)) {
        
        foreach ($panier_modele as $index => & $panier) {
            $array_menu['panier'][$index] = array(
                '!texte' => cutString($panier['lib_panier']),
                '!texteLong' => HttpReplacePointeur($panier['lib_panier']),
                '!value' => & $panier['id_panier'],
                '!nbligne' => & $panier['NB_ARTICLES'],
                '!idtr' => "panier_modele_{$index}",
                '!id' => "panier_txt_{$panier['id_panier']}",
                '!link' => "LanceEcr('recherche.php','men_gene','id_panier={$panier['id_panier']}&type=SYS&nomPanierModel=".$panier['lib_panier']."');window.scrollTo(0,0);",
                '!link_sup' => "SupPanier('{$panier['id_panier']}',\"" . JsValue($message_suppression_panier) . "\", 'BROUILLON_MODELE');window.scrollTo(0,0);",
                '!link_chg' => "ChargePanier('{$panier['id_panier']}','SYS',\"" . JsValue($message_chargement_panier) . "\");window.scrollTo(0,0);"
            );
            
            // Dans le cas où le panier modèle serait lié à une société différente de la société de la session en cours
            // On ajoute une demande de confirmation de chargement du panier à l'utilisateur en lui indiquant que les
            // axes d'imputations sont susceptibles d'être réévalués.
            
            $PanierEntete = new PanierEntete();
            $PanierEntete->getEntetePanier($panier['id_panier'], $_SESSION['id_user']);
            
            // Dossier 26636
            $societePanier = $PanierEntete->getCODE_STE();
            $societeSession = $_SESSION['Session_SocUsr'];
            
            if (1 == $PanierEntete->getIS_PANIER_MODELE() && $societePanier != $societeSession) {
                $reqInfoSocPanier = SqlDoaSociete::rqGetSocieteByCode($societePanier)->Trouve1();
                $raisonSocialePanier = (is_array($reqInfoSocPanier)) ? $reqInfoSocPanier['RAIS_SOC'] : $societePanier;
                $reqInfoSocSession = SqlDoaSociete::rqGetSocieteByCode($societeSession)->Trouve1();
                $raisonSocialeSession = (is_array($reqInfoSocSession)) ? $reqInfoSocSession['RAIS_SOC'] : $societeSession;
                $message = cnv_to_javascript(strBuild(trad('Vous êtes sur le point de charger un panier modèle dont la société (@1@) est différente de la société de votre session (@2@)'), $raisonSocialePanier, $raisonSocialeSession) . "\n\r" . trad("Les axes d\'imputation seront réévalués si nécessaire.") . "\n\r" . trad("rConfirmez vous le chargement de ce panier ?"));
                
                $message = "javascript: if(window.confirm('{$message}')){ChargePanier('{$panier['id_panier']}','SYS',\"" . $message_chargement_panier . "\");window.scrollTo(0,0);};";
                
                $array_menu['panier'][$index]['!link_chg'] = $message;
            }
            
            // Dans le cas où le panier modèle serait lié à une société différente de la société de la session en cours
            // Lors du chargement du paniermodèle pour voir le contenu du panier, on affiche en visu uniquement le panier
            if (($_SESSION['Session_SocUsr'] != $PanierEntete->getCODE_STE()) && (Param::IsSISecto() || Param::IsCDCSecto() || Param::IsSCASecto())) {
                $message = cnv_to_javascript(trad("La société du panier modèle est différente de la société de votre session.") . "\n\r" . trad('Vous allez avoir accès au panier sur la société du panier modèle'));
                $message = "javascript: if(window.confirm('{$message}')){InitSocSession('{$PanierEntete->getCODE_STE()}');LanceEcr('recherche.php','men_gene','id_panier={$panier['id_panier']}&type=VISUMODELE&mode=VISU');window.scrollTo(0,0);};";
                $array_menu['panier'][$index]['!link'] = $message;
            }
        }
    }
}// paniers brouillons
else if (getValue('action') == 'initPaniersBrouillons') {
    
    $array_menu['titre'] = Trad('Paniers brouillons');
    
    if (is_array($panier_brouillon)) {
        foreach ($panier_brouillon as $index => &$panier) {
            $PanierEntete = new PanierEntete();
            $PanierEntete->getEntetePanier($panier['id_panier'], $_SESSION['id_user']);
            
            $array_menu['panier'][$index] = array(
                '!texte' => cutString($panier['lib_panier']),
                '!texteLong' => HttpReplacePointeur($panier['lib_panier']),
                '!value' => & $panier['id_panier'],
                '!nbligne' => & $panier['NB_ARTICLES'],
                '!idtr' => "panier_brouillon_{$index}",
                '!id' => "panier_txt_{$panier['id_panier']}",
                '!link' => "InitSocSession('{$PanierEntete->getCODE_STE()}');LanceEcr('recherche.php','men_gene','id_panier={$panier['id_panier']}&type=SYS');window.scrollTo(0,0);",
                '!link_sup' => "if(SupPanier('{$panier['id_panier']}',\"" . JsValue($message_suppression_panier) . "\",'BROUILLON_MODELE')){window.scrollTo(0,0);jQuery(this).parent().parent().remove();}",
                '!link_chg' => "InitSocSession();ChargePanier('{$panier['id_panier']}','SYS',\"" . JsValue($message_chargement_panier) . "\");window.scrollTo(0,0);"
            );
            if ($pdfBrouillon = SqlParam::rqGetFicLadFromSpac($panier['id_panier'])->Trouve1())
                $array_menu['panier'][$index]['!link_pdf'] = Fichier::GetURL('pj', $pdfBrouillon['LIB01DICO'], $panier['lib_panier']);
        }
    }
} else if (getValue('action') == 'initFormulairesSimples') {
    // Affichage de liste des formulaires
    $array_menu['titre'] = Trad('Formulaires simples');
    
    $Formulaire = new Formulaire($buf_user);
    
    // Regle de gestion des formulaires simples
    if ($panier_formule = $Formulaire->GetFormulaireSimple()) {
        foreach ($panier_formule as $index => & $panier) {
            $panier['NO_CDE'] = trim($panier['NO_CDE']);
            // Requete SQL : Nombre de ligne du panier
            
            $count = SqlPanier::rqGetNbLigneFo($panier)->Trouve1();
            $array_menu['panier'][$index] = array(
                '!texte' => cutString($panier['LIBELLE']),
                '!texteLong' => HttpReplacePointeur($panier['LIBELLE']),
                '!value' => & $panier['NO_CDE'],
                // affichage du nombre de ligne présente pour ce formulaire au niveau de la liste des formulaires simple.
                '!nbligne' => $count['result'],
                '!idtr' => "panier_formulaire_{$index}",
                '!id' => "panier_txt_{$panier['NO_CDE']}",
                '!link' => "LanceEcr('recherche.php?action=formulaireSimple','men_gene','code_formulaire_simple={$panier['NO_CDE']}&type=AUT');window.scrollTo(0,0);",
                '!link_chg' => "ChargePanier('{$panier['NO_CDE']}','AUT',\"" . HttpReplacePointeur(trad("Le panier en cours n'est pas vide et son contenu sera perdu, voulez-vous poursuivre ?")) . "\");window.scrollTo(0,0);"
            );
        }
    }
}
 
$genXsl = new GenXslt(true);

Affichage::innerHTMLPointeur(ID_ANCRANGE, $genXsl->XslHtml('application/xsl/liste_paniers_modeles.xsl', $array_menu));
    