<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
// $_SESSION['AuthAccesAO'] = true;

use Helpers\Outil\Roles;

class Menu
{

    const fichier_xsl_menu = 'application/xsl/menu_panier.xsl';

    const id_select_societe = 'id_select_soc_global';

    const id_menu_panier = 'id_menu_panier';

    const id_menu_utilisateur = 'id_menu_utilisateur';

    const id_libelle_societe = 'id_libelle_societe';

    const id_menu_signa = 'id_menu_signa';
    
    const id_menu_param = 'id_menu_param';

    const id_panier_mnt = 'id_sp_panier_mnt_';

    const id_panier_dev = 'id_sp_panier_dev_';

    const id_menu_suivi = 'id_menu_suivi';

    const id_menu_ao = 'id_menu_ao';

    const id_menu_notation = 'id_menu_notation';

    const id_menu_admin = 'id_menu_admin';

    const id_menu_collab = 'id_menu_collab';

    const id_menu_droits = 'id_menu_droits';

    const id_menu_bs = 'id_menu_bs';

    const id_menu_burger = 'id_menu_burger';

    const id_menu_accueil = 'id_menu_accueil';

    const id_menu_doa = 'id_menu_doa';

    const id_menu_doa_dossier = 'id_menu_doa_dossier';

    const id_menu_doa_modele = 'id_menu_doa_modele';

    const id_menu_doa_biblio = 'id_menu_doa_biblio';

    const id_menu_fournisseurs = 'id_menu_fournisseurs';

    const id_menu_fournisseurs_suivi_dem = 'id_menu_fournisseurs_suivi_dem';

    const id_menu_campagnes = 'id_menu_campagnes';

    const allMenu = false;

    public static function &getAppelOffre()
    {


        $menu = null;
        $optionMenu = null;

        if (DroitAcces::GetModuleAO() || DroitAcces::GetALL()) { // Si l'utilisateur est autorisé à acceder aux AO
            // Paramétrage affichage du module AO
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("liste_AO.php","action=listeAO");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('AO'),
                '!module' => 'AO_LISTE'
            );
        }

        if (!is_null($optionMenu)) {
            $menu = array(
                '!image' => 'images/picto_AO.gif', // chemin de l'icone
                '!type_menu' => TypeSuivi::AO,
                '!titre' => trad('Appel d\'offres'),
                '!id' => Menu::id_menu_ao,
                'item' => &$optionMenu['item']
            );
        }

        return $menu;
    }

    public static function menuCollecteDesBesoin()
    {
        //DA
        /*$optionMenu['item']['A']['menu']['A']['bloc'][1] = array(
            '!titre' => trad('DA'),
            '!icon' => '',
            '!lien' => 'window.location = "V2/DemandeAchat/index";',
            '!class' => 'mg-da'
        );

        $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][]  =
            array(
                '!titre' => trad('Gestion des DA'),
                '!icon' => '',
                '!lien' => 'window.location = "V2/DemandeAchat/index";',
            );*/



        //CDE
        $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
            '!titre' => trad('CDE'),
            '!icon' => '',
            '!lien' => 'window.location = "V2/Commande/index";',
            '!class' => 'mg-commande'
        );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Gestion des CDE'),
                '!icon' => '',
                '!lien' => 'window.location = "V2/Commande/index";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Gare de triage'),
                '!lien' => 'window.location = "V2/Commande/gareDeTriage";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Signature des CDE'),
                '!lien' => 'window.location = "V2/Commande/signature";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Délégation des CDE'),
                '!lien' => 'window.location = "V2/global/Commande/delegationSignature";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Gestion des modèles'),
                '!lien' => 'window.location = "V2/Commande/modele";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Edition'),
                '!lien' => 'window.location = "V2/Commande/menuIntermediaire/edition";',
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  =
            array(
                '!titre' => trad('Notation des commandes'),
                '!lien' => 'window.location = "V2/Commande/menuIntermediaire/notation";',
            );




        //BR
        /*$optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
            '!titre' => trad('BR'),
            '!icon' => '',
            '!lien' => "",
            '!class' => 'mg-br'
        );

        $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][]  =
            array(
                '!titre' => trad('Gestion des receptions'),
                '!icon' => '',
                '!lien' => ""
            );

        $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][]  =
            array(
                '!titre' => trad('Reception automatiques'),
                '!icon' => '',
                '!lien' => ""
            );*/

        return $optionMenu;
    }

    public static function menuLefteprocEasyDemat()
    {

        $optionMenu = null;
        $notification = null;

        if (!DroitAcces::IsModeBackup() || DroitAcces::GetALL()) {

            if (DroitAcces::GetSignatureDelegation() || DroitAcces::GetSignatureCde() || DroitAcces::GetSignatureDa() || DroitAcces::GetALL()) {

                $optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
                    '!titre' => trad('Signatures'),
                    '!icon' => 'img_ligne_libre_mini_16x16',
                    '!lien' => 'CallUrl(\'tableau_de_bord.php?ancrage=men_gene&signatureOnly=1\');window.scrollTo(0,0);',
                    '!class' => 'mg-signature',
                    '!custom_id' => 'menuLeftSignatures'
                );
            }
            // Si l'utilisateur est autorisé au moins sur un module de signature
            if (DroitAcces::GetSignatureDelegation() || DroitAcces::GetALL()) {
                $sign = new Sign();

                if (DroitAcces::GetSignatureBap() || DroitAcces::GetALL()) {
                    // Paramétrage affichage du module BAP
                    //$conteur = $sign->totalNoBapToSign;
                    $conteur = $_SESSION['totalNoBapToSign'];
                    $lien =  Menu::getLienSignatureBAP();
                    $titre = trad('Signer les BAP');
                    if ($conteur != '' && $conteur != 0) {
                        $notification[] = [
                            '!total' => $conteur,
                            '!lien' => $lien,
                            '!titre' => $titre,
                            '!id' => 'menuTopSignerBAP'
                        ];

                        $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;


                        $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0)  + $conteur;
                    }
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!module' => 'SIG_BAP',
                        '!total' => $conteur,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=BAP");',
                        '!bulle' => trad('Rafraîchir le nombre de BAP en signature'),
                        '!custom_id' => 'menuLeftSignerBAP'
                    );
                }

                // Paramétrage affichage du module délégation reçues
                $sign->selectListUserDelegateurs();
                $cntSignataire = count($sign->delegateurs);
                $nbItemToSign = $sign->getNbItemIndelegationToSign();
                $delegationTotal = $cntSignataire . '/' . $nbItemToSign;
                $delegationTotalTooltip = Trad('Nb de signataires') . ' = ' . $cntSignataire . ' / ' . Trad('Nb de documents') . ' = ' . $nbItemToSign;

                $conteur = $nbItemToSign;
                $lien =  Menu::getLienSignatureDelegation();
                $titre = trad('Délégation(s) Documents');
                if ($conteur != '' && $conteur != 0) {
                    $notification[] = [
                        '!total' => $conteur,
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!id' => 'menuTopDelegationDoc'
                    ];
                    $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0) + $conteur;
                }

                $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                    // '!lien' => 'CallUrl("SIGN_accueil.php","item=DELEGATION");window.scrollTo(0,0);',
                    // '!lien' => 'CallUrl("suivi_doc.php","action=accueil_delegation&TypeSuivi='.TypeSuivi::DELEGATION.'&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);',
                    '!lien' => $lien,
                    '!titre' => $titre,
                    '!module' => 'SIG_DELEGATION',
                    '!total' => $conteur,
                    '!totalInfo' => $delegationTotal,
                    '!totalTooltip' => $delegationTotalTooltip,
                    '!actu' => "CallUrl('SIGN_manage.php','actu=DELEGATION');",
                    '!bulle' => trad('Rafraîchir le nombre de délégations en attente'),
                    '!custom_id' => 'menuLeftDelegationDoc'
                );
            }
        }

        $optionMenu['notification'] = $notification;


        return $optionMenu;
    }

    public static function menuLeftNew()
    {

        $optionMenu = null;
        $notification = null;

        if ($_SESSION['IS_STE_VALIDE'] && DroitAcces::GetGestionDA() || DroitAcces::GetALL()) {
            /**
             * Suppression du menu puisque inclu dans l'onglet recherche normal
             * ATTENTION Si l'on remet cette option, il faut revoir la gestion du div principal
             * $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
             * '!titre' => trad('Recherche avancée'),
             * '!icon' => 'img_ligne_libre_mini_16x16',
             * '!lien' => 'CallUrl("recherche_article.php?action=recherche_avancee")'
             * );
             */
            $optionMenu['item']['A']['menu']['A']['bloc'][1] = array(
                '!titre' => trad('Recherche'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                //'!lien' => "CallUrl('recherche_article.php?action=accueil&no_refresh=1');",
                //'!lien' => ' window.location = "V2/RechercheArticles"',
                '!lien' => 'window.location.href=\'V2/RechercheArticles\';hideMenuOnClick(this);',
                '!class' => 'mg-recherche',
                '!custom_id' => 'menuLeftRecherche'
            );

            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][]  =
                array(
                    '!titre' => trad('Recherche article'),
                    '!id' => 'rechArt',
                    '!icon' => 'img_ligne_libre_mini_16x16',
                    //'!lien' => "CallUrl('recherche_article.php?action=accueil&no_refresh=1');hideMenuOnClick(this);",
                    //'!lien' => ' window.location = "V2/RechercheArticles"',
                    '!lien' => 'window.location.href=\'V2/RechercheArticles\';hideMenuOnClick(this);',
                    '!custom_id' => 'menuLeftRechArticle'
                );

            if (DroitAcces::GetLigneLibre() || DroitAcces::getAll())
                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][]  =
                    array(
                        '!titre' => trad('Créer une ligne libre'),
                        '!icon' => 'img_ligne_libre_mini_16x16',
                        //'!lien' => 'CallUrl("barre_menu.php?action=' . Barre_menu::$act_Page_LigneLibre . '");hideMenuOnClick(this);',
                        '!lien' => 'window.location.href=\'V2/RechercheArticles/article/createEdit\';hideMenuOnClick(this);',
                        '!custom_id' => 'menuLeftCreerLigneLibre'
                    );


            if (DroitAcces::GetImportCsv()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                    '!titre' => trad('Import fichier'),
                    '!icon' => 'img_import_fichier_16x16',
                    '!lien' => 'CallUrl("recherche_article.php?action=import_fichier");hideMenuOnClick(this);',
                    '!custom_id' => 'menuLeftImportFichier'
                );
                if (CLT_ERI == $_SESSION['Session_NumClient'])
                    $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][]  = array(
                        '!titre' => trad('Import Optima'),
                        '!icon' => 'img_import_fichier_16x16',
                        '!lien' => "CallUrl('import_Optima.php');hideMenuOnClick(this);",
                        '!custom_id' => 'menuLeftImportOptima'
                    );
            }
        }


        // partie suivi


        global $connecteur;

        $droitsDA = DroitAcces::GetGestionDA();
        $droitsCDEEnvoyer = DroitAcces::GetSignatureCdeAEnvoyer();
        $droitsDev = DroitAcces::GetALL();
        $droitsSigDa = DroitAcces::GetSignatureDa();
        $droitsSigCde = DroitAcces::GetSignatureCde();
        $droitsReception = DroitAcces::GetModuleReception();
        $droitsStocks = DroitAcces::GetModuleStock();
        $droitsVisuFac = DroitAcces::GetVisuFacture();





        if ($droitsDA || $droitsReception || $droitsStocks || $droitsSigDa || $droitsSigCde || $droitsVisuFac || DroitAcces::GetGestionDocRattaches() || $droitsDev) {

            // On définit son titre et l'image associée
            // En fonction des droits de l'utilisateur les sous-menu du menu suivi sont présentés ou non

            // Si l'utilisateur a accès au suivi des DA, CDE, CDE à imprimer et Visu Historique global
            $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
                '!titre' => trad('Suivi'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-suivi',
                '!lien' => ' window.location = "V2/utilisateur/menu-intermediaire-suivi"',
                '!total' => 0,
                '!custom_id' => 'menuLeftSuivi'
            );
            if ($droitsCDEEnvoyer || $droitsDev) {
                // Sous-menu "CDE à imprimer"

                $conteur = $_SESSION['getNbCdeToPrint'];
                $lien = Menu::getLienSuiviCdeAEnvoyer();
                $titre = trad('Commande(s) à Envoyer');
                if ($conteur != '' && $conteur != 0) {
                    $notification[] = [
                        '!total' => $conteur,
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!id' => 'menuTopCommandesAEnvoyer'
                    ];

                    $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;

                    $optionMenu['item']['A']['menu']['A']['bloc'][2]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][2]['!total'] ?? 0) + $conteur;
                }
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => $lien,
                    '!lien' => 'window.location="V2/Suivi/Commandes/send";',
                    '!titre' => $titre,
                    '!module' => 'CDE_TO_PRINT',
                    '!total' => $conteur,
                    '!actu' => 'CallUrl("SIGN_manage.php","actu=commandeToSend");hideMenuOnClick(this);',
                    '!bulle' => trad("Rafraîchir le nombre de commandes en attente d'impression"),
                    '!custom_id' => 'menuLeftCommandesAEnvoyer'
                );
            }
            
            if ($droitsDA || $droitsSigDa || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DA&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Suivi/DemandesAchats/index";',
                    '!titre' => trad('Suivi des Demandes'),
                    '!module' => 'SUIVI_DA',
                    '!custom_id' => 'menuLeftSuiviDemandes'
                );

            if (array_key_exists('SpeCC003', $_SESSION) && $_SESSION['SpeCC003'] || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CRB&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi CRB'),
                    '!module' => 'SUIVI_CRB',
                    '!custom_id' => 'menuLeftSuiviCRB'
                );

            if ($droitsDA || $droitsSigCde || $droitsDev || $_SESSION['HA_CA_LIS'])
                // Sous-menu 'Suivi CDE'
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CDE&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Suivi/Commandes/index";',
                    '!titre' => trad('Suivi des Commandes'),
                    '!module' => 'SUIVI_CDE',
                    '!custom_id' => 'menuLeftSuiviCommandes'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsReception || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BR&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Suivi/Receptions/index";',
                    '!titre' => trad('Suivi des Réceptions'),
                    '!module' => 'SUIVI_BR',
                    '!custom_id' => 'menuLeftSuiviBR'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsStocks || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BS&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Suivi/BonDeSortie/index";',
                    '!titre' => trad('Suivi BS'),
                    '!module' => 'SUIVI_BS',
                    '!custom_id' => 'menuLeftSuiviBS'
                );

            // Si l'utilisateur à le droit d'accéder au module des factures
            if ($droitsVisuFac || $droitsDev)
                // Sous-menu 'Suivi BAP'
                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    //'!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BAP&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Suivi/Factures/index";',
                    '!titre' => trad('Suivi des Factures'),
                    '!module' => 'SUIVI_BAP',
                    '!custom_id' => 'menuLeftSuiviBAP'
                );

            // La consultation des documents est en accès libre
            /*$optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DOC&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Suivi des Documents'),
                '!module' => 'SUIVI_DOC',
                '!custom_id' => 'menuLeftSuiviDoc'
            );*/
        }


        if ($_SESSION['accesLicenceNotation']) {
            
            if (array_key_exists('isModuleNotation', $_SESSION) && $_SESSION['isModuleNotation']  || $droitsDev) {
                if (($_SESSION['AuthNotation'] || $_SESSION['AuthValideNotation'])) {
                    if (!isset($optionMenu['item']['A']['menu']['A']['bloc'][2])) {
                        $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
                            '!titre' => trad('Suivi'),
                            '!icon' => 'img_ligne_libre_mini_16x16',
                            '!class' => 'mg-suivi',
                            //'!lien' => ' window.location = "V2/utilisateur/menu-intermediaire-suivi"',
                            '!total' => 0
                        );
                    }
    
    
                    //$conteur = NotationCde::getNbCdeToRate($_SESSION['Session_Login']);
    
                    $tabinfo = array(
                        'Societe' => $_SESSION['Session_SocUsr']
                    );
                    
                    $conteur = isset($_SESSION['getNbCdeToRate'])?$_SESSION['getNbCdeToRate']:count(SuiviRecherche::SearchCDE(false, $tabinfo, TypeSuivi::CdeToRate, true)->TrouveTous());
    
                    $lien = 'CallUrl("suivi_doc.php?action=accueil&initData=10","TypeSuivi=' . TypeSuivi::CdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);';
                    $titre = trad('Mes commandes à noter');
                    if ($conteur != '' && $conteur != 0) {
                        $notification[] = [
                            '!total' => $conteur,
                            //'!lien' => $lien,
                            '!lien' => 'window.location="V2/Suivi/Commandes/index/CdeToRate";',
                            '!titre' => $titre,
                            '!id' => 'menuTopCommandesANoter'
                        ];
                        $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
                        $optionMenu['item']['A']['menu']['A']['bloc'][2]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][2]['!total'] ?? 0) + $conteur;
                    }
    
                    $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                        //'!lien' => $lien,
                        '!lien' => 'window.location="V2/Suivi/Commandes/index/SCdeToRate";',
                        '!titre' => $titre,
                        '!total' => $conteur,
                        '!module' => 'CDE_TO_RATE',
                        '!id' => 'nbCdeToRate',
                        '!actu' => "CallUrl('SIGN_manage.php','actu=CdeToRate');hideMenuOnClick(this);",
                        '!bulle' => trad('Rafraîchir le nombre de commandes en notation'),
                        '!custom_id' => 'menuLeftCommandesANoter'
                    );
                    $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                        //'!lien' => 'CallUrl("suivi_doc.php?action=accueil&initData=10","TypeSuivi=' . TypeSuivi::SCdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!lien' => 'window.location="V2/liste/fournisseur/notFour";',
                        '!titre' => trad('Suivi notation commande'),
                        '!custom_id' => 'menuLeftSuiviNotationCommande'
                    );
    
                    $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                        //'!lien' => 'CallUrl("ctrl_liste_frs.php?action=initListeNotationFrs&popup_id=NOTATION_FOURNISS&ancrage=men_gene&initData=10");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!lien' => 'window.location="V2/liste/fournisseur/suivi";',
                        '!titre' => trad('Suivi notation fournisseur'),
                        '!custom_id' => 'menuLeftSuiviNotationFournisseur'
                    );
                }
            }
        }

        // Incrémentation de l'indice du menu pour le prochain
        $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
            '!titre' => trad('Liste des fournisseurs'),
            //'!lien' => 'CallUrl("IU_liste_frs.php?action=initListeFrs&popup_id=FOURNISS&ancrage=men_gene");window.scrollTo(0,0);hideMenuOnClick(this);',
            '!lien' => 'window.location="V2/ajax/liste/fournisseur/suivi";',
            '!custom_id' => 'menuLeftListeFournisseurs'
        );

        // fin parti suivi

        // debut signature
        if (!DroitAcces::IsModeBackup() || DroitAcces::GetALL()) {

            if (DroitAcces::GetSignatureDelegation() || DroitAcces::GetSignatureCde() || DroitAcces::GetSignatureDa() || DroitAcces::GetALL()) {

                $optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
                    '!titre' => trad('Signatures'),
                    '!icon' => 'img_ligne_libre_mini_16x16',
                    //'!lien' => 'CallUrl(\'tableau_de_bord.php?ancrage=men_gene&signatureOnly=1\');window.scrollTo(0,0);',
                    '!class' => 'mg-signature',
                    '!custom_id' => 'menuLeftSignatures'
                );
            }
            // Si l'utilisateur est autorisé au moins sur un module de signature
            if (DroitAcces::GetSignatureDelegation() || DroitAcces::GetALL()) {
                
                // $sign = new Sign();
                if (array_key_exists('SIG_DA', $_SESSION) && $_SESSION['SIG_DA']) {
                    
                    $conteur =  $_SESSION['totalNoDaToSign'];
                    // $lien =  Menu::getLienSignatureDA();
                    $lien = 'window.location="V2/Signature/DA/listeDoc";';
                    $titre = trad('Signer les DA');
                    if ($conteur != '' && $conteur != 0) {
                        $notification[] = [
                            '!total' =>  $_SESSION['totalNoDaToSign'],
                            '!lien' => $lien,
                            '!titre' => $titre,
                            '!id' => 'menuTopSignerDA'
                        ];
                        if (key_exists('!total', $notification))
                            $notification['!total'] = $notification['!total'] + $conteur;
                        else
                            $notification['!total'] = $conteur;

                        if (key_exists('!total', $optionMenu['item']['A']['menu']['A']['bloc'][3]))
                            $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0) + $conteur;
                        else
                            $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = $conteur;
                    }
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!module' => 'SIG_DA',
                        '!total' => $_SESSION['totalNoDaToSign'],
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=DA");',
                        '!bulle' => trad('Rafraîchir le nombre de DA en signature'),
                        '!custom_id' => 'menuLeftSignerDA'
                    );
                }

                // Paramétrage affichage du module CDE

                // le module de signature des CDE est affiché si :
                // L'utilisateur est signataire de commande ou bien s'il est signature de DA.
                // Si l'utilisateur est signataire de DA seulement alors on modifie les libellés afin d'indiquer que les CDE en signature sont des avenants
                if (DroitAcces::GetSignatureCde() || DroitAcces::GetSignatureDa() || DroitAcces::GetALL()) {
                    // Paramétrage affichage du module CDE


                    $conteur = $_SESSION['totalNoCdeToSign'];
                    // $lien =  Menu::getLienSignatureCDE();
                    $lien = 'window.location="V2/Signature/CDE/listeDoc";';
                    $titre = $_SESSION['SIG_CDE'] ? trad('Commandes à signer') : trad('Signer les avenants sur commande');
                    if ($conteur != '' && $conteur != 0) {
                        $notification[] = [
                            '!total' => $conteur,
                            '!lien' => $lien,
                            '!titre' => $titre,
                            '!id' => 'menuTopSignerCDE'
                        ];
                        $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
                        $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0) + $conteur;
                    }
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!module' => 'SIG_CDE',
                        '!total' => $conteur,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=CDE");',
                        '!bulle' => $_SESSION['SIG_CDE'] ? trad('Rafraîchir le nombre de CDE en signature') : trad('Rafraîchir le nombre d\'avenants en signature'),
                        '!custom_id' => 'menuLeftSignerCDE'
                    );
                }
                if (DroitAcces::GetSignatureBap() || DroitAcces::GetALL()) {
                    // Paramétrage affichage du module BAP
                    //$conteur = $sign->totalNoBapToSign;
                    $conteur = $_SESSION['totalNoBapToSign'];
                    //$lien =  Menu::getLienSignatureBAP();
                    $lien = 'window.location="V2/Signature/BAP/listeDoc";';
                    $titre = trad('Signer les BAP');
                    if ($conteur != '' && $conteur != 0) {
                        $notification[] = [
                            '!total' => $conteur,
                            '!lien' => $lien,
                            '!titre' => $titre,
                            '!id' => 'menuTopSignerBAP'
                        ];

                        $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;


                        $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0)  + $conteur;
                    }
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!module' => 'SIG_BAP',
                        '!total' => $conteur,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=BAP");',
                        '!bulle' => trad('Rafraîchir le nombre de BAP en signature'),
                        '!custom_id' => 'menuLeftSignerBAP'
                    );
                }

                // Paramétrage affichage du module délégation reçues
              //  $sign->selectListUserDelegateurs();
              
                // $cntSignataire = count($sign->delegateurs);
                // $nbItemToSign = isset($_SESSION['getNbItemIndelegationToSign'])? $_SESSION['getNbItemIndelegationToSign'] :$sign->getNbItemIndelegationToSign();
                // $delegationTotal = $cntSignataire . '/' . $nbItemToSign;
                $nbItemToSign =  $_SESSION['nbDelegRecu'];
                $delegationTotal = $_SESSION['nbDelegRecu'] ;
                // $delegationTotalTooltip = Trad('Nb de signataires') . ' = ' . $cntSignataire . ' / ' . Trad('Nb de documents') . ' = ' . $nbItemToSign;

                $conteur = $nbItemToSign;
                //$lien =  Menu::getLienSignatureDelegation();
                $lien = 'window.location="V2/Signature/all/delegationSignature";';
                $titre = trad('Délégation(s) Documents');
                if ($conteur != '' && $conteur != 0) {
                    $notification[] = [
                        '!total' => $conteur,
                        '!lien' => $lien,
                        '!titre' => $titre,
                        '!id' => 'menuTopDelegationDoc'
                    ];
                    $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
                    $optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][3]['!total'] ?? 0) + $conteur;
                }

                $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                    // '!lien' => 'CallUrl("SIGN_accueil.php","item=DELEGATION");window.scrollTo(0,0);',
                    // '!lien' => 'CallUrl("suivi_doc.php","action=accueil_delegation&TypeSuivi='.TypeSuivi::DELEGATION.'&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);',
                    '!lien' => $lien,
                    '!titre' => $titre,
                    '!module' => 'SIG_DELEGATION',
                    '!total' => $conteur,
                    '!totalInfo' => $delegationTotal,
                    // '!totalTooltip' => $delegationTotalTooltip,
                    '!actu' => "CallUrl('SIGN_manage.php','actu=DELEGATION');",
                    '!bulle' => trad('Rafraîchir le nombre de délégations en attente'),
                    '!custom_id' => 'menuLeftDelegationDoc'
                );
                // Paramétrage affichage du module mise en délégation
                // if(DroitAcces::getDroit('PARAMSIG', 'RESERVE_DELEG_ADMIN')->Trouve1()['LIB01PARV'] != 'O' || DroitAcces::GetALL())
                // {
                //     $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                //         '!lien' => 'CallUrl("IU_signature_manage.php?action=accueil","item=DELEGUER");window.scrollTo(0,0);',
                //         '!module' => 'SIG_MISE_DELEGATION',
                //         '!titre' => Trad('Gérer mes délégations')
                //     );
                // }
            }
        }

        //fin signature

        // debut bon de reception 
        if (DroitAcces::GetModuleReception() || DroitAcces::GetALL()) {

            $optionMenu['item']['A']['menu']['A']['bloc'][4] = array(
                '!titre' => trad('BR'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-br',
                //'!lien' => 'CallUrl("BR_ToDo.php?action=accueil",""); window.scrollTo(0,0);',
                '!custom_id' => 'menuLeftBR'

            );
            // 

            if ($_SESSION['BR_CreatModif'] || DroitAcces::GetALL()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
//                    '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBR","");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Reception/index";',
                    '!titre' => trad('Création de BR'),
                    '!custom_id' => 'menuLeftCreationBR'
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                    '!lien' => 'window.location="V2/Reception/bonrecep/list";',
                    '!titre' => trad('Gestion de BR')
                );
            }

            if (DroitAcces::GetBRPhaseCtrl()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                    //'!lien' => 'CallUrl("IU_br_creation.php?action=accueilBRtoCtrl","");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Reception/ControleQualite/index";',
                    '!titre' => trad('Contrôles qualité'),
                    '!custom_id' => 'menuLeftControlesQual'
                );
            }

            if ($_SESSION['BR_CreatModif'] || DroitAcces::GetALL()) {
                // $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                //     '!lien' => 'window.location="V2/Reception/index";',
                //     '!titre' => trad('BR attendus'),
                //     '!custom_id' => 'menuLeftBRAttendus'
                // );

                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                    // '!lien' => 'CallUrl("IU_br_creation.php?action=RepartitionDemandeur",""); window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!lien' => 'window.location="V2/Reception/RepartitionDemandeur";',
                    '!titre' => trad('Répartition demandeur'),
                    '!custom_id' => 'menuLeftRepartDemandeur'
                );
            }
        }

        // fin bon de reception

        // debu AO
        if ($_SESSION['HA_AO_CMV'] || $_SESSION['HA_AO_ADM'] || $_SESSION['HA_AO_LIS']) {
            $optionMenu['item']['A']['menu']['A']['bloc'][5] = array(
                '!titre' => trad('Consultation'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-ao',
                '!total' => 0,
                '!lien' => Menu::getLienSuiviAoPanier(true)

            );
        }
        //if (DroitAcces::GetModuleAO() || $droitsDev) { // Si l'utilisateur est autorisé à acceder aux AO
        if ($_SESSION['HA_AO_CMV'] || $_SESSION['HA_AO_ADM'] || $_SESSION['HA_AO_LIS']) {
            // Paramétrage affichage du module AO
            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!lien' => 'window.location.href=\'V2/Consultation/filtre/NON_CLOS\';hideMenuOnClick(this);',
                '!titre' => trad('Consultations non closes'),
                '!module' => 'AO_LISTE',
                '!custom_id' => 'menuLeftAONonClos'
            );
        }

        if ($_SESSION['HA_AO_CMV'] || $_SESSION['HA_AO_ADM']) {
            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => trad('Créer une consultation'),
                '!lien' => 'window.location.href=\'V2/Consultation/creatEdit/noId\';hideMenuOnClick(this);',
                '!custom_id' => 'menuLeftCreerAO'
            );

            // $conteur =  Menu::getNbAOAEnvoyer();
            $conteur = 0;
            $lien =  'window.location.href=\'V2/Consultation/filtre/A_ENVOYER\';hideMenuOnClick(this);';
            $titre = Trad('Consultations à envoyer');

            if ($conteur != '' && $conteur != 0) {
                $notification[] = [
                    '!total' => $conteur,
                    '!lien' => $lien,
                    '!titre' => $titre,
                    '!id' => 'menuTopAOAEnvoyer'
                ];

                $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;


                $optionMenu['item']['A']['menu']['A']['bloc'][5]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][5]['!total'] ?? 0) + $conteur;
            }


            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => $titre,
                '!total' => $_SESSION['getNbAOAEnvoyer'] ?? 0,
                '!lien' => $lien,
                '!custom_id' => 'menuLeftAOAEnvoyer'
            );

            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => trad('Gestion consultations'),
                '!lien' => 'window.location.href=\'V2/Consultation\';hideMenuOnClick(this);',
                '!module' => 'AO_SUIVI_PANIER',
                '!custom_id' => 'menuLeftSuiviAO'
            );

            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => trad('Suivi des référencements des consultations'),
                '!lien' => 'window.location.href=\'V2/Consultation/referencementAO\';hideMenuOnClick(this);',
                '!module' => 'AO_SUIVI_PANIER',
                '!custom_id' => 'menuLeftSuiviRefAO'
            );
        }

        // fin AO
        // Fournisseur

        if (SqlUsers::droitsUtilisateur('HA_FOU_CRE')->Trouve1()['DROIT'] || SqlUsers::droitsUtilisateur('HA_PRO_CRE')->Trouve1()['DROIT']) {
            // Paramétrage affichage du module Fournisseur
            $optionMenu['item']['A']['menu']['A']['bloc'][7] = array(
                '!titre' => trad('Fournisseur'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-frs',
                //'!lien' => 'CallUrl("BR_ToDo.php?action=accueil",""); window.scrollTo(0,0);',
                '!custom_id' => 'menuLeftFournisseur'

            );
            if ($_SESSION['OX_FRS_SIM']) {
            $optionMenu['item']['A']['menu']['A']['bloc'][7]['sub'][] = array(
                '!lien' => 'window.location.href=\'V2/Fournisseur/creation-fournisseur-simplie/1\';hideMenuOnClick(this);',
                '!titre' => trad('Création Fournisseur'),
                '!module' => 'FOURNISSEUR',
                '!custom_id' => 'menuLeftFournisseur'
            );
            }
            $optionMenu['item']['A']['menu']['A']['bloc'][7]['sub'][] = array(
                '!lien' => 'window.location.href=\'V2/global/Fournisseur/suiviDemandes/1\';hideMenuOnClick(this);',
                '!titre' => trad('Suivi des Demandes'),
                '!module' => 'FOURNISSEUR',
                '!custom_id' => 'menuLeftFournisseur'
            );
        }
        // Fin fournisseur 

        // evaluation
        if (($_SESSION['Session_NumClient'] == 0) || DroitAcces::GetModuleCampagne()) {

            //             $conteur = CampEve::getNbCampagneANoter();

            $arrayTMP = [];
            // $_SESSION['nbrMesNotations'] =  $conteur = count(SuiviRecherche::SearchCampNota($arrayTMP)->TrouveTous());
            if ($conteur != '' && $conteur != 0) {
                $notification[] = [
                    '!total' => $_SESSION['getNbAOAEnvoyer'] ,
                    '!lien' => 'location.href = "V2/evaluation/notation";',
                    '!titre' => trad('Mes évaluations'),
                    '!id' => 'menuTopNotations'
                ];
                $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
            }
        }

        if ($_SESSION['SIG_REF'] ?? false) {
            $signatureFournisseur = SqlFournisseur::getListeDemande('FOURNISS', [], 'CODE', 'RS', true);
            $countSignatureFournisseur = count($signatureFournisseur->trouveTous());

            // on n'affiche pas ce point de menu en mode backup
            if ($countSignatureFournisseur > 0 && !DroitAcces::IsModeBackup()) {

                $notification[] = [
                    '!total' => $countSignatureFournisseur,
                    '!lien' => 'location.href = "V2/global/Fournisseur/suiviSignature";',
                    '!titre' => trad('Mes Fournisseurs à signer'),
                    '!id' => 'menuTopFournisseursASigner'
                ];

                $notification['!total'] = ($notification['!total'] ?? 0) + $countSignatureFournisseur;
            }
        }

        // SPEC 4352 : ajout Délégation Fournisseur
        if (DroitAcces::GetSignatureDelegation()) {
            $listeDelegation = SqlREF::getListeDelegation($_SESSION['Session_Login'])->TrouveTous();
            $countDelegataireFournisseur = 0;
            foreach ($listeDelegation as $deleg) {
                $countDelegataireFournisseur += intval($deleg['nbSign']);
            }
            // $_SESSION['getListeDelegationFOURNISS'] = $countDelegataireFournisseur;

            // on n'affiche pas ce point de menu en mode backup
            if ($countDelegataireFournisseur > 0  && !DroitAcces::IsModeBackup()) {

                $notification[] = [
                    '!total' => $_SESSION['getListeDelegationFOURNISS'],
                    '!lien' => 'location.href = "V2/global/Fournisseur/delegationRecue";',
                    '!titre' => trad('Délégations Fournisseurs'),
                    '!id' => 'menuTopDelegationsFournisseurs'
                ];

                $notification['!total'] = ($notification['!total'] ?? 0) + $countDelegataireFournisseur;
            }
        }

        // Projet Achat 

        // if ($reqSqlActions = SqlDoaActions::rqGetDOAPourTDBOperationnel($_SESSION['Session_Login'])->TrouveTous())
        //     $conteur = count($reqSqlActions);
        // else
            $conteur = 0;


        if ($conteur != '' && $conteur != 0) {
            $notification[] = [
                '!total' => $conteur,
                '!lien' => Menu::getLienTableauDeBordOperationnel(),
                '!titre' => trad('Vos actions à traiter'),
                '!id' => 'menuTopActionsATraiter'
            ];
            $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;
        }



        $type = DroitAcces::GetTypeAdmin();
        if (!DroitAcces::IsModeBackup() && ('' != $type || DroitAcces::GetALL())) {



            // $inscript = new CollabManage();
            // $inscript->initNbDem($_SESSION['Session_Login'], $type);

            
            // $nbInscript = $inscript->getNbInscritionToAdmin();
            $nbInscript = $_SESSION['countModeCreation'];
            if ($nbInscript != 0 || "I" != Param::getParamActionNouveauCompte()) {


                if ($nbInscript != '' && $nbInscript != 0) {
                    $notification[] = [
                        '!total' => $nbInscript,
                        '!lien' => Menu::GetLienInscriptEnAtt($type),
                        '!titre' => trad('Inscript. en attente'),
                        '!id' => 'menuTopInscriptEnAttente'
                    ];
                    $notification['!total'] = ($notification['!total'] ?? 0) + $nbInscript;
                }
            }

            // $nbModifToAdmin = $inscript->getNbModifToAdmin();
            $nbModifToAdmin = $_SESSION['getNbModifToAdmin'];
            // Sous-menu : demandes de de modification

            if ($nbModifToAdmin != '' && $nbModifToAdmin != 0) {
                $notification[] = [
                    '!total' => $nbModifToAdmin,
                    '!lien' => Menu::GetLienModifEnAtt($type),
                    '!titre' => trad('Modif. en attente'),
                    '!id' => 'menuTopModifEnAttente'
                ];
                $notification['!total'] = ($notification['!total'] ?? 0) + $nbModifToAdmin;
            }


            // $nbBlocages = $inscript->getNbBlocagesUtilisateur();
            $nbBlocages = $_SESSION['userBloque'];
            // Sous-menu : Liste des blocages en cours

            if ($nbBlocages != '' && $nbBlocages != 0) {
                $notification[] = [
                    '!total' => $nbBlocages,
                    '!lien' => Menu::GetLienUtilisateurBloques($type),
                    '!titre' => trad('Utilisateurs bloqués'),
                    '!id' => 'menuTopUtilisateursBloques'
                ];
                $notification['!total'] = ($notification['!total'] ?? 0) + $nbBlocages;
            }
        }


        $optionMenu['notification'] = $notification;


        return $optionMenu;
    }

    public static function eprocTopMenu()
    {
        
        $arrayMenuLeft = Menu::menuLeftNew();
            
        // echo 'lkhj';exit;
        $nbNotification = $arrayMenuLeft['notification']['!total'];
        unset($arrayMenuLeft['notification']['!total']);

        $notificationGlobal = $arrayMenuLeft['notification'];

        if (getValue('call') == 'EtatStatistiques' || getValue('call') == 'Administration')
            $active = 0;
        else
            $active = 1;

        if (getValue('call') == 'Administration') {
            $arrayMenuLeft = Menu::getMenuAdministrationCollaborateurs();
            $typeMenu = 'Administration';
        } else {
            $typeMenu = 'eProcurement';
        }

        $menu = array(
            '!type_menu' => 'eProcurement',
            '!type_menu_left' => $typeMenu,
            '!titre' => trad('eProcurement'),
            '!active' => $active,
            '!url'         => "V2/index/TableauDeBord",
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'],
            'notification' => $notificationGlobal,
            '!notificationTotal' => $nbNotification,
            '!custom_id' => 'menuTopEProc'
        );

        //         print_r($arrayMenuLeft['item']);
        return $menu;
    }

    public static function eprocEasyDematTopMenu()
    {
        $arrayMenuLeft = Menu::menuLefteprocEasyDemat();
        $nbNotification = $arrayMenuLeft['notification']['!total'];
        unset($arrayMenuLeft['notification']['!total']);

        $notificationGlobal = $arrayMenuLeft['notification'];

        if (getValue('call') == 'EtatStatistiques' || getValue('call') == 'Administration')
            $active = 0;
        else
            $active = 1;

        if (getValue('call') == 'Administration') {
            $arrayMenuLeft = Menu::getMenuAdministrationCollaborateurs();
            $typeMenu = 'Administration';
        } else {
            $typeMenu = 'eProcurement';
        }

        $menu = array(
            '!type_menu' => 'eProcurement',
            '!type_menu_left' => $typeMenu,
            '!titre' => trad('eProcurement'),
            '!active' => $active,
            '!url'         => "V2/index/TableauDeBord",
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'],
            'notification' => $notificationGlobal,
            '!notificationTotal' => $nbNotification,
            '!custom_id' => 'menuTopEProc'
        );

        //         print_r($arrayMenuLeft['item']);
        return $menu;
    }




    public static function factureTopMenu()
    {

        $menu = array(
            '!type_menu' => 'Factures',
            '!type_menu_left' => 'Factures',
            '!titre' => trad('Factures'),
            '!url'         => "V2/Facture/gestion-facture",
            '!id' => Menu::id_menu_signa,
            '!custom_id' => 'menuTopFactures'
        );
        return $menu;
    }

    public static function EtatStatistiquesBisTopMenu()
    {

        $menu = array(
            '!type_menu' => 'EtatStatistiques',
            '!type_menu_left' => 'EtatStatistiques',
            '!titre' => trad('EtatStatistiques'),
            '!url'         => "V2/EtatStatistiques/gestion-stat/index",
            '!id' => Menu::id_menu_signa,
            '!custom_id' => 'menuTopEtatStats'
        );
        return $menu;
    }

    public static function EtatStatistiques()
    {

        if (getValue('call') == 'EtatStatistiques')
            $active = 1;
        else
            $active = 0;

        $menu = array(
            '!type_menu' => 'EtatStatistiques',
            '!type_menu_left' => 'EtatStatistiques',
            '!titre' => trad('Etats Statistiques'),
            '!active' => $active,

            //'!url' => 'session_ipad.php?call=EtatStatistiques',
            '!url' => 'V2/EtatStatistiques/listeEtats',
            '!id' => Menu::id_menu_signa
        );
        return $menu;
    }
    public static function administrationMenu()
    {


        if (getValue('call') == 'Administration')
            $active = 1;
        else
            $active = 0;

        $notif =  Menu::menuLeftNew();
        $nbNotification = $notif['notification']['!total'];

        $arrayMenuLeft = [];
        if (($_SESSION['typeMenu'] ?? '') != 'P2P') {

            $arrayMenuLeft = Menu::getMenuAdministrationCollaborateurs();
            $nbNotification = $notif['notification']['!total'];
        }
        unset($notif['notification']['!total']);

        $menu = array(
            '!type_menu' => 'admin',
            '!type_menu_left' => 'Administration',
            '!titre' => trad('Administration'),
            '!url'         => "session_ipad.php?call=Administration",
            '!active' => $active,
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'] ?? [],
            'notification' => $notif['notification'],
            '!notificationTotal' => $nbNotification,
            '!custom_id' => 'menuTopAdministration'
        );
        return $menu;
    }
    
    public static function parametrageTopMenu()
    {
        return [];
        $menu = array(
            '!type_menu' => 'parametrage',
            '!titre'     => trad('Paramétrage'),
            '!url'       => "V2/Parametrage",
            '!id'        => Menu::id_menu_param,
            '!custom_id' => 'menuTopParametrage'
        );
        return $menu;
    }

    public static function contratTopMenu()
    {

        $menu = array(
            '!type_menu' => 'Contrats',
            '!titre'     => trad('Accords-cadres'),
            '!url'       => "V2/Contrats/accord-cadre/index/ALL/ALL",
            '!id'        => Menu::id_menu_signa,
            '!custom_id' => 'menuTopContrats'
        );
        return $menu;
    }
    public static function fournisseurTopMenu()
    {

        $menu = array(
            '!type_menu' => 'Fournisseurs',
            '!titre' => trad('Fournisseurs'),
            '!url'         => "V2/Fournisseur",
            '!id' => Menu::id_menu_signa,
            '!custom_id' => 'menuTopFournisseurs'
        );
        return $menu;
    }
    public static function portailFournisseurTopMenu()
    {
        if ($_SESSION['_brokernumber'] == 1) {
            $broker = '';
        } else {
            $broker = $_SESSION['_brokernumber'];
        }

        $url = $_SESSION['lienOxalink'];

        $menu = array(
            '!type_menu' => 'PortailFournisseurs',
            '!type_menu_left' => 'PortailFournisseurs',
            '!titre' => trad('Portail Fournisseur'),
            '!url'         => $url,
            '!blank'         => $url,
            '!id' => Menu::id_menu_signa
        );
        return $menu;
    }


    public static function collecteDesBesoinsTopMenu()
    {

        $arrayMenuLeft = Menu::menuCollecteDesBesoin();


        $urlHeader = urldecode(getValue('lienHeader'));
        if (substr($urlHeader, 0, 30) == "CallUrl('recherche_article.php")
            $active = 1;
        else
            $active = 0;
        // eprocurement a changer plus tard
        $menu = array(
            '!type_menu'    => 'eProcurement',
            '!titre'        => trad('Collecte des besoins'),
            '!url'            => "V2/global/collecteDesBesoins",
            '!id'           => Menu::id_menu_signa,
            'item'          => $arrayMenuLeft['item'],
            '!type_menu_left' => 'eProcurement',
            '!active'       => $active
        );

        return $menu;
    }
    public static function consultationTopMenu()
    {
        $arrayMenuLeft = Menu::AoConsultation();
        $nbNotification = $arrayMenuLeft['notification']['!total'] ?? '';
        unset($arrayMenuLeft['notification']['!total']);

        $notificationGlobal = $arrayMenuLeft['notification'];

        $urlHeader = urldecode(getValue('lienHeader'));

        $active = 0;

        if (getValue('call') == 'Administration') {
            $arrayMenuLeft = Menu::getMenuAdministrationCollaborateurs();
            $typeMenu = 'Administration';
        } else {
            $typeMenu = 'eProcurement';
        }
        
        $menu = array(
            '!type_menu' => 'Consultation',
            '!type_menu_left' => 'Consultation',
            '!titre' => trad('Consultations'),
            '!lien'         => "V2/Facture/gestion-facture",
            '!active' => $active,
            '!url'         => "V2/Consultation",
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'],
            'notification' => $notificationGlobal,
            '!notificationTotal' => $nbNotification
        );

        //         print_r($arrayMenuLeft['item']);

        //         $menu = array(
        //             '!type_menu' => 'Consultation',
        //             '!titre' => trad('Consultation'),
        //             '!url'	     => "V2/index/error/en-construction",
        //             '!id' => Menu::id_menu_signa
        //         );
        return $menu;
    }
    public static function projetAchatTopMenu()
    {

        if (getValue('call') == 'ProjetAchat')
            $active = 1;
        else
            $active = 0;

        $notif =  Menu::menuLeftNew();
        $nbNotification = $notif['notification']['!total'];

        $arrayMenuLeft = Menu::getProjetAchat();
        $nbNotification = $notif['notification']['!total'];
        unset($notif['notification']['!total']);

        //print_r($arrayMenuLeft);exit;


        $menu = array(
            '!type_menu' => 'ProjetAchat',
            '!type_menu_left' => 'ProjetAchat',
            '!titre' => trad('Projets Achats'),
            '!url'         => "V2/ProjetAchat/tableauDeBord",
            '!active' => $active,
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'],
            'notification' => $notif['notification'],
            '!notificationTotal' => $nbNotification
        );
        return $menu;
    }
    public static function evaluationTopMenu()
    {
        if (getValue('call') == 'evaluation')
            $active = 1;
        else
            $active = 0;

        $notif =  Menu::menuLeftNew();
        $nbNotification = $notif['notification']['!total'];

        $arrayMenuLeft = Menu::getMenuCampagnes();
        $nbNotification = $notif['notification']['!total'];
        unset($notif['notification']['!total']);



        $menu = array(
            '!type_menu' => 'evaluation',
            '!type_menu_left' => 'evaluation',
            '!titre' => trad('Evaluations'),
            '!url'         => "V2/evaluation/notation",
            '!active' => $active,
            '!id' => Menu::id_menu_signa,
            'item' => $arrayMenuLeft['item'],
            'notification' => $notif['notification'],
            '!notificationTotal' => $nbNotification
        );
        return $menu;
    }

    public static function spendAnalysenTopMenu()
    {

        // $menu = array(
        //     '!type_menu' => 'SpendAnalysis',
        //     '!titre' => trad('Spend Analysis'),
        //     '!url'	     => "V2/index/error/en-construction",
        //     '!id' => Menu::id_menu_signa
        // );
        // return $menu;
    }

    public static function archivageTopMenu()
    {

        // $menu = array(
        //     '!type_menu' => 'Archivage',
        //     '!titre' => trad('Archivage'),
        //     '!url'	     => "V2/index/error/en-construction",
        //     '!id' => Menu::id_menu_signa
        // );
        // return $menu;
    }

    public static function budgetTopMenu()
    {

        // $menu = array(
        //     '!type_menu' => 'Budgets',
        //     '!titre' => trad('Budgets'),
        //     '!url'	     => "V2/index/error/en-construction",
        //     '!id' => Menu::id_menu_signa
        // );
        // return $menu;
    }


    // 
    public static function &getSignatures()
    {
        $menu = null;
        $optionMenu = null;

        // Ce module ne s'affiche pas en mode backup
        if (!DroitAcces::IsModeBackup() || DroitAcces::GetALL()) {
            // Si l'utilisateur est autorisé au moins sur un module de signature
            if (DroitAcces::GetSignatureDelegation() || DroitAcces::GetALL()) {
                $sign = new Sign();
                if (array_key_exists('SIG_DA', $_SESSION) && $_SESSION['SIG_DA']) {
                    $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                        '!lien' => Menu::getLienSignatureDA(),
                        '!titre' => trad('Demandes d\'achats'),
                        '!module' => 'SIG_DA',
                        '!total' => $sign->totalNoDaToSign,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=DA");',
                        '!bulle' => trad('Rafraîchir le nombre de DA en signature')
                    );
                }

                // Paramétrage affichage du module CDE

                // le module de signature des CDE est affiché si :
                // L'utilisateur est signataire de commande ou bien s'il est signature de DA.
                // Si l'utilisateur est signataire de DA seulement alors on modifie les libellés afin d'indiquer que les CDE en signature sont des avenants
                if (DroitAcces::GetSignatureCde() || DroitAcces::GetSignatureDa() || DroitAcces::GetALL())
                    // Paramétrage affichage du module CDE
                    $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                        '!lien' => Menu::getLienSignatureCDE(),
                        '!titre' => $_SESSION['SIG_CDE'] ? trad('Commandes') : trad('Avenants sur commande à signer'),
                        '!module' => 'SIG_CDE',
                        '!total' => $sign->totalNoCdeToSign,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=CDE");',
                        '!bulle' => $_SESSION['SIG_CDE'] ? trad('Rafraîchir le nombre de CDE en signature') : trad('Rafraîchir le nombre d\'avenants en signature')
                    );

                if (DroitAcces::GetSignatureBap() || DroitAcces::GetALL())
                    // Paramétrage affichage du module BAP
                    $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                        '!lien' => Menu::getLienSignatureBAP(),
                        '!titre' => trad('Bons à Payer'),
                        '!module' => 'SIG_BAP',
                        '!total' => $sign->totalNoBapToSign,
                        '!actu' => 'CallUrl("SIGN_manage.php","actu=BAP");',
                        '!bulle' => trad('Rafraîchir le nombre de BAP en signature')
                    );

                // Paramétrage affichage du module délégation reçues
                $sign->selectListUserDelegateurs();
                $cntSignataire = count($sign->delegateurs);
                $nbItemToSign = $sign->getNbItemIndelegationToSign();
                $delegationTotal = $cntSignataire . '/' . $nbItemToSign;
                $delegationTotalTooltip = Trad('Nb de signataires') . ' = ' . $cntSignataire . ' / ' . Trad('Nb de documents') . ' = ' . $nbItemToSign;

                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    // '!lien' => 'CallUrl("SIGN_accueil.php","item=DELEGATION");window.scrollTo(0,0);',
                    // '!lien' => 'CallUrl("suivi_doc.php","action=accueil_delegation&TypeSuivi='.TypeSuivi::DELEGATION.'&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);',
                    '!lien' => Menu::getLienSignatureDelegation(),
                    '!titre' => trad('Délégation(s) Documents'),
                    '!module' => 'SIG_DELEGATION',
                    '!total' => $nbItemToSign,
                    '!totalInfo' => $delegationTotal,
                    '!totalTooltip' => $delegationTotalTooltip,
                    '!actu' => "CallUrl('SIGN_manage.php','actu=DELEGATION');",
                    '!bulle' => trad('Rafraîchir le nombre de délégations en attente')
                );

                // Paramétrage affichage du module mise en délégation
                // if(DroitAcces::getDroit('PARAMSIG', 'RESERVE_DELEG_ADMIN')->Trouve1()['LIB01PARV'] != 'O' || DroitAcces::GetALL())
                // {
                //     $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                //         '!lien' => 'CallUrl("IU_signature_manage.php?action=accueil","item=DELEGUER");window.scrollTo(0,0);',
                //         '!module' => 'SIG_MISE_DELEGATION',
                //         '!titre' => Trad('Gérer mes délégations')
                //     );
                // }
            }
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!type_menu' => 'SIGNA',
                '!titre' => trad('Signatures'),
                '!lien'         => "CallUrl('barre_menu.php?action=ChangeBarreeProc&no_refresh=true&contexte=SIGNA');",
                '!id' => Menu::id_menu_signa,
                'item' =>  $optionMenu['item']
            );

        // Spec 3637 : la condition sur $_SESSION['OXAPROC'] est à oter, il faut toujours retourner l'e tableu $menu
        return $menu;
    }

    public static function getRechercher()
    {
        $menu = null;
        $optionMenu = null;

        if ($_SESSION['IS_STE_VALIDE'] && DroitAcces::GetGestionDA() || DroitAcces::GetALL()) {
            /**
             * Suppression du menu puisque inclu dans l'onglet recherche normal
             * ATTENTION Si l'on remet cette option, il faut revoir la gestion du div principal
             * $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
             * '!titre' => trad('Recherche avancée'),
             * '!icon' => 'img_ligne_libre_mini_16x16',
             * '!lien' => 'CallUrl("recherche_article.php?action=recherche_avancee")'
             * );
             */

            if (DroitAcces::GetLigneLibre())
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Créer une ligne libre'),
                    '!icon' => 'img_ligne_libre_mini_16x16',
//                     '!lien' => 'CallUrl("barre_menu.php?action=' . Barre_menu::$act_Page_LigneLibre . '");',
                    '!lien' => 'window.location.href=\'V2/RechercheArticles/article/createEdit\';hideMenuOnClick(this);',
                );

            if (DroitAcces::GetImportCsv()) {
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Import fichier'),
                    '!icon' => 'img_import_fichier_16x16',
                    '!lien' => 'CallUrl("recherche_article.php?action=import_fichier");'
                );
                if (CLT_ERI == $_SESSION['Session_NumClient'])
                    $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                        '!titre' => trad('Import Optima'),
                        '!icon' => 'img_import_fichier_16x16',
                        '!lien' => "CallUrl('import_Optima.php');"
                    );
            }
        }

        if ($_SESSION['IS_STE_VALIDE'] && DroitAcces::GetGestionDA() || DroitAcces::GetALL()) {
            $menu = array(
                '!type_menu' => 'RECHERCHE',
                '!titre' => trad('Rechercher'),
                '!lien' => "CallUrl('recherche_article.php?action=accueil');hideMenuOnClick(this);"
            );
            if (!is_null($optionMenu))
                $menu['item'] = &$optionMenu['item'];
        }

        return $menu;
    }

    public static function getMenuPanier()
    {
        $panierEncours = 0;
        $array_complexe_menu = null;
        $menu = null;
        $optionMenu = null;

        // Le menu panier est affiché seulement si la société de l'utilisateur est valide
        if ($_SESSION['IS_STE_VALIDE'] && DroitAcces::GetGestionDA() || DroitAcces::GetALL()) {
            $array_complexe_menu['panier']['!link_sup'] = "SupPanier('0','" . JsValue(trad('Confirmez-vous la suppression du panier ?')) . "'); ";

            $array_complexe_menu['panier']['!id_delete_button'] = 'menuSupprimerPanier';

            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Panier en cours'),
                '!icon' => 'img_panier_16x16',
                '!lien' => "CallUrl('panier_ong_2.php','MODE=httpreq&OBJECT=relance');",
                '!suite_spec' => 'FCT_PANIER_ENCOURS',
                'suite_complement' => $array_complexe_menu,
                '!id' => 'menuPanierEnCours'
            );




            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Récapitulatif panier'),
                '!lien' => 'CallUrl(\'panier_ong_3.php\',\'MODE=httpreq&OBJECT=relance\');',
                '!icon' => 'img_recapitulatif_16x16',
                '!id' => 'menuRecapPanier'
            );

            $panier_modele = count(ListePanier(1));

            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Paniers modèles'),
                '!lien' => 'CallUrl("IU_liste_paniers_modeles.php?action=initPaniersModeles");',
                '!total' => $panier_modele,
                '!id' => 'menuPaniersModeles'
            );

            $panier_brouillon = count(ListePanier(0));

            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Panier brouillons'),
                '!lien' => 'CallUrl("IU_liste_paniers_modeles.php?action=initPaniersBrouillons");',
                '!total' => $panier_brouillon,
                '!id' => 'menuPanierBrouillon'
            );

            // Regle de gestion des formulaires simples
            $buf_user = SqlUsers::rqInfoUserByLogin($_SESSION['Session_Login'])->Trouve1();
            $Formulaire = new Formulaire($buf_user);
            if ($panier_formule = $Formulaire->GetFormulaireSimple()) {
                $optionMenu['item']['A']['menu']['C']['bloc'][] = array(
                    '!titre' => trad('Formulaires simples'),
                    '!lien' => 'CallUrl("IU_liste_paniers_modeles.php?action=initFormulairesSimples");',
                    '!id' => 'menuFormulairesSimples'
                );
            }

            if (DroitAcces::GetLigneLibre())
                $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                    '!titre' => trad('Créer une ligne libre'),
                    '!icon' => 'img_ligne_libre_mini_16x16',
//                     '!lien' => 'CallUrl("barre_menu.php?action=' . Barre_menu::$act_Page_LigneLibre . '");',
                    '!lien' => 'window.location.href=\'V2/RechercheArticles/article/createEdit\';hideMenuOnClick(this);',
                    '!id' => 'menuCreerLigneLibre'
                );

            if (DroitAcces::GetImportCsv())
                $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                    '!titre' => trad('Import fichier'),
                    '!icon' => 'img_import_fichier_16x16',
                    '!lien' => 'CallUrl("recherche_article.php?action=import_fichier");',
                    '!id' => 'menuImportFichier'
                );
        }

        if (DroitAcces::GetCdeRegul() && (!DroitAcces::IsModeBackup() || DroitAcces::IsDelegateurAcheteur()) || DroitAcces::GetALL())
            $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                '!titre' => trad('Commande de régularisation'),
                '!lien' => 'CallUrl("cde_regul.php?action=accueilRE");',
                '!id' => 'menuCommandeRegularisation'
            );
        if (!is_null($optionMenu)) { // 25988 ATTENTION LES INFORMATIONS de montant dans le menu SONT toujours celle du paniers encours
            $panierEncours = 0;
            $panierEntete = new PanierEntete();
            $panierEntete->getEntetePanier($panierEncours, $_SESSION['id_user']);

            $array_complexe = array(
                '!nbligne' => Panier::getNbLignePanier($_SESSION['id_user'], $panierEncours, true),
                '!panier_mnt' => FormatageData::formatMontant((float) Panier::getTotalPanier($panierEncours), 2, ' '),
                '!panier_dev' => $panierEntete->getCOD_DEV(),
                '!id_panier_mnt' => Menu::id_panier_mnt . '0',
                '!id_panier_dev' => Menu::id_panier_dev . '0',
                '!lien_image' => 'CallUrl("panier_ong_2.php?OBJECT=relance")',
                '!id' => 'panier_txt_' . $panierEncours,
                '!link' => 'LanceEcr("recherche.php","men_gene","id_panier=0");window.scrollTo(0,0);',
                '!urlPanier' => 'CallUrl("panier_ong_2.php?OBJECT=relance")',
                '!easyDemat' => $_SESSION['EasyDemat']
            );

            $menu = array(
                '!type_menu' => 'PANIER',
                '!suite_spec' => 'FCT_MENU_PANIER',
                '!id' => Menu::id_menu_panier,
                'suite_complement' => $array_complexe,
                'item' => &$optionMenu['item']
            );
        }

        // echo 'lzzzkh';exit;
        return $menu;
    }




    public static function truncate($string, $max_length = 30, $replacement = '', $trunc_at_space = false)
    {
        $max_length -= strlen($replacement);
        $string_length = strlen($string);

        if ($string_length <= $max_length)
            return $string;

        if ($trunc_at_space && ($space_position = strrpos($string, ' ', $max_length - $string_length)))
            $max_length = $space_position;

        return utf8_encode(substr_replace($string, $replacement, $max_length));
    }



    public static function &getMenuUtilisateur($mode = '')
    {
        if ($buf_user = SqlUsers::rqInfoUserByLogin($_SESSION['Session_Login'])->Trouve1()) {
            if (isset($_SESSION['MODE_BACKUP'])) {
                $menuDeleg = true;
                if ($userBackup = &SqlUsers::rqInfoUserByLogin($_SESSION['user_origine'])->Trouve1())
                    $array_complexe = array(
                        '!CODUSR' => $_SESSION['user_origine'],
                        '!NOMUSR' => $userBackup['NomUser']
                    );
                else
                    $array_complexe = array(
                        '!CODUSR' => $_SESSION['Session_Login'],
                        '!NOMUSR' => $buf_user['NomUser']
                    );
            } else
                $array_complexe = array(
                    '!CODUSR' => $_SESSION['Session_Login'],
                    '!NOMUSR' => $buf_user['NomUser']
                );
        } else
            $array_complexe = null;


        $menu = array(
            '!type_menu' => 'USER',
            '!suite_spec' => 'FCT_USER',
            '!id' => Menu::id_menu_utilisateur,
            'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
        );

        $optionMenu = &$menu;

        // Paramétrage affichage du module DA

        $array_complexe = null;
        if ($liste_societes = SqlUsers::rqListSocieteForUser($_SESSION['Session_Login'])->TrouveTous()) {
            // L'utilisateur
            $array_complexe['soc']['!id'] = menu::id_select_societe;
            $array_complexe['soc']['!name'] = 'select_soc_global';
            $array_complexe['soc']['!onchange'] = 'Traite("profil_user.php",this);';

            // Spec 3560
            // $isIE11UP = (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || ((strpos($_SERVER['HTTP_USER_AGENT'], 'Trident/7.0') !== false) && (strpos($_SERVER['HTTP_USER_AGENT'], 'rv:11.0') !== false)));
            $isIE11UP = '';

            $array_complexe['soc']['!seuil_popup'] = ($isIE11UP ? "1" : "10");
            $array_complexe['soc']['!popup'] = " OpenPopup('ctrl_liste_societes.php?action=initPopup&popup_id=SOCIETES_USER&formName=form_gestion&inputField=select_soc_global&labelField=select_soc_global&backCtrl=profil_user.php&backAction=changeSociete&backMode=form&backPopup=1&backForm=form_gestion&backField=select_soc_global','popup_liste_societes_user',700,700)";
            $array_complexe['soc']['!affiche_liste'] = ($isIE11UP ? "0" : "1");

            /**
             * Dans le cas de la presence de panier en cours, c'est uniquement du panier qui doit etre dans la liste
             */
            $panierEncours = 0;
            $nbLignePanierEnCours = Panier::getNbLignePanier($_SESSION['id_user'], $panierEncours, true);
            $PanierEntete = new PanierEntete();
            $PanierEntete->getEntetePanier($panierEncours, $_SESSION['id_user']);

            $array_complexe['soc']['!value'] = ($nbLignePanierEnCours == 0 ? $_SESSION['Session_SocUsrProfil'] : $PanierEntete->getCODE_STE());

            $originePanier = $PanierEntete->getORIGINE();
            // Mail YA 20161208 : on interdit le changement de société quand dans le panier il y a un avenant ou une modification de DA
            $autorisationChngt = !(false !== mb_strpos($originePanier, 'CreationAvenant') || false !== mb_strpos($originePanier, 'modifDocPourSignate') || false !== mb_strpos($originePanier, 'modificationChifExe')); // Correction suite relecture mail EDP / AMI

            // Code Libelle
            foreach ($liste_societes as &$societe) {
                if (($autorisationChngt &&
                    // Spec relative au changement de societe meme si des lignes dans le panier $nbLignePanierEnCours == 0 &&
                    $mode == '') || $_SESSION['Session_SocUsrProfil'] == $societe['Code']) {
                    $array_complexe['soc']['option'][] = array(
                        '!value' => $societe['Code'],
                        '!texte' => $societe['Libelle'],
                        '!texteTrunc' => Menu::truncate(utf8_decode($societe['Libelle']), 20, "...")
                    );
                }
                if ($_SESSION['Session_SocUsr'] == $societe['Code']) {
                    $_SESSION['societeUtilisateur'] = $societe['Libelle'];
                }
            }
        }

        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre' => trad('Société') . ' - ',
            '!suite_spec' => 'FCT_USER_SOC',
            'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
        );

        // On récupère les informations liées à la section d'imputation de l'utilisateur
        $LibSectionImputation = $_SESSION['Session_LibSectionImputation'] ?? '';
        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre' => trad('SI'),
            '!id'    => 'sessionSecImpu',
            '!suite' => mb_substr($_SESSION['Session_LibSectionImputation'], 0, 15),
            '!suite_tooltip' => ($_SESSION['Session_SectionImputation'] ?? '') . " ({$LibSectionImputation})"
        );

        $menuDeleg = false;
        $modeBackup = DroitAcces::IsModeBackup();
        if ($mode == '') {
            // Dossier 26189 : on change l'intitulé du menu selon le backup choisi
            $libelle_ma_session = ($modeBackup) ? trad('Ma session pour') . ' ' . $buf_user['NomUser'] : trad('Ma session');
            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                //'!lien' => 'CallUrl("profil_user.php?action=initialisation");',
                '!lien' => 'location.href="V2/utilisateur/maSession/user"',
                '!titre' => $libelle_ma_session,
                '!id' => 'sessionUser'
            );

            // Dossier 26189 : on change ne propose pas le menu "Mes backups" pour les utilisateur en backup
            if (!$modeBackup)
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => "CallUrl('profil_user.php?action=initialisation');  changeDisplay('onglet_monProfil',true); changeDisplay('onglet_maSession',false); changeDisplay('onglet_mesBackups',false); CallUrl('fiche_user.php?action=initialisation');",
                    '!titre' => trad('Mon profil'),
                    '!id' => 'sessionProfil'
                );

            // Dossier 26189 : on change ne propose pas le menu "Mes backups" pour les utilisateur en backup
            if (!$modeBackup && $_SESSION['AuthGestBackup'])
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => 'location.href="V2/utilisateur/MesBackup"',
                    '!titre' => trad('Mes backups'),
                    '!id' => 'sessionBackups'
                );
                
            if (!$modeBackup) {
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => 'location.href="V2/utilisateur"',
                    '!titre' => trad('Mon accueil'),
                    '!id' => 'sessionAccueil'
                );
                
            }

            if (
                (!isset($_SESSION['MODE_BACKUP']) && DroitAcces::getDroit('PARAMSIG', 'RESERVE_DELEG_ADMIN')->Trouve1()['LIB01PARV'] != 'O') || DroitAcces::GetALL() || (isset($_SESSION['MODE_BACKUP']) && $_SESSION['HA_SE_DEAU'])
            ) {
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => 'CallUrl("IU_signature_manage.php?action=accueil","item=DELEGUER");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => Trad('Gérer mes délégations'),
                    '!id' => 'sessionGererDelegations'
                );
            }

            $array_complexe = array(
                '!modeBackup' => isset($_SESSION['MODE_BACKUP']),
                '!titre_deleg' => trad('Travailler pour le compte de'),
                '!titre_retour' => trad('Quitter le mode backup'),
                '!CODUSRORI' => array_key_exists('user_origine', $_SESSION) ? $_SESSION['user_origine'] : '',
                '!lien_retour' => "if(window.confirm('" . cnv_to_javascript(trad('Êtes vous sûr de vouloir quitter le mode backup et de revenir à votre session ?')) . "')){CallUrlAsync('user_backup.php?action=deconnexionBackup','','" . addslashes(trad('Désactivation du mode backup en cours...')) . "');}"
            );

            if ($modeBackup) {
                $menuDeleg = true;
                $array_complexe['!NOMUSERBACKUP'] = $buf_user['NomUser'];
            } else {
                $user_info = new Utilisateur();
                if ($user_info->IsBackupOf($_SESSION['Session_Login'])) {
                    $array_complexe['backup'] = array(
                        '!lien' => "TraiteAsync('user_backup.php?action=activeBackup',document.forms.form_gestion.listeBackup,'','" . trad('Activation du mode backup en cours sur le compte de') . " '+this.options[this.selectedIndex].innerHTML+' ('+this.value+' )');",
                        '!value' => $_SESSION['Session_Login']
                    );

                    if ($listeBackup = $user_info->getListeBackupOf()) {
                        $menuDeleg = true;
                        foreach ($listeBackup as &$backup)
                            $array_complexe['backup']['options'][] = array(
                                '!value' => $backup['COD_USR'],
                                '!texte' => $backup['NOM']
                            );

                        if (strpos($_SERVER['HTTP_USER_AGENT'], 'Edge') !== false) {
                            $array_complexe['navigateur'] = 'edge';
                        } else {
                            $array_complexe['navigateur'] = 'noedge';
                        }
                    }
                }
            }

            if ($menuDeleg)
                if ($modeBackup) {
                } else
                    $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                        '!suite_spec' => 'FCT_USER_BACKUP',
                        'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
                    );
        }
        $url_aide = Param::getAideEnLigne();
        if ($url_aide != '') {
            if (strpos($url_aide, 'http') === false) {
                $url_aide = "http://" . $url_aide;
            }
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => "window.open('" . $url_aide . "')",
                '!titre' => trad('Aide en ligne'),
                '!id' => 'sessionAideEnLigne'
            );
        }

        // $liste_favoris = Param::getAccueilFavoris(utilisateur::getLangue());
        $info = Param::GetNoeudXMLFavoris();

        if (0 != $info['!flag'])
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => 'window.open(\'' . Param::GetUrlFavoris() . '\',\'favoris\')',
                '!titre' => trad('Accès aux favoris'),
                '!id' => 'sessionAccesFavoris'
            );

        // Ajout du lien vers les actualités

        if ('' != trim(Param::getActualite(utilisateur::getLangue())))
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => "window.open('" . Param::getActualite($_SESSION['Session_Langue']) . "','actualite')",
                '!titre' => trad('Accès aux actualités'),
                '!id' => 'sessionAccesActualites'
            );

        if ($mode == '') {
            if ((!$modeBackup && $_SESSION['SuperieurHierarchique']) || ($modeBackup && DroitAcces::IsDelegateurResponsable())) {
                $inscript = new CollabManage();
                $inscript->initNbDem($_SESSION['Session_Login'], 'responsable');
                $total = $inscript->getNbInscriptionForResp() + $inscript->getNbModifForResp();
                if ($inscript->getNbInscriptionForResp() != 0) {
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","item=DEM&MODE_ACCES=C&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_INSCRIPTION',
                        '!total' => $total,
                        '!id' => 'sessionCollaborateurs'
                    );
                } elseif ($inscript->getNbModifForResp() != 0) {
                    // Sous-menu : demandes de de modification
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","item=DEM&MODE_ACCES=M&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_MODIF',
                        '!total' => $total,
                        '!id' => 'sessionCollaborateurs'
                    );
                } else {
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","list=collab&MODE_ACCES=L&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_COLLABORATEUR',
                        '!actu' => 'CallUrl("COLLAB_manage.php","actu=List&PROFIL=responsable");',
                        '!id' => 'sessionCollaborateurs'
                    );
                }
            }
        }
        
        if (DroitAcces::droitsUtilisateur('HA_PARAM')->Trouve1()['DROIT']) {
            $optionMenu['item']['A']['menu']['F']['bloc'][] = array(
                '!lien' => 'location.href="V2/Parametrage"',
                '!titre' => trad('Paramétrage'),
                '!id' => 'parametrageMenu'
            );
            
        }
        /**
         * Fonctionnalité concernant la deconnexion de l'application
         */
        $User = new Utilisateur();
        $User->initProfil($_SESSION['Session_Login']);

        // if(array_key_exists('ACCES_PORTAIL' , $_SESSION) && $_SESSION['ACCES_PORTAIL']) {
        // // Alors l'action redirige sur la page d'accueil du portail (toujours connecté)
        // $action = "document.location.href='portail_ipade.php'";
        // $libelle = trad('Retour au portail');
        // } else {
        // // Alors l'action de déconnexion entrainera le retour sur la page d'accueil
        $action = "document.location.href='session_ipad.php?operation=deconnexion'";
        $libelle = trad('Déconnexion');
        // }

        $optionMenu['item']['A']['menu']['G']['bloc'][] = array(
            '!lien' => "{{$action}};",
            '!titre' => trad('Déconnexion'),
            '!deconnexion' => 1,
            '!id' => 'sessionDeconnexion'
        );
        if ($menuDeleg)
            if ($modeBackup)
                $optionMenu['item']['A']['menu']['G']['bloc'][] = array(
                    '!suite_spec' => 'FCT_USER_BACKUP',
                    'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
                );
        return $menu;
    }


    public static function &getMenuUtilisateurEasyDemat($mode = '')
    {
        if ($buf_user = SqlUsers::rqInfoUserByLogin($_SESSION['Session_Login'])->Trouve1()) {
            if (isset($_SESSION['MODE_BACKUP'])) {
                $menuDeleg = true;
                if ($userBackup = &SqlUsers::rqInfoUserByLogin($_SESSION['user_origine'])->Trouve1())
                    $array_complexe = array(
                        '!CODUSR' => $_SESSION['user_origine'],
                        '!NOMUSR' => $userBackup['NomUser']
                    );
                else
                    $array_complexe = array(
                        '!CODUSR' => $_SESSION['Session_Login'],
                        '!NOMUSR' => $buf_user['NomUser']
                    );
            } else
                $array_complexe = array(
                    '!CODUSR' => $_SESSION['Session_Login'],
                    '!NOMUSR' => $buf_user['NomUser']
                );
        } else
            $array_complexe = null;


        $menu = array(
            '!type_menu' => 'USER',
            '!suite_spec' => 'FCT_USER',
            '!id' => Menu::id_menu_utilisateur,
            'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
        );

        $optionMenu = &$menu;

        // Paramétrage affichage du module DA

        $array_complexe = null;
        if ($liste_societes = SqlUsers::rqListSocieteForUser($_SESSION['Session_Login'])->TrouveTous()) {
            // L'utilisateur
            $array_complexe['soc']['!id'] = menu::id_select_societe;
            $array_complexe['soc']['!name'] = 'select_soc_global';
            $array_complexe['soc']['!onchange'] = 'Traite("profil_user.php",this);';

            // Spec 3560
            // $isIE11UP = (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || ((strpos($_SERVER['HTTP_USER_AGENT'], 'Trident/7.0') !== false) && (strpos($_SERVER['HTTP_USER_AGENT'], 'rv:11.0') !== false)));
            $isIE11UP = '';

            $array_complexe['soc']['!seuil_popup'] = ($isIE11UP ? "1" : "10");
            $array_complexe['soc']['!popup'] = " OpenPopup('ctrl_liste_societes.php?action=initPopup&popup_id=SOCIETES_USER&formName=form_gestion&inputField=select_soc_global&labelField=select_soc_global&backCtrl=profil_user.php&backAction=changeSociete&backMode=form&backPopup=1&backForm=form_gestion&backField=select_soc_global','popup_liste_societes_user',700,700)";
            $array_complexe['soc']['!affiche_liste'] = ($isIE11UP ? "0" : "1");

            /**
             * Dans le cas de la presence de panier en cours, c'est uniquement du panier qui doit etre dans la liste
             */
            $panierEncours = 0;
            $nbLignePanierEnCours = Panier::getNbLignePanier($_SESSION['id_user'], $panierEncours, true);
            $PanierEntete = new PanierEntete();
            $PanierEntete->getEntetePanier($panierEncours, $_SESSION['id_user']);

            $array_complexe['soc']['!value'] = ($nbLignePanierEnCours == 0 ? $_SESSION['Session_SocUsrProfil'] : $PanierEntete->getCODE_STE());

            $originePanier = $PanierEntete->getORIGINE();
            // Mail YA 20161208 : on interdit le changement de société quand dans le panier il y a un avenant ou une modification de DA
            $autorisationChngt = !(false !== mb_strpos($originePanier, 'CreationAvenant') || false !== mb_strpos($originePanier, 'modifDocPourSignate') || false !== mb_strpos($originePanier, 'modificationChifExe')); // Correction suite relecture mail EDP / AMI

            // Code Libelle
            foreach ($liste_societes as &$societe) {
                if (($autorisationChngt &&
                    // Spec relative au changement de societe meme si des lignes dans le panier $nbLignePanierEnCours == 0 &&
                    $mode == '') || $_SESSION['Session_SocUsrProfil'] == $societe['Code']) {
                    $array_complexe['soc']['option'][] = array(
                        '!value' => $societe['Code'],
                        '!texte' => $societe['Libelle'],
                        '!texteTrunc' => Menu::truncate(utf8_decode($societe['Libelle']), 20, "...")
                    );
                }
                if ($_SESSION['Session_SocUsr'] == $societe['Code']) {
                    $_SESSION['societeUtilisateur'] = $societe['Libelle'];
                }
            }
        }

        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre' => trad('Société') . ' - ',
            '!suite_spec' => 'FCT_USER_SOC',
            'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
        );

        // On récupère les informations liées à la section d'imputation de l'utilisateur
        $LibSectionImputation = $_SESSION['Session_LibSectionImputation'] ?? '';
        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre' => trad('SI'),
            '!id'    => 'sessionSecImpu',
            '!suite' => mb_substr($_SESSION['Session_LibSectionImputation'], 0, 15),
            '!suite_tooltip' => ($_SESSION['Session_SectionImputation'] ?? '') . " ({$LibSectionImputation})"
        );

        $menuDeleg = false;
        $modeBackup = DroitAcces::IsModeBackup();
        if ($mode == '') {
            // Dossier 26189 : on change ne propose pas le menu "Mes backups" pour les utilisateur en backup
            if (!$modeBackup)
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => "CallUrl('profil_user.php?action=initialisation');  changeDisplay('onglet_monProfil',true); changeDisplay('onglet_maSession',false); changeDisplay('onglet_mesBackups',false); CallUrl('fiche_user.php?action=initialisation');",
                    '!titre' => trad('Mon profil'),
                    '!id' => 'sessionProfil'
                );


            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!lien' => 'location.href="V2/utilisateur"',
                '!titre' => trad('Mon accueil'),
                '!id' => 'sessionAccueil'
            );

            if ((!isset($_SESSION['MODE_BACKUP']) && DroitAcces::getDroit('PARAMSIG', 'RESERVE_DELEG_ADMIN')->Trouve1()['LIB01PARV'] != 'O') || DroitAcces::GetALL() || (isset($_SESSION['MODE_BACKUP']) && $_SESSION['HA_SE_DEAU'])) {
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => 'CallUrl("IU_signature_manage.php?action=accueil","item=DELEGUER");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => Trad('Gérer mes délégations'),
                    '!id' => 'sessionGererDelegations'
                );
            }
        }
        $url_aide = Param::getAideEnLigne();
        if ($url_aide != '') {
            if (strpos($url_aide, 'http') === false) {
                $url_aide = "http://" . $url_aide;
            }
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => "window.open('" . $url_aide . "')",
                '!titre' => trad('Aide en ligne'),
                '!id' => 'sessionAideEnLigne'
            );
        }

        // $liste_favoris = Param::getAccueilFavoris(utilisateur::getLangue());
        $info = Param::GetNoeudXMLFavoris();

        if (0 != $info['!flag'])
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => 'window.open(\'' . Param::GetUrlFavoris() . '\',\'favoris\')',
                '!titre' => trad('Accès aux favoris'),
                '!id' => 'sessionAccesFavoris'
            );

        // Ajout du lien vers les actualités

        if ('' != trim(Param::getActualite(utilisateur::getLangue())))
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!lien' => "window.open('" . Param::getActualite($_SESSION['Session_Langue']) . "','actualite')",
                '!titre' => trad('Accès aux actualités'),
                '!id' => 'sessionAccesActualites'
            );

        if ($mode == '') {
            if ((!$modeBackup && $_SESSION['SuperieurHierarchique']) || ($modeBackup && DroitAcces::IsDelegateurResponsable())) {
                $inscript = new CollabManage();
                $inscript->initNbDem($_SESSION['Session_Login'], 'responsable');
                $total = $inscript->getNbInscriptionForResp() + $inscript->getNbModifForResp();
                if ($inscript->getNbInscriptionForResp() != 0) {
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","item=DEM&MODE_ACCES=C&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_INSCRIPTION',
                        '!total' => $total,
                        '!id' => 'sessionCollaborateurs'
                    );
                } elseif ($inscript->getNbModifForResp() != 0) {
                    // Sous-menu : demandes de de modification
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","item=DEM&MODE_ACCES=M&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_MODIF',
                        '!total' => $total,
                        '!id' => 'sessionCollaborateurs'
                    );
                } else {
                    $optionMenu['item']['A']['menu']['E']['bloc'][] = array(
                        '!lien' => 'CallUrl("COLLAB_manage.php","list=collab&MODE_ACCES=L&PROFIL=responsable");window.scrollTo(0,0);',
                        '!titre' => trad('Collaborateurs'),
                        '!module' => 'RESP_COLLABORATEUR',
                        '!actu' => 'CallUrl("COLLAB_manage.php","actu=List&PROFIL=responsable");',
                        '!id' => 'sessionCollaborateurs'
                    );
                }
            }
        }
        /**
         * Fonctionnalité concernant la deconnexion de l'application
         */
        $User = new Utilisateur();
        $User->initProfil($_SESSION['Session_Login']);

        // if(array_key_exists('ACCES_PORTAIL' , $_SESSION) && $_SESSION['ACCES_PORTAIL']) {
        // // Alors l'action redirige sur la page d'accueil du portail (toujours connecté)
        // $action = "document.location.href='portail_ipade.php'";
        // $libelle = trad('Retour au portail');
        // } else {
        // // Alors l'action de déconnexion entrainera le retour sur la page d'accueil
        $action = "document.location.href='session_ipad.php?operation=deconnexion'";
        $libelle = trad('Déconnexion');
        // }

        $optionMenu['item']['A']['menu']['F']['bloc'][] = array(
            '!lien' => "{{$action}};",
            '!titre' => trad('Déconnexion'),
            '!deconnexion' => 1,
            '!id' => 'sessionDeconnexion'
        );
        if ($menuDeleg)
            if ($modeBackup)
                $optionMenu['item']['A']['menu']['F']['bloc'][] = array(
                    '!suite_spec' => 'FCT_USER_BACKUP',
                    'suite_complement' => $array_complexe // NE PAS METTRE DE REFERENCE
                );
        return $menu;
    }

    public static function &geMenuProfil()
    {
        $optionMenu = null;

        $array_complexe = null;
        if ($buf_user = SqlUsers::rqInfoUserByLogin($_SESSION['Session_Login'])->Trouve1()) {
            if ($liste_societes =  SqlUsers::rqListSocieteForUser($_SESSION['Session_Login'])->TrouveTous()) {
                $array_complexe['soc']['!id'] = menu::id_select_societe;
                $array_complexe['soc']['!name'] = 'select_soc_global';
                $array_complexe['soc']['!onchange'] = 'Traite("profil_user.php",this);';

                /**
                 * Dans le cas de la presence de panier en cours, c'est uniquement du panier qui doit etre dans la liste
                 */
                $panierEncours = 0;
                $PanierEntete = new PanierEntete();
                $PanierEntete->getEntetePanier($panierEncours, $_SESSION['id_user']);

                $array_complexe['soc']['!value'] = $_SESSION['Session_SocUsr'];

                // Code Libelle
                foreach ($liste_societes as &$societe)
                    if ($_SESSION['Session_SocUsr'] == $societe['Code'])
                        $array_complexe['soc']['option'][] = array(
                            '!value' => $societe['Code'],
                            '!texte' => $societe['Libelle']
                        );
            }
        }

        $menu = array(
            '!type_menu' => 'MEN_PROFIL',
            '!suite_spec' => 'FCT_PROFIL',
            'item' => &$optionMenu['item'],
            'suite_complement' => $array_complexe, // NE PAS METTRE DE REFERENCE
        );


        return $menu;
    }

    public static function &getMesEtats()
    {
        $optionMenu = null;
        $menu = array(
            '!image' => 'images/normal/picto_etat_stat.gif',
            '!titre' => trad('Mes états statistiques'),
            '!type_menu' => 'MEN_ETATS',
            'item' => &$optionMenu['item']
        );

        return $menu;
    }

    public static function &getLienSignatureDelegation()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil_delegation&TypeSuivi=' . TypeSuivi::DELEGATION . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSignatureDA()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil_signature&TypeSuivi=' . TypeSuivi::SignDA . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSignatureCDE()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil_signature&TypeSuivi=' . TypeSuivi::SignCDE . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        //$resultat = 'location.href=\'V2/Commande/signature\';hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSignatureBAP()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil_signature&TypeSuivi=' . TypeSuivi::SignBAP . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        //$resultat = 'location.href=\'V2/Facture/bap/sign\';hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSuiviDOAMod()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil&TypeSuivi=' . TypeSuivi::MOD . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSuiviDOA()
    {
        $resultat = 'CallUrl(\'suivi_doc.php\',\'action=accueil&TypeSuivi=' . TypeSuivi::DOA . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienSuiviCdeAEnvoyer()
    {
        return 'location.href = "V2/Suivi/Commandes/send";';
    }
    public static function &getLienSuiviAoPanier($is_global = false, $mesConsultation = false)
    {
        if ($mesConsultation == true) {
            $resultat =  'location.href = "V2/Consultation/filtre/MES_CONSUTATION";';
        } else {
            $resultat =  'location.href = "V2/Consultation/filtre/A_ENVOYER";';
        }
        //$resultat = 'CallUrl("suivi_doc.php?action=accueil&initData=10","TypeSuivi=' . (($is_global) ? TypeSuivi::AO_PANIER_GLOB : TypeSuivi::AO_PANIER) . '");window.scrollTo(0,0);';
        return $resultat;
    }


    public static function &getNbSuiviAO()
    {
        $resultat = 0;

        $tab['GrpSoc'] = 'soc';
        if (!(utilisateur::isMultiSoc() || utilisateur::isPluriSoc()))
            $tab['Societe'] = utilisateur::getSociete();
        $tab['Dem_Ach'] = utilisateur::getCode();
        $tab['Statut'] = 'PRCO';

        $reqSql = SuiviRecherche::SearchAOPanier($tab)->TrouveTous();
        if (is_array($reqSql))
            $resultat = count($reqSql);

        return $resultat;
    }

    public static function &getLienSuiviAO($mesconsultations = false)
    {
        $resultat = Menu::getLienSuiviAoPanier(false, $mesconsultations) . 'if (document.getElementById("Statut")) document.getElementById("Statut").value="PRCO";if (document.getElementById("Acheteur")) document.getElementById("Acheteur").value="' . $_SESSION['Session_Login'] . '"; if (document.getElementById("rechercher")) document.getElementById("rechercher").click();';
        return $resultat;
    }

    public static function getNbAOAEnvoyer()
    {
        $resultat = 0;

        $tab['GrpSoc'] = 'soc';
        if (!(utilisateur::isMultiSoc() || utilisateur::isPluriSoc()))
            $tab['Societe'] = utilisateur::getSociete();
        //$tab['Dem_Ach'] = utilisateur::getCode();
        $tab['Statut'] = 'ENVO';
        $tab['Acheteur'] = $_SESSION["Session_Login"];

        $reqSql = SuiviRecherche::SearchAOPanier($tab)->TrouveTous();

        if (is_array($reqSql))
            $resultat = count($reqSql);

        return $_SESSION['getNbAOAEnvoyer'] = $resultat;
    }

    public static function &getLienAOAEnvoyer()
    {
        $resultat = Menu::getLienSuiviAoPanier();
        return $resultat;
    }

    public static function &getSuivi()
    {
        global $connecteur;
        $menu = null;
        $optionMenu = null;

        $droitsDA = DroitAcces::GetGestionDA();
        $droitsDev = DroitAcces::GetALL();
        $droitsSigDa = DroitAcces::GetSignatureDa();
        $droitsSigCde = DroitAcces::GetSignatureCde();
        $droitsReception = DroitAcces::GetModuleReception();
        $droitsStocks = DroitAcces::GetModuleStock();
        $droitsVisuFac = DroitAcces::GetVisuFacture();

        if ($droitsDA || $droitsReception || $droitsStocks || $droitsSigDa || $droitsSigCde || $droitsVisuFac || DroitAcces::GetGestionDocRattaches() || $droitsDev) {

            // On définit son titre et l'image associée
            // En fonction des droits de l'utilisateur les sous-menu du menu suivi sont présentés ou non

            // Si l'utilisateur a accès au suivi des DA, CDE, CDE à imprimer et Visu Historique global
            if ($droitsDA || $droitsDev)
                // Sous-menu "CDE à imprimer"
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => Menu::getLienSuiviCdeAEnvoyer(),
                    '!titre' => trad('Commande(s) à Envoyer'),
                    '!module' => 'CDE_TO_PRINT',
                    '!total' => Commande::getNbCdeToPrint($_SESSION['Session_Login']),
                    '!actu' => 'CallUrl("SIGN_manage.php","actu=commandeToSend");hideMenuOnClick(this);',
                    '!bulle' => trad("Rafraîchir le nombre de commandes en attente d'impression")
                );

            if ($droitsDA || $droitsSigDa || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DA&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Demandes'),
                    '!module' => 'SUIVI_DA'
                );

            if (array_key_exists('SpeCC003', $_SESSION) && $_SESSION['SpeCC003'] || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CRB&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi CRB'),
                    '!module' => 'SUIVI_CRB'
                );

            if ($droitsDA || $droitsSigCde || $droitsDev || $_SESSION['HA_CA_LIS'])
                // Sous-menu 'Suivi CDE'
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CDE&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Commandes'),
                    '!module' => 'SUIVI_CDE'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsReception || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BR&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Réceptions'),
                    '!module' => 'SUIVI_BR'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsStocks || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BS&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi BS'),
                    '!module' => 'SUIVI_BS'
                );

            // Si l'utilisateur à le droit d'accéder au module des factures
            if ($droitsVisuFac || $droitsDev)
                // Sous-menu 'Suivi BAP'
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BAP&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Factures'),
                    '!module' => 'SUIVI_BAP'
                );

            // La consultation des documents est en accès libre
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DOC&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Suivi des Documents'),
                '!module' => 'SUIVI_DOC'
            );
        }

        if (DroitAcces::GetModuleAO() || $droitsDev) { // Si l'utilisateur est autorisé à acceder aux AO
            // Paramétrage affichage du module AO
            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!lien' => 'CallUrl("liste_AO.php","action=listeAO");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('AO'),
                '!module' => 'AO_LISTE'
                /*
             * Demande de YA suppression de cette information
             * '!total' => $ao->getNbAODemandeur(), // ici on compte le nombre d'AO a afficher
             * '!actu' => 'CallUrl("SIGN_manage.php","actu=AO");',
             * '!bulle' => trad("Rafraichir le nombre d'AO du demandeur")
             */
            );

            /**
             * Suppression de ce menu qui concerne l'ancien suivi des AO
             * $optionMenu['item']['A']['menu']['B']['bloc'][] = array( '!lien' => 'CallUrl("liste_AO_panier.php","action=listeAO");window.scrollTo(0,0);',
             * '!titre' => trad('AO Panier'),
             * '!module'=> 'AO_LISTE_PANIER',
             * '!total' => $aoPanier->getNbAODemandeur(),
             * '!actu' => 'CallUrl("SIGN_manage.php","actu=' . TypeSuivi::AO_PANIER . '");',
             * '!bulle' => trad("Rafraichir le nombre d'AO panier du demandeur"),
             * );
             */

            if (DroitAcces::GetAOCreatModif())
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!lien' => Menu::getLienSuiviAoPanier(false, true),
                    '!module' => 'AO_SUIVI_PANIER',
                    '!titre' => trad('Suivi de mes Consultations'),
                    '!total' => Menu::GetNbSuiviAO(),
                    '!actu' => 'CallUrl("SIGN_manage.php","actu=' . TypeSuivi::AO_PANIER . '");hideMenuOnClick(this);',
                    '!bulle' => trad("Rafraîchir le nombre d'AO panier du demandeur")
                );
        }

        if ($_SESSION['accesLicenceNotation']) {
            if (array_key_exists('isModuleNotation', $_SESSION) && $_SESSION['isModuleNotation'] && $connecteur->getType(DB_OXASQLDB) == DB_MSSQL || $droitsDev) {
                if (($_SESSION['AuthNotation'] || $_SESSION['AuthValideNotation'])) {
                    $optionMenu['item']['A']['menu']['C']['bloc'][] = array(
                        '!lien' => 'CallUrl("suivi_doc.php?action=accueil","TypeSuivi=' . TypeSuivi::CdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Mes commandes à noter'),
                        '!total' => NotationCde::getNbCdeToRate($_SESSION['Session_Login']),
                        '!module' => 'CDE_TO_RATE',
                        '!id' => 'nbCdeToRate',
                        '!actu' => "CallUrl('SIGN_manage.php','actu=CdeToRate');",
                        '!bulle' => trad('Rafraîchir le nombre de commandes en notation')
                    );
                    $optionMenu['item']['A']['menu']['C']['bloc'][] = array(
                        '!lien' => 'CallUrl("suivi_doc.php?action=accueil","TypeSuivi=' . TypeSuivi::SCdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Suivi notation commande')
                    );
    
                    $optionMenu['item']['A']['menu']['C']['bloc'][] = array(
                        '!lien' => 'CallUrl("ctrl_liste_frs.php?action=initListeNotationFrs&popup_id=NOTATION_FOURNISS&ancrage=men_gene");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Suivi notation fournisseur')
                    );
                }
            }
        }

        // Incrémentation de l'indice du menu pour le prochain
        $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
            '!titre' => trad('Liste des fournisseurs'),
            '!lien' => 'CallUrl("IU_liste_frs.php?action=initListeFrs&popup_id=FOURNISS&ancrage=men_gene");window.scrollTo(0,0);hideMenuOnClick(this);'
        );

        if ($droitsDev) {
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!titre' => trad('Test ami'),
                '!lien' => 'CallUrl(\'test_ami.php?action=Affiche&ancrage=men_gene\');window.scrollTo(0,0);'
            );
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!titre' => trad('Test écran suivi'),
                '!lien' => 'CallUrl(\'EcranSuivi.php?action=' . EcranSuivi::act_affiche_ecran . '&type_suivi=' . TypeSuivi::CDE . '&mode=' . CriteresRecherche::reinitLesChp . '&ancrage=men_gene\');window.scrollTo(0,0);'
            );
        }

        if ($droitsDev) {
            $optionMenu['item']['A']['menu']['D']['bloc'][] = array(
                '!titre' => trad('Test composants xsl'),
                '!lien' => 'CallUrl(\'testCompXsl.php?action=Affiche&ancrage=men_gene\');window.scrollTo(0,0);'
            );
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_suivi_cde.gif',
                '!titre' => trad('Suivi'),
                '!type_menu' => 'MEN_SUIVI',
                '!id' => Menu::id_menu_suivi,
                'item' => &$optionMenu['item']
            );

        return $menu;
    }

    // TODO BAILA new menu framework
    public static function &getSuiviNew()
    {
        global $connecteur;
        $menu = null;
        $optionMenu = null;

        $droitsDA        = DroitAcces::GetGestionDA();
        $droitsDev       = DroitAcces::GetALL();
        $droitsSigDa     = DroitAcces::GetSignatureDa();
        $droitsSigCde    = DroitAcces::GetSignatureCde();
        $droitsReception = DroitAcces::GetModuleReception();
        $droitsStocks    = DroitAcces::GetModuleStock();
        $droitsVisuFac   = DroitAcces::GetVisuFacture();

        if ($droitsDA || $droitsReception || $droitsStocks || $droitsSigDa || $droitsSigCde || $droitsVisuFac || DroitAcces::GetGestionDocRattaches() || $droitsDev) {

            // On définit son titre et l'image associée
            // En fonction des droits de l'utilisateur les sous-menu du menu suivi sont présentés ou non

            // Si l'utilisateur a accès au suivi des DA, CDE, CDE à imprimer et Visu Historique global
            if ($droitsDA  || $droitsDev)
                // Sous-menu "CDE à imprimer"
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => Menu::getLienSuiviCdeAEnvoyer(),
                    '!titre' => trad('Commande(s) à Envoyer'),
                    '!module' => 'CDE_TO_PRINT',
                    '!total' => Commande::getNbCdeToPrint($_SESSION['Session_Login']),
                    '!actu'     => 'CallUrl("SIGN_manage.php","actu=commandeToSend");',
                    '!bulle' => trad("Rafraîchir le nombre de commandes en attente d'impression")
                );


            if ($droitsDA || $droitsSigDa || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DA&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);',
                    '!titre' => trad('Suivi des Demandes'),
                    '!module' => 'SUIVI_DA'
                );

            if (array_key_exists('SpeCC003', $_SESSION) &&  $_SESSION['SpeCC003'] || $droitsDev)
                // Sous-menu "Suivi DA"
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CRB&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);',
                    '!titre' => trad('Suivi CRB'),
                    '!module' => 'SUIVI_CRB'
                );


            if ($droitsDA || $droitsSigCde || $droitsDev || $_SESSION['HA_CA_LIS'])
                // Sous-menu 'Suivi CDE'
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CDE&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Commandes'),
                    '!module' => 'SUIVI_CDE'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsReception || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BR&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Réceptions'),
                    '!module' => 'SUIVI_BR'
                );

            // Si l'utilisateur à le droit d'accéder au module des réceptions
            if ($droitsStocks || $droitsDev)
                // Sous-menu 'Suivi BR'
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BS&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi BS'),
                    '!module' => 'SUIVI_BS'
                );

            // Si l'utilisateur à le droit d'accéder au module des factures
            if ($droitsVisuFac || $droitsDev)
                // Sous-menu 'Suivi BAP'
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=BAP&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Suivi des Factures'),
                    '!module' => 'SUIVI_BAP'
                );

            // La consultation des documents est en accès libre
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien'  => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DOC&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=1");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Suivi des Documents'),
                '!module' => 'SUIVI_DOC'
            );
        }

        if (DroitAcces::GetModuleAO() || $droitsDev) { // Si l'utilisateur est autorisé à acceder aux AO
            // Paramétrage affichage du module AO
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien'  => 'CallUrl("liste_AO.php","action=listeAO");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('AO'),
                '!module' => 'AO_LISTE',
                /* Demande de YA suppression de cette information
                 '!total' =>  $ao->getNbAODemandeur(), // ici on compte le nombre d'AO a afficher
                 '!actu'	 => 'CallUrl("SIGN_manage.php","actu=AO");',
                 '!bulle' => trad("Rafraichir le nombre d'AO du demandeur")
                 */
            );

            /**
             * Suppression de ce menu qui concerne l'ancien suivi des AO
             $optionMenu['item']['A']['menu']['B']['bloc'][] = array( '!lien'  => 'CallUrl("liste_AO_panier.php","action=listeAO");window.scrollTo(0,0);',
             '!titre' => trad('AO Panier'),
             '!module'=> 'AO_LISTE_PANIER',
             '!total' =>  $aoPanier->getNbAODemandeur(),
             '!actu'  => 'CallUrl("SIGN_manage.php","actu=' . TypeSuivi::AO_PANIER . '");',
             '!bulle' => trad("Rafraichir le nombre d'AO panier du demandeur"),
             );
             */


            if (DroitAcces::GetAOCreatModif())
                $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                    '!lien'  => Menu::getLienSuiviAoPanier(false, true),
                    '!module' => 'AO_SUIVI_PANIER',
                    '!titre' => trad('Suivi de mes Consultations'),
                    '!total' =>  Menu::GetNbSuiviAO(),
                    '!actu'  => 'CallUrl("SIGN_manage.php","actu=' . TypeSuivi::AO_PANIER . '");',
                    '!bulle' => trad("Rafraîchir le nombre d'AO panier du demandeur"),
                );
        }

        if ($_SESSION['accesLicenceNotation']) {
            if (array_key_exists('isModuleNotation', $_SESSION) && $_SESSION['isModuleNotation'] && $connecteur->getType(DB_OXASQLDB) == DB_MSSQL || $droitsDev) {
                if (($_SESSION['AuthNotation'] || $_SESSION['AuthValideNotation'])) {
                    $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                        '!lien'  => 'CallUrl("suivi_doc.php?action=accueil","TypeSuivi=' . TypeSuivi::CdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Mes commandes à noter'),
                        '!total' => NotationCde::getNbCdeToRate($_SESSION['Session_Login']),
                        '!module' => 'CDE_TO_RATE',
                        '!id'     => 'nbCdeToRate',
                        '!actu'     => "CallUrl('SIGN_manage.php','actu=CdeToRate');",
                        '!bulle' => trad('Rafraîchir le nombre de commandes en notation'),
                    );
                    $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                        '!lien'  => 'CallUrl("suivi_doc.php?action=accueil","TypeSuivi=' . TypeSuivi::SCdeToRate . '");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Suivi notation commande'),
                    );
                    
                    $optionMenu['item']['A']['menu']['A']['bloc'][]     = array(
                        '!lien'  => 'CallUrl("ctrl_liste_frs.php?action=initListeNotationFrs&popup_id=NOTATION_FOURNISS&ancrage=men_gene");window.scrollTo(0,0);hideMenuOnClick(this);',
                        '!titre' => trad('Suivi notation fournisseur')
                    );
                }
            }
        }


        // Incrémentation de l'indice du menu pour le prochain
        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre'             => trad('Liste des fournisseurs'),
            '!lien'              => 'CallUrl("IU_liste_frs.php?action=initListeFrs&popup_id=FOURNISS&ancrage=men_gene");window.scrollTo(0,0);hideMenuOnClick(this);'
        );

        if ($droitsDev) {
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Test ami'),
                '!lien'  => 'CallUrl(\'test_ami.php?action=Affiche&ancrage=men_gene\');window.scrollTo(0,0);'
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Test écran suivi'),
                '!lien'  => 'CallUrl(\'EcranSuivi.php?action=' . EcranSuivi::act_affiche_ecran . '&type_suivi=' . TypeSuivi::CDE . '&mode=' . CriteresRecherche::reinitLesChp . '&ancrage=men_gene\');window.scrollTo(0,0);'
            );
        }

        if ($droitsDev) {
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Test composants xsl'),
                '!lien'  => 'CallUrl(\'testCompXsl.php?action=Affiche&ancrage=men_gene\');window.scrollTo(0,0);'
            );
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!image'      => 'images/normal/picto_suivi_cde.gif',
                '!titre'     => trad('Suivi'),
                '!lien'         => "CallUrl('barre_menu.php?action=ChangeBarreeProc&no_refresh=true&contexte=MEN_SUIVI');",
                '!type_menu' => 'MEN_SUIVI',
                '!id'         => Menu::id_menu_suivi,
                'item'       => &$optionMenu['item']
            );


        return $menu;
    }

    // TODO BAILA fin new menu framework
    public static function &getLienSuiviBonSortie()
    {
        $resultat = 'CallUrl(\'BS_encours.php\',\'MODE=httpreq&OBJECT=relance\');window.scrollTo(0,0);hideMenuOnClick(this);';
        return $resultat;
    }

    public static function &getLienBrAttendus()
    {
        $resultat = 'CallUrl(\'BR_ToDo.php?action=accueil&initData=10\');window.scrollTo(0,0);hideMenuOnClick(this);';

        return $resultat;
    }

    public static function &getBonSortie()
    {
        $menu = null;
        if (DroitAcces::GetModuleStock() || DroitAcces::GetALL()) {
            $bs = new BS(); // Création de l'Objet BS
            $menu = array(
                '!image' => 'images/normal/picto_bs.gif',
                '!titre' => trad('Bons de sortie'),
                '!id' => Menu::id_menu_bs,
                '!type_menu' => 'BON_SORTIE'
            );

            $optionMenu = &$menu;
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!module' => 'BS',
                '!lien' => "CallUrl('BS_encours.php','MODE=httpreq&OBJECT=relance');window.scrollTo(0,0);hideMenuOnClick(this);",
                '!titre' => trad('BS en cours'),
                '!total' => $bs->getNbArt(), // initialisation du nombre d'article présent dans le BS en cours
                '!bulle' => trad('Supprimer les articles stockés du BS en cours'),
                '!supprimer' => " if(confirm(\"" . cnv_to_javascript(trad('Confirmez-vous la suppression du bon de sortie en cours ?')) . "\")){CallUrl('BS_encours.php','MODE=httpreq&OBJECT=supprimer');}",
                '!page' => Menu::getLienSuiviBonSortie()
            );
        }
        return $menu;
    }

    public static function &getReception()
    {
        $menu = null;

        if (DroitAcces::GetModuleReception() || DroitAcces::GetALL()) {
            $menu = array(
                '!image' => 'images/normal/picto_reception.gif',
                '!type_menu' => 'BR',
                '!titre' => trad('Réceptions')
            );

            $optionMenu = &$menu;
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
//                '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBR","");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!lien' => 'window.location="V2/Reception/index";',
                '!titre' => trad('Création de BR')
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'window.location="V2/Reception/bonrecep/list";',
                '!titre' => trad('Gestion de BR')
            );

            if (DroitAcces::GetBRPhaseCtrl()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBRtoCtrl","");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Contrôles qualité')
                );
            }

            // $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            //     '!lien' => 'CallUrl("BR_ToDo.php?action=accueil",""); window.scrollTo(0,0);hideMenuOnClick(this);',
            //     '!titre' => trad('BR attendus')
            // );

            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("IU_br_creation.php?action=RepartitionDemandeur",""); window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Répartition demandeur')
            );
        }

        return $menu;
    }

    public static function &getAccordCadre()
    {
        $menu = null;

        // TODO BAILA ACCORD CADRE
        if (DroitAcces::GetModuleReception() || DroitAcces::GetALL()) {
            $menu = array(
                '!image' => 'images/normal/picto_reception.gif',
                '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBR","");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Accord-cadre')
            );

            $optionMenu = &$menu;
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBR","");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Création de BR')
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'window.location="V2/Reception/bonrecep/list";',
                '!titre' => trad('Gestion de BR')
            );

            if (DroitAcces::GetBRPhaseCtrl()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!lien' => 'CallUrl("IU_br_creation.php?action=accueilBRtoCtrl","");window.scrollTo(0,0);hideMenuOnClick(this);',
                    '!titre' => trad('Contrôles qualité')
                );
            }

            // $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            //     '!lien' => 'CallUrl("BR_ToDo.php?action=accueil",""); window.scrollTo(0,0);hideMenuOnClick(this);',
            //     '!titre' => trad('BR attendus')
            // );

            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("IU_br_creation.php?action=RepartitionDemandeur",""); window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('Répartition demandeur')
            );
        }

        return $menu;
    }

    public static function &GetLienInscriptEnAtt($type, $refDemande = null)
    {
        $resultat = 'CallUrl(\'COLLAB_manage.php\',\'item=DEM&MODE_ACCES=C&PROFIL=' . $type . '\&REF_DEMANDE=' . $refDemande . '\');window.scrollTo(0,0);';
        return $resultat;
    }

    public static function &GetLienModifEnAtt($type, $refDemande = null)
    {
        $resultat = 'CallUrl(\'COLLAB_manage.php\',\'item=DEM&MODE_ACCES=M&PROFIL=' . $type . '\&REF_DEMANDE=' . $refDemande . '\');window.scrollTo(0,0);';
        return $resultat;
    }

    public static function &GetLienUtilisateurBloques($type)
    {
        $resultat = 'CallUrl(\'COLLAB_manage.php\',\'item=DEM&MODE_ACCES=B&PROFIL=' . $type . '\');window.scrollTo(0,0);';
        return $resultat;
    }

    public static function getMenuAdministrationCollaborateurs()
    {
        // Spec 3637
        $menu = null;
        $optionMenu = null;
        $type = DroitAcces::GetTypeAdmin();

        if (!DroitAcces::IsModeBackup() && ('' != $type || DroitAcces::GetALL())) {

            $optionMenu['item']['A']['menu']['A']['bloc'][1] = array(
                '!titre' => trad('Collaborateurs'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-collaborateur',
                '!total' => 0,
                '!lien' => "CallUrl('COLLAB_manage.php','item=DEM&MODE_ACCES=C&PROFIL=" . $_SESSION['AdmCentral'] . "');window.scrollTo(0,0);",
            );


            $inscript = new CollabManage();
            $inscript->initNbDem($_SESSION['Session_Login'], $type);

            $nbInscript = $_SESSION['adminNbInscript'] = $inscript->getNbInscritionToAdmin();
            if ($nbInscript != 0 || "I" != Param::getParamActionNouveauCompte()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                    '!lien' => Menu::GetLienInscriptEnAtt($type),
                    '!titre' => Trad('Inscript. en attente'),
                    '!module' => "ADMIN_INSCRIPTION",
                    '!total' => $nbInscript,
                    '!actu' => "CallUrl('COLLAB_manage.php','actu=DEM&MODE_ACCES=C&PROFIL=$type');",
                    '!bulle' => trad("Rafraîchir le nombre de demandes d'inscription en attente"),
                    '!custom_id' => 'menuLeftInscriptEnAttente'
                );

                if ($nbInscript != '' && $nbInscript != 0) {
                    $notification[] = [
                        '!total' => $nbInscript,
                        '!lien' => Menu::GetLienInscriptEnAtt($type),
                        '!titre' => trad('Inscript. en attente')
                    ];
                    $notification['!total'] = ($notification['!total'] ?? 0) + $nbInscript;

                    $optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] ?? '') + $nbInscript;
                }
            }

            $nbModifToAdmin = $_SESSION['getNbModifToAdmin'] = $inscript->getNbModifToAdmin();
            // Sous-menu : demandes de de modification
            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                '!lien' => Menu::GetLienModifEnAtt($type),
                '!titre' => trad('Modif. en attente'),
                '!module' => 'ADMIN_MODIF',
                '!total' => $nbModifToAdmin,
                '!actu' => "CallUrl('COLLAB_manage.php','actu=DEM&MODE_ACCES=M&PROFIL=$type');",
                '!bulle' => trad('Rafraîchir le nombre de modification de compte en attente'),
                '!custom_id' => 'menuLeftModifEnAttente'
            );
            if ($nbModifToAdmin != '' && $nbModifToAdmin != 0) {
                $notification[] = [
                    '!total' => $nbModifToAdmin,
                    '!lien' => Menu::GetLienModifEnAtt($type),
                    '!titre' => trad('Inscript. en attente')
                ];
                $notification['!total'] = ($notification['!total'] ?? 0) + $nbModifToAdmin;

                $optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] ?? 0) + $nbModifToAdmin;
            }

            // Sous-menu : Liste des collaborateurs
            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                '!lien' => "CallUrl('COLLAB_manage.php','list=collab&MODE_ACCES=L&PROFIL=$type');window.scrollTo(0,0);",
                '!titre' => trad('Liste collaborateurs'),
                '!module' => 'ADMIN_COLLABORATEUR',
                '!actu' => "CallUrl('COLLAB_manage.php','actu=List&PROFIL=$type');",
                '!bulle' => trad('Rafraîchir le nombre d\'utilisateurs gérés'),
                '!custom_id' => 'menuLeftListeCollab'
            );

            $nbBlocages = $_SESSION['getNbBlocagesUtilisateur'] = $inscript->getNbBlocagesUtilisateur();
            // Sous-menu : Liste des blocages en cours
            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                '!lien' => Menu::GetLienUtilisateurBloques($type),
                '!titre' => trad('Utilisateurs bloqués'),
                '!module' => 'ADMIN_BLOCAGE',
                '!total' => $nbBlocages,
                '!actu' => "CallUrl('COLLAB_manage.php','actu=DEM&MODE_ACCES=B&PROFIL=$type');",
                '!bulle' => trad('Rafraîchir le nombre d\'utilisateurs bloqués'),
                '!custom_id' => 'menuLeftUtilBloques'
            );
            if ($nbBlocages != '' && $nbBlocages != 0) {
                $notification[] = [
                    '!total' => $nbBlocages,
                    '!lien' => Menu::GetLienModifEnAtt($type),
                    '!titre' => trad('Inscript. en attente')
                ];
                $notification['!total'] = ($notification['!total'] ?? 0) + $nbBlocages;
                $optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] ?? 0) + $nbBlocages;
            }

            // Client CLT_LEON_G : LEON G - spec 3011 Paramétrage fonction Liste chantiers
            if (CLT_LEON_G == $_SESSION['Session_NumClient'] || Menu::allMenu)
                $optionMenu['item']['A']['menu']['C']['bloc'][1]['sub'][] = array(
                    '!lien' => 'CallUrl("gestion_si_compl_par_dir.php","action=initialisation");window.scrollTo(0,0);',
                    '!titre' => trad('Paramétrage chantiers par agence')
                );

            // Client CLT_GALLEC Partage de code budgetaire Spec 3213
            if (CLT_GALLEC == $_SESSION['Session_NumClient'] || Menu::allMenu)
                $optionMenu['item']['A']['menu']['C']['bloc'][1]['sub'][] = array(
                    '!lien' => 'CallUrl("gest_part_code_budg.php","action=initialisation");window.scrollTo(0,0);',
                    '!titre' => trad('Partage Codes budgétaires')
                );
        }


        // gestion des droits
        // Spec 3637
        $type = DroitAcces::GetTypeAdmin();

        if (!DroitAcces::IsModeBackup() && ('' != $type || DroitAcces::GetALL())) {

            $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
                '!titre' => trad('Gestion Des Droits'),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-droit',
                '!lien' => 'CallUrl("DROITS_users.php","action=initialisation");window.scrollTo(0,0);',
                '!custom_id' => 'menuLeftGestDroits'
            );

            $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                '!lien' => 'CallUrl("DROITS_users.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Utilisateurs'),
                '!custom_id' => 'menuLeftUtilisateurs'
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                '!lien' => 'CallUrl("DROITS_groupes.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Groupes de droits'),
                '!custom_id' => 'menuLeftGpsDroits'
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                '!lien' => 'CallUrl("DROITS_creatGroupe.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Création groupes de droits'),
                '!custom_id' => 'menuLeftCreaGpsDroits'
            );
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_adminCollab.gif',
                '!titre' => trad('Gestion des droits'),
                '!type_menu' => 'Administration',
                '!id' => Menu::id_menu_collab,
                'item' => &$optionMenu['item'],
                '!style' => 'min-width:150px;'
            );

        $HA_PARAM = DroitAcces::droitsUtilisateur('HA_PARAM')->Trouve1();
        $numClient = $_SESSION['Session_NumClient_Licence'];
        $product = 'HASSTD';
        $valLic = 'OXALINK';
        $reqSqlLic = Param::GetLicence($numClient, $product, $valLic);
        if ($HA_PARAM['DROIT'] && ($_SESSION['Session_NumClient_Licence'] == '0' || is_array($reqSqlLic))) {
            $optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
                '!titre' => trad('Gestion des utilisateurs OXA.LINK '),
                '!icon' => 'img_ligne_libre_mini_16x16',
                '!class' => 'mg-utilisateurs_OXALINK',
                '!lien' => 'location.href = "V2/Administration/oxaLink/gestionUtilisateur";',

            );
            $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                '!lien' => 'location.href = "V2/Administration/oxaLink/gestionUtilisateur";',
                '!titre' => trad('Gestion des utilisateurs OXA.LINK '),
                '!custom_id' => 'menuLeftGestUtilOxalink'
            );
        }

        return $menu;
    }

    public static function getMenuGestionDroits()
    {
        // Spec 3637
        $menu = null;
        $optionMenu = null;
        $type = DroitAcces::GetTypeAdmin();

        if (!DroitAcces::IsModeBackup() && ('' != $type || DroitAcces::GetALL())) {
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("DROITS_users.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Utilisateurs')
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("DROITS_groupes.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Groupes de droits')
            );
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!lien' => 'CallUrl("DROITS_creatGroupe.php","action=initialisation");window.scrollTo(0,0);',
                '!titre' => trad('Création des groupes de droit')
            );
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_adminCollab.gif',
                '!titre' => trad('Gestion des droits'),
                '!type_menu' => 'ADMIN_DROITS',
                '!id' => Menu::id_menu_collab,
                'item' => &$optionMenu['item'],
                '!style' => 'min-width:150px;'
            );

        return $menu;
    }

    public static function &refreshMenuUtilisateur()
    {
        $obj_xml = new GenXslt(true);

        $array_menu['pageMenu'] = '1';
        if ($_SESSION['EasyDemat'] == 1) {
            $array_menu['modules']['entete'] = Menu::getMenuUtilisateurEasyDemat();
        } else {
            $array_menu['modules']['entete'] = Menu::getMenuUtilisateur();
        }
        $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

        $resultat = $obj_xml->AffHtml(Menu::id_menu_utilisateur) . $obj_xml->AffHtml(Menu::id_libelle_societe);
        return $resultat;
    }

    public static function &refreshCollaborateurs()
    {
        $obj_xml = new GenXslt(true);
        $array_menu['pageMenu'] = '1';

        if ($_SESSION['EasyDemat'] == 1) {
            $array_menu['modules']['entete'] = Menu::getMenuUtilisateurEasyDemat();
        } else {
            $array_menu['modules']['entete'] = Menu::getMenuUtilisateur();
        }

        $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

        $resultat = $obj_xml->AffHtml(Menu::id_menu_admin);
        return $resultat;
    }

    public static function &refreshAdministration()
    {
        $obj_xml = new GenXslt(true);
        $array_menu['pageMenu'] = '1';

        $array_menu['modules']['entete'] = Menu::getMenuAdministrationCollaborateurs();
        $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

        $resultat = $obj_xml->AffHtml(Menu::id_menu_admin);
        return $resultat;
    }

    public static function &refreshBonSortie()
    {
        $obj_xml = new GenXslt(true);
        $array_menu['pageMenu'] = '1';

        $array_menu['modules']['entete'] = Menu::getBonSortie();
        $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

        $resultat = $obj_xml->AffHtml(Menu::id_menu_bs);
        return $resultat;
    }

    /**
     * ATTENTION NE PAS METTRE DE REFERENCE CAR APPEL DYNAMIC selon MOD ou DOA
     * 
     * @param string $typDeSuvi
     * @return string
     */
    public static function refreshDocument($typDeSuvi = null, $prefix = '')
    {
        $obj_xml = new GenXslt(true);
        $array_menu['pageMenu'] = '1';

        switch ($typDeSuvi) {
            case TypeSuivi::MOD:
            case TypeSuivi::DOA:
                $array_menu['modules']['entete'] = Menu::getMenuDOADossier();
                $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

                $resultat = $obj_xml->AffHtml(Menu::id_menu_doa_dossier, $prefix) . "refreshNotification();";
                return $resultat;
            case TypeSuivi::DA:
            case TypeSuivi::CDE:
            case TypeSuivi::BAP:
            case TypeSuivi::DELEGATION:
                $array_menu['modules']['entete'] = Menu::getSignatures();
                $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

                $resultat = $obj_xml->AffHtml(Menu::id_menu_signa, $prefix) . "refreshNotification();";
                return $resultat;
            case TypeSuivi::CdeToSend:
            case 'notation':
            case TypeSuivi::AO:
            case TypeSuivi::AO_PANIER:
            case TypeSuivi::CdeToRate:
            case TypeSuivi::SCdeToRate:
                $array_menu['modules']['entete'] = Menu::getSuivi();
                $obj_xml->XslHtml(Menu::fichier_xsl_menu, $array_menu);

                $resultat = $obj_xml->AffHtml(Menu::id_menu_suivi, $prefix) . "refreshNotification();";

                return $resultat;
        }
    }

    public static function &getMenuBurger()
    {
        $optionMenu = null;

        // Spec 3637 : 2ème version menu burger
        $menu = array(
            '!type_menu' => 'MEN_BURGER',
            '!id' => Menu::id_menu_burger,
            'item' => &$optionMenu['item'],
            '!version' => '2',
            '!actif' => 'true',
            '!onclick' => 'CallUrl(\'barre_menu.php?action=AffichePanelMenuBurger\');'
        );

        $optionMenu = &$menu;
        return $optionMenu;
    }

    public static function &getLienTableauDeBordOperationnel()
    {
        $resultat = 'location.href = "V2/ProjetAchat/tableauDeBord";';
        return $resultat;
    }


    public static function getProjetAchat()
    {
        $optionMenu = null;

        // Condition d'accès au menu Dossiers de DOA
        // 20151103 : YA => toujours, à partir du moment où l'utilisateur a accès au menu


        ///////////////////
        if ($reqSqlActions = SqlDoaActions::rqGetDOAPourTDBOperationnel($_SESSION['Session_Login'])->TrouveTous())
            $nbActions = count($reqSqlActions);
        else
            $nbActions = 0;


        $optionMenu['item']['A']['menu']['A']['bloc'][1] = array(
            '!titre' => trad('Dossiers'),
            '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DOA&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);event.stopPropagation();',
            '!class' => 'mg-gestion-projet',
            '!actu' => 'CallUrl("TDB_Operationnel.php","action=RefreshCompteurTB");',
            '!total' => $nbActions,
            '!idNotification' => 'notificationDOATotal'
        );


        $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
            '!titre' => trad('Vos actions à traiter'),
            '!lien' => Menu::getLienTableauDeBordOperationnel(),
            '!actu' => 'CallUrl("TDB_Operationnel.php","action=RefreshCompteurTB");',
            '!total' => $nbActions,
            '!idNotification' => 'notificationDOA'
        );

        if (Param::canCreateDoaModele()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                '!titre' => trad('Créer un dossier'),
                // '!lien' => 'window.open(\'DOA.php?action=CreationDOA&est_modele=false\', \'win_pop\', \'width=1000,height=200\')'//"CallUrl('DOA.php?action=AcceuilCreation&est_modele=false&ancrage=men_gene');window.scrollTo(0,0);"
                // Lien juste au dessus supprimer on pase directement en creation de simple DOA sinon on passe par le suivi
                '!lien' => 'CallUrl("DOA.php?action=CreationDOASimple&est_modele=false&new=1");'
            );

        if (Param::canAccessDoaSuiviMenu() || Param::canAccessDoaBib()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                '!titre' => trad('Suivi des dossiers'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=' . TypeSuivi::DOA . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);'
            );



        /////////////////////////////////////////
        $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
            '!titre' => trad('Modèles'),
            '!class' => 'mg-modeles-projet',
            '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=MOD&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);event.stopPropagation();',
        );

        if (Param::canCreateDoaModele()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  = array(
                '!titre' => trad('Créer un modèle'),
                '!lien' => 'window.open(\'DOA.php?action=CreationDOA&est_modele=true\', \'win_pop\', \'width=1000,height=200\');' // "CallUrl('DOA.php?action=AcceuilCreation&est_modele=false&ancrage=men_gene');window.scrollTo(0,0);"
            );

        if (Param::canAccessDoaSuiviMenu()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][]  = array(
                '!titre' => trad('Gestion des modèles'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=' . TypeSuivi::MOD . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);'
            );


        ////////////////////////////////////////

        $optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
            '!titre' => trad('Bibliothèque'),
            '!class' => 'mg-bibliotheque',
            '!lien' => 'CallUrl("DOA_Bibliotheque.php?ancrage=men_gene&action=accueil");window.scrollTo(0,0);'
        );

        if (Param::canAccessDoaBib()) { // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][]  = array(
                '!titre' => trad('Bibliothèque de données'),
                '!lien' => 'CallUrl("DOA_Bibliotheque.php?ancrage=men_gene&action=accueil");window.scrollTo(0,0);'
            );
        }

        if (SqlUsers::droitsUtilisateur('DOA_OPE')->Trouve1()['DROIT']) {
            $optionMenu['item']['A']['menu']['A']['bloc'][4] = array(
                '!titre' => trad('Référentiel'),
                '!class' => 'mg-referentiel',

            );
            $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                '!lien' => 'location.href = "V2/ProjetAchat/table-operation";',
                '!titre' => trad('Table Opération'),
            );
        }

        return $optionMenu;
    }


    public static function &getMenuDOADossier()
    {
        // Spec 3637
        $optionMenu = null;

        // Condition d'accès au menu Dossiers de DOA
        // 20151103 : YA => toujours, à partir du moment où l'utilisateur a accès au menu

        if ($reqSqlActions = SqlDoaActions::rqGetDOAPourTDBOperationnel($_SESSION['Session_Login'])->TrouveTous())
            $nbActions = count($reqSqlActions);
        else
            $nbActions = 0;

        $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
            '!titre' => trad('Vos actions à traiter'),
            '!lien' => Menu::getLienTableauDeBordOperationnel(),
            '!actu' => 'CallUrl("TDB_Operationnel.php","action=RefreshCompteurTB");',
            '!total' => $nbActions
        );

        if (Param::canCreateDoaModele()) // 25170
            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Créer un dossier'),
                // '!lien' => 'window.open(\'DOA.php?action=CreationDOA&est_modele=false\', \'win_pop\', \'width=1000,height=200\')'//"CallUrl('DOA.php?action=AcceuilCreation&est_modele=false&ancrage=men_gene');window.scrollTo(0,0);"
                // Lien juste au dessus supprimer on pase directement en creation de simple DOA sinon on passe par le suivi
                '!lien' => 'CallUrl("DOA.php?action=CreationDOASimple&est_modele=false&new=1");'
            );

        if (Param::canAccessDoaSuiviMenu() || Param::canAccessDoaBib()) // 25170
            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Suivi des dossiers'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=' . TypeSuivi::DOA . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);'
            );

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_adminCollab.gif',
                '!titre' => trad('Dossiers'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=DOA&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);event.stopPropagation();',
                '!type_menu' => 'DOA_DOSSIER',
                '!id' => Menu::id_menu_doa_dossier,
                'item' => &$optionMenu['item']
                // '!style' => 'min-width:150px;'
            );
        return $menu;
    }

    public static function &getMenuDOAModeles()
    {
        // Spec 3637
        $menu = null;
        $optionMenu = null;
        if (Param::canCreateDoaModele()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Créer un modèle'),
                '!lien' => 'window.open(\'DOA.php?action=CreationDOA&est_modele=true\', \'win_pop\', \'width=1000,height=200\');' // "CallUrl('DOA.php?action=AcceuilCreation&est_modele=false&ancrage=men_gene');window.scrollTo(0,0);"
            );

        if (Param::canAccessDoaSuiviMenu()) // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Gestion des modèles'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=' . TypeSuivi::MOD . '&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);'
            );

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_adminCollab.gif',
                '!titre' => trad('Modèles'),
                '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=MOD&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance&initData=10");window.scrollTo(0,0);event.stopPropagation();',
                '!type_menu' => 'DOA_MODELE',
                '!id' => Menu::id_menu_doa_modele,
                'item' => &$optionMenu['item']
                // '!style' => 'min-width:150px;'
            );
        return $menu;
    }

    public static function &getMenuDOABibliotheque()
    {
        $menu = null;
        $optionMenu = null;

        if (Param::canAccessDoaBib()) { // 25170
            $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                '!titre' => trad('Bibliothèque de données'),
                '!lien' => 'CallUrl("DOA_Bibliotheque.php?ancrage=men_gene&action=accueil");window.scrollTo(0,0);'
            );
        }

        if (!is_null($optionMenu))
            $menu = array(
                '!image' => 'images/normal/picto_adminCollab.gif',
                '!titre' => trad('Bibliothèque'),
                '!type_menu' => 'DOA_BIBLIO',
                '!id' => Menu::id_menu_doa_biblio,
                'item' => &$optionMenu['item']
                // '!style' => 'min-width:150px;'
            );

        return $menu;
    }

    public static function &getLienRechercheGestionFournisseurs()
    {
        $resultat = 'CallUrl("recherche_avancee_gene.php?action=AfficherRechercheSimple&popup_id=' . RechercheAvanceeGestFourniss::$popup_id . '&ancrage=men_gene");window.scrollTo(0,0);';
        return $resultat;
    }

    // EDP Correction de la logique car sinon il peut y avoir appel de la fonction sans le return => BUG d'affectation de la référence
    public static function &getMenuFournisseurs()
    {
        $optionMenu = null;
        $menu = null;

        if (($_SESSION['Session_NumClient'] == 0) || DroitAcces::GetBarreFournisseurs()) {

            if (DroitAcces::GetCreationFournisseur())
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Créer un fournisseur référencé'),
                    '!lien' => 'CallUrl(\'gest_fourniss.php?action=CreerFournisseur&ancrage=men_gene&codeFrs=&mode=LE\');' . ';RechAvGen_AfficherFicheElement();'
                );
            if (DroitAcces::GetCreationProspect())
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Créer un fournisseur prospect'),
                    '!lien' => 'CallUrl(\'gest_fourniss.php?action=CreerProspect&ancrage=men_gene&codeFrs=&mode=LE\');' . ';RechAvGen_AfficherFicheElement();'
                );

            if (DroitAcces::GetShortListFournisseur())
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Gestion des short lists'),
                    '!lien' => 'CallUrl("IU_liste_short.php?action=initPopup&popup_id=SHORTLIST&ancrage=men_gene");window.scrollTo(0,0);'
                );

            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Gestion des fournisseurs'),
                '!lien' => Menu::getLienRechercheGestionFournisseurs()
            );
        }

        if (!is_null($optionMenu)) {
            $menu = array(
                '!type_menu' => 'MEN_FOURNISSEURS',
                '!titre' => trad('Fournisseurs'),
                '!id' => Menu::id_menu_fournisseurs,
                'item' => &$optionMenu['item']
            );
        }
        return $menu;
    }

    // EDP Correction de la logique car sinon il peut y avoir appel de la fonction sans le return => BUG d'affectation de la référence
    public static function &getMenuFournisseursSuiviDemande()
    {
        $optionMenu = null;
        $menu = null;

        if (($_SESSION['Session_NumClient'] == 0) || DroitAcces::GetBarreFournisseurs()) {
            if (DroitAcces::GetALL()) {
                $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                    '!titre' => trad('Suivi des demandes'),
                    '!lien' => 'CallUrl(\'EcranSuivi.php?action=' . EcranSuivi::act_affiche_ecran . '&type_suivi=' . TypeSuivi::GESTFOURNISS_Dem_four . '&mode=' . CriteresRecherche::reinitLesChp . '&ancrage=men_gene\');window.scrollTo(0,0);'
                );
            }
            return $menu;
        }
        if (!is_null($optionMenu)) {
            $menu = array(
                '!type_menu' => 'MEN_FOURNISSEURS_SUIVIDEM',
                '!titre' => trad('Suivi'),
                '!id' => Menu::id_menu_fournisseurs_suivi_dem,
                'item' => &$optionMenu['item']
            );
        }

        return $menu;
    }

    public static function &getLienSuiviCampagneFournisseur()
    {
        // $resultat = 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CAMF&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);';
        $resultat = 'location.href = "V2/evaluation/notation";';
        return $resultat;
    }


    public static function &getLienProjetAchat()
    {
        $resultat = 'CallUrl("TDB_Operationnel.php?action=AfficherTabBordOp&ancrage=men_gene");window.scrollTo(0,0);';
        return $resultat;
    }

    public static function getMenuCampagnes()
    {
        $optionMenu = null;

        $menu = array(
            '!type_menu' => 'MEN_CAMPAGNES',
            '!titre' => trad('Campagnes'),
            '!id' => Menu::id_menu_campagnes,
            'item' => &$optionMenu['item']
        );

        $optionMenu = &$menu;

        if (DroitAcces::GetModuleCampagne()) {
            $optionMenu['item']['A']['menu']['A']['bloc'][1] = array(
                '!titre' => trad('Evaluations'),
                '!icon' => '',
                '!class' => 'mg-Evaluation',
                '!total' => 0,

            );

            if (DroitAcces::GetALL()) {
                // on récupère le nombre de campagnes qu'il nous reste à noter en tant qu'évaluateur
                $conteur =  CampEve::getNbCampagneANoter();

                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                    '!titre' => trad('Mes notations'),
                    '!total' => $conteur,
                    '!lien' => Menu::getLienSuiviCampagneFournisseur()
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][1]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][1]['!total']  ?? 0) + $conteur;

                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                    '!titre' => trad('Créer une campagne'),
                    '!lien' => 'location.href = "V2/evaluation/campagne/createdit";'
                );
                $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                    '!titre' => trad('Gestion des campagnes'),
                    '!lien' => 'location.href = "V2/evaluation/campagne";'
                );
                // $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                //     '!titre' => trad('Suivi des Campagnes'),
                //     '!lien' => 'CallUrl("suivi_doc.php","action=accueil&TypeSuivi=CAMP&contexteSuivi=modePersonnel&MODE=httpreq&OBJECT=relance");window.scrollTo(0,0);'
                // );
                // $optionMenu['item']['A']['menu']['A']['bloc'][1]['sub'][] = array(
                //     '!titre' => trad('Bibliothèque de questions'),
                //     '!lien' => 'location.href = "V2/evaluation/bibliotheque/question/1";',
                // );

                // second bloc de menu - Modèles de campagnes
                $optionMenu['item']['A']['menu']['A']['bloc'][2] = array(
                    '!titre' => trad('Modèles'),
                    '!icon' => '',
                    '!class' => 'mg-modeles-projet',
                    '!total' => 0,
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    '!titre' => trad('Créer un modèle'),
                    '!lien' => 'location.href = "V2/evaluation/modele/creation";',
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][2]['sub'][] = array(
                    '!titre' => trad('Gestion des modèles'),
                    '!lien' => 'location.href = "V2/evaluation/modele";',
                );

                // troisième bloc de menu - Bibliothèque de données
                $optionMenu['item']['A']['menu']['A']['bloc'][3] = array(
                    '!titre' => trad('Bibliothèque de données'),
                    '!icon' => '',
                    '!class' => 'mg-bibliotheque',
                    '!total' => 0,
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                    '!titre' => trad('Bibliothèque de questions'),
                    '!lien' => 'location.href = "V2/evaluation/bibliotheque/question/ALL";',
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][3]['sub'][] = array(
                    '!titre' => trad('Groupes d\'évaluateurs'),
                    '!lien' => 'location.href = "V2/evaluation/question/detail/groups";',
                );

                // bloc de menu 4 - Catégories (de modèles de campagnes)
                $optionMenu['item']['A']['menu']['A']['bloc'][4] = array(
                    '!titre' => trad('Catégories'),
                    '!icon' => '',
                    '!class' => 'mg-referentiel',
                    '!total' => 0,
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                    '!titre' => trad('Créer une catégorie'),
                    '!lien' => 'location.href = "V2/evaluation/categorie/creation";',
                );

                $optionMenu['item']['A']['menu']['A']['bloc'][4]['sub'][] = array(
                    '!titre' => trad('Gestion des catégories'),
                    '!lien' => 'location.href = "V2/evaluation/categorie";',
                );

                // bloc de menu 5 - Suivi des évènements
                $optionMenu['item']['A']['menu']['A']['bloc'][5] = array(
                    '!titre' => trad('Suivi des évènements'),
                    '!lien' => 'location.href = "V2/evaluation/campagne/suivi";',
                    '!class' => 'mg-listeSuivi',
                );
            }
            return $menu;
        }
    }



    public static function &getMenuAO()
    {
        $optionMenu = null;

        if ($_SESSION['Session_NumClient'] == 0 || DroitAcces::GetModuleAO() || 1 == 1) {

            if (DroitAcces::GetAOCreatModif())
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!titre' => trad('Créer un AO'),
                    '!lien' => 'CallUrl("AO_fiche.php?action=crreeNouvelAO");hideMenuOnClick(this);'
                );

            if (DroitAcces::GetAOConsult() || DroitAcces::GetAOCreatModif()) {
                $optionMenu['item']['A']['menu']['A']['bloc'][] = array(
                    '!titre' => Trad('Consultations à envoyer'),
                    '!total' => Menu::getNbAOAEnvoyer(),
                    '!lien' => Menu::getLienAOAEnvoyer()
                );
            }

            $optionMenu['item']['A']['menu']['B']['bloc'][] = array(
                '!titre' => trad('Suivi des AO'),
                '!lien' => Menu::getLienSuiviAoPanier(true) . 'hideMenuOnClick(this);',
                '!module' => 'AO_SUIVI_PANIER'

            );

            $menu = array(
                '!type_menu' => 'MEN_AO',
                '!titre' => trad('Appels d\'offres'),
                '!id' => Menu::id_menu_ao,
                'item' => &$optionMenu['item']
            );
            return $menu;
        }
    }

    public static function AoConsultation()
    {

        // debu AO
        $notification = array();
        $optionMenu['item']['A']['menu']['A']['bloc'][5] = array(
            '!titre' => trad('AO'),
            '!icon' => 'img_ligne_libre_mini_16x16',
            '!class' => 'mg-ao',
            '!lien' => Menu::getLienSuiviAoPanier(true),
            '!total' => 0

        );
        if (DroitAcces::GetModuleAO() || DroitAcces::GetALL()) { // Si l'utilisateur est autorisé à acceder aux AO
            // Paramétrage affichage du module AO
            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!lien' => 'CallUrl("liste_AO.php","action=listeAO");window.scrollTo(0,0);hideMenuOnClick(this);',
                '!titre' => trad('AO non clos'),
                '!module' => 'AO_LISTE'

            );
        }

        if (DroitAcces::GetAOCreatModif())
            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => trad('Créer un AO'),
                '!lien' => 'CallUrl("AO_fiche.php?action=crreeNouvelAO");hideMenuOnClick(this);'
            );

        if (DroitAcces::GetAOConsult() || DroitAcces::GetAOCreatModif()) {

            $conteur =  Menu::getNbAOAEnvoyer();
            $lien =  Menu::getLienAOAEnvoyer();
            $titre = Trad('Consultations à envoyer');
            if ($conteur != '' && $conteur != 0) {
                $notification[] = [
                    '!total' => $conteur,
                    '!lien' => $lien,
                    '!titre' => $titre
                ];

                $notification['!total'] = ($notification['!total'] ?? 0) + $conteur;


                $optionMenu['item']['A']['menu']['A']['bloc'][5]['!total'] = ($optionMenu['item']['A']['menu']['A']['bloc'][5]['!total'] ?? 0) + $conteur;
            }


            $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
                '!titre' => $titre,
                '!total' => Menu::getNbAOAEnvoyer(),
                '!lien' => $lien
            );
        }

        $optionMenu['item']['A']['menu']['A']['bloc'][5]['sub'][] = array(
            '!titre' => trad('Suivi des AO'),
            '!lien' => Menu::getLienSuiviAoPanier(true) . 'hideMenuOnClick(this);',
            '!module' => 'AO_SUIVI_PANIER'

        );

        $optionMenu['notification'] = $notification;
        return $optionMenu;
    }

    public static function &BuildXmlBurger($session, $moduleProc, $moduleSrm, $action)
    {
        $array = array();
        $array['ide']['fiche']['!SESSION'] = $session;
        $array['ide']['fiche']['!MODULEPROC'] = $moduleProc;
        $array['ide']['fiche']['!MODULESRM'] = $moduleSrm;
        $array['ide']['fiche']['!ACTION'] = $action;

        $array['ide']['fiche']['!redirection_proc'] = 'TraiteAsync(\'TDB_Operationnel.php?action=RedirectionOxaProc\',document.form_redirect.elements[0],\'\',\'' . cnv_to_javascript(trad('Enregistrement des information...')) . '\');return false;';
        $array['ide']['fiche']['!redirection_srm'] = 'TraiteAsync(\'TDB_Operationnel.php?action=RedirectionOxaSrm\',document.form_redirect.elements[0],\'\',\'' . cnv_to_javascript(trad('Enregistrement des information...')) . '\');return false;';

        $array['fenetre']['!titre'] = '';

        return $array;
    }
}
