2010-10-02 23:31:14 +02:00
< ? php
2014-03-17 14:30:55 +01:00
/* Copyright ( C ) 2010 - 2014 Laurent Destailleur < eldy @ users . sourceforge . net >
2018-10-27 14:43:12 +02:00
* Copyright ( C ) 2010 Regis Houssin < regis . houssin @ inodbox . com >
2015-04-07 20:43:27 +02:00
* Copyright ( C ) 2012 - 2015 Juanjo Menent < jmenent @ 2 byte . es >
2013-06-04 18:27:28 +02:00
* Copyright ( C ) 2013 Cédric Salvador < csalvador @ gpcsolutions . fr >
2015-03-23 13:40:55 +01:00
* Copyright ( C ) 2015 Marcos García < marcosgdf @ gmail . com >
2018-11-20 21:40:37 +01:00
* Copyright ( C ) 2018 Ferran Marcet < fmarcet @ 2 byte . es >
2019-03-06 18:49:03 +01:00
* Copyright ( C ) 2018 - 2019 Frédéric France < frederic . france @ netlogic . fr >
2010-10-02 23:31:14 +02:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2010-10-02 23:31:14 +02:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2019-09-23 21:55:30 +02:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
* or see https :// www . gnu . org /
2010-10-02 23:31:14 +02:00
*/
/**
2011-10-24 14:11:49 +02:00
* \file htdocs / core / menus / standard / eldy . lib . php
2010-10-02 23:31:14 +02:00
* \brief Library for file eldy menus
*/
2013-03-30 14:27:13 +01:00
require_once DOL_DOCUMENT_ROOT . '/core/class/menubase.class.php' ;
2010-10-02 23:31:14 +02:00
/**
* Core function to output top menu eldy
*
2012-02-17 10:04:10 +01:00
* @ param DoliDB $db Database handler
2014-04-23 12:22:01 +02:00
* @ param string $atarget Target ( Example : '' or '_top' )
2012-12-27 17:06:55 +01:00
* @ param int $type_user 0 = Menu for backoffice , 1 = Menu for front office
2020-06-07 19:25:25 +02:00
* @ param array $tabMenu If array with menu entries already loaded , we put this array here ( in most cases , it ' s empty ) . For eldy menu , it contains menu entries loaded from database .
2016-05-17 19:49:37 +02:00
* @ param Menu $menu Object Menu to return back list of menu entries
2016-05-09 14:59:59 +02:00
* @ param int $noout 1 = Disable output ( Initialise & $menu only ) .
2016-06-12 20:23:25 +02:00
* @ param string $mode 'top' , 'topnb' , 'left' , 'jmobile'
2014-04-25 20:11:38 +02:00
* @ return int 0
2010-10-02 23:31:14 +02:00
*/
2019-01-27 15:20:16 +01:00
function print_eldy_menu ( $db , $atarget , $type_user , & $tabMenu , & $menu , $noout = 0 , $mode = '' )
2010-10-02 23:31:14 +02:00
{
2019-11-13 19:35:02 +01:00
global $user , $conf , $langs , $mysoc ;
2019-09-23 19:21:06 +02:00
global $dolibarr_main_db_name ;
2010-10-02 23:31:14 +02:00
2019-11-13 19:35:02 +01:00
$mainmenu = ( empty ( $_SESSION [ " mainmenu " ]) ? '' : $_SESSION [ " mainmenu " ]);
$leftmenu = ( empty ( $_SESSION [ " leftmenu " ]) ? '' : $_SESSION [ " leftmenu " ]);
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
$id = 'mainmenu' ;
$listofmodulesforexternal = explode ( ',' , $conf -> global -> MAIN_MODULES_FOR_EXTERNAL );
2010-10-02 23:31:14 +02:00
2019-12-19 13:41:43 +01:00
$substitarray = getCommonSubstitutionArray ( $langs , 0 , null , null );
2013-03-22 16:40:35 +01:00
if ( empty ( $noout )) print_start_menu_array ();
2010-10-02 23:31:14 +02:00
2020-09-07 10:18:17 +02:00
$usemenuhider = 1 ;
2017-06-02 19:28:22 +02:00
2019-09-15 15:15:46 +02:00
// Show/Hide vertical menu. The hamburger icon for .menuhider action.
2016-11-07 10:14:04 +01:00
if ( $mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty ( $conf -> global -> MAIN_OPTIMIZEFORTEXTBROWSER ))
2016-05-09 14:59:59 +02:00
{
2020-09-07 10:18:17 +02:00
$showmode = 1 ;
$classname = 'class="tmenu menuhider"' ;
$idsel = 'menu' ;
2016-08-29 10:32:00 +02:00
2020-09-07 10:18:17 +02:00
$menu -> add ( '#' , ( ! empty ( $conf -> global -> THEME_TOPMENU_DISABLE_IMAGE ) ? '<span class="fa fa-bars"></span>' : '' ), 0 , $showmode , $atarget , " xxx " , '' , 0 , $id , $idsel , $classname );
2016-05-09 14:59:59 +02:00
}
2016-08-29 10:32:00 +02:00
2020-09-07 10:18:17 +02:00
$menu_arr = array ();
2019-09-15 15:15:46 +02:00
2010-10-02 23:31:14 +02:00
// Home
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Home' ,
'link' => '/index.php?mainmenu=home&leftmenu=home' ,
2019-11-13 19:35:02 +01:00
'title' => ( ! empty ( $conf -> global -> THEME_TOPMENU_DISABLE_IMAGE ) ? '<span class="fa fa-home"></span>' : " Home " ),
2019-01-29 19:44:59 +01:00
'level' => 0 ,
'enabled' => $showmode = 1 ,
'target' => $atarget ,
'mainmenu' => " home " ,
'leftmenu' => '' ,
'position' => 10 ,
'id' => $id ,
'idsel' => 'home' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " home " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " home " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array (),
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2018-09-16 12:15:33 +02:00
// Members
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> adherent -> enabled )),
'perms' => ( ! empty ( $user -> rights -> adherent -> lire )),
'module' => 'adherent'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Members' ,
'link' => '/adherents/index.php?mainmenu=members&leftmenu=' ,
'title' => " MenuMembers " ,
'level' => 0 ,
2019-04-23 10:38:20 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " members " ,
'leftmenu' => '' ,
'position' => 18 ,
'id' => $id ,
'idsel' => 'members' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " members " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 21:36:52 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " members " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array (),
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
// Third parties
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => (( ! empty ( $conf -> societe -> enabled ) &&
( empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS ) || empty ( $conf -> global -> SOCIETE_DISABLE_CUSTOMERS ))
)
|| ( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_order -> enabled ) || ! empty ( $conf -> supplier_invoice -> enabled ))
),
'perms' => ( ! empty ( $user -> rights -> societe -> lire ) || ! empty ( $user -> rights -> fournisseur -> lire )),
'module' => 'societe|fournisseur'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Companies' ,
'link' => '/societe/index.php?mainmenu=companies&leftmenu=' ,
'title' => " ThirdParties " ,
'level' => 0 ,
2019-04-23 10:38:20 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " companies " ,
'leftmenu' => '' ,
'position' => 20 ,
'id' => $id ,
'idsel' => 'companies' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " companies " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " companies " ) ? 0 : 1 ),
'loadLangs' => array ( " companies " , " suppliers " ),
2019-01-29 19:44:59 +01:00
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
// Products-Services
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2019-11-13 19:35:02 +01:00
'enabled' => ( ! empty ( $conf -> product -> enabled ) || ! empty ( $conf -> service -> enabled ) || ! empty ( $conf -> expedition -> enabled )),
'perms' => ( ! empty ( $user -> rights -> produit -> lire ) || ! empty ( $user -> rights -> service -> lire ) || ! empty ( $user -> rights -> expedition -> lire )),
2020-09-07 10:18:17 +02:00
'module' => 'product|service'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Products' ,
'link' => '/product/index.php?mainmenu=products&leftmenu=' ,
2019-11-13 19:35:02 +01:00
'title' => ( ! empty ( $conf -> product -> enabled ) && ! empty ( $conf -> service -> enabled ))
? ( array ( " TMenuProducts " , " | " , " TMenuServices " ))
: ( ! empty ( $conf -> product -> enabled ) ? " TMenuProducts " : " TMenuServices " ),
2019-01-29 19:44:59 +01:00
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " products " ,
'leftmenu' => '' ,
'position' => 30 ,
'id' => $id ,
'idsel' => 'products' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " products " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " products " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " products " ),
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2019-02-26 19:27:04 +01:00
// MRP
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> bom -> enabled ) || ! empty ( $conf -> mrp -> enabled )),
'perms' => ( ! empty ( $user -> rights -> bom -> read ) || ! empty ( $user -> rights -> mrp -> read )),
'module' => 'bom|mrp'
2019-04-23 10:38:20 +02:00
);
2019-03-06 14:18:58 +01:00
$menu_arr [] = array (
2020-09-07 10:18:17 +02:00
'name' => 'TMenuMRP' ,
'link' => '/mrp/index.php?mainmenu=mrp&leftmenu=' ,
'title' => " TMenuMRP " ,
'level' => 0 ,
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
'target' => $atarget ,
'mainmenu' => " mrp " ,
'leftmenu' => '' ,
'position' => 30 ,
'id' => $id ,
'idsel' => 'mrp' ,
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " mrp " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
'prefix' => '' ,
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " mrp " ) ? 0 : 1 ),
'loadLangs' => array ( " mrp " ),
'submenus' => array (),
2019-02-26 19:27:04 +01:00
);
2018-12-15 15:35:59 +01:00
// Projects
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> projet -> enabled ) ? 1 : 0 ),
'perms' => ( ! empty ( $user -> rights -> projet -> lire ) ? 1 : 0 ),
'module' => 'projet'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Projet' ,
'link' => '/projet/index.php?mainmenu=project&leftmenu=' ,
2019-11-13 19:35:02 +01:00
'title' => ( empty ( $conf -> global -> PROJECT_USE_OPPORTUNITIES ) || $conf -> global -> PROJECT_USE_OPPORTUNITIES == 2 )
? (( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 2 ) ? " Leads " : " Projects " )
2019-09-30 17:46:53 +02:00
: " Projects " ,
2019-01-29 19:44:59 +01:00
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " project " ,
'leftmenu' => '' ,
'position' => 35 ,
'id' => $id ,
'idsel' => 'project' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " project " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " project " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " projects " ),
'submenus' => array (),
);
2018-12-15 15:35:59 +01:00
2010-10-02 23:31:14 +02:00
// Commercial
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> propal -> enabled ) ||
! empty ( $conf -> commande -> enabled ) ||
! empty ( $conf -> fournisseur -> enabled ) ||
! empty ( $conf -> supplier_proposal -> enabled ) ||
! empty ( $conf -> supplier_order -> enabled ) ||
! empty ( $conf -> contrat -> enabled ) ||
! empty ( $conf -> ficheinter -> enabled )
) ? 1 : 0 ,
2019-11-13 19:35:02 +01:00
'perms' => ( ! empty ( $user -> rights -> propal -> lire ) ||
2020-07-20 09:01:21 +02:00
! empty ( $user -> rights -> commande -> lire ) ||
! empty ( $user -> rights -> fournisseur -> lire ) ||
! empty ( $user -> rights -> supplier_proposal -> lire ) ||
! empty ( $user -> rights -> supplier_order -> lire ) ||
! empty ( $user -> rights -> contrat -> lire ) ||
! empty ( $user -> rights -> ficheinter -> lire ) ||
! empty ( $user -> rights -> supplier_order -> lire ) ||
! empty ( $user -> rights -> fournisseur -> commande -> lire )
2019-11-07 13:50:25 +01:00
),
2020-09-07 10:18:17 +02:00
'module' => 'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter'
2019-04-23 10:38:20 +02:00
);
2020-02-02 19:50:53 +01:00
2020-04-10 10:59:32 +02:00
$onlysupplierorder = ! empty ( $user -> rights -> fournisseur -> commande -> lire ) &&
2020-02-02 19:50:53 +01:00
empty ( $user -> rights -> propal -> lire ) &&
empty ( $user -> rights -> commande -> lire ) &&
empty ( $user -> rights -> supplier_order -> lire ) &&
empty ( $user -> rights -> supplier_proposal -> lire ) &&
empty ( $user -> rights -> contrat -> lire ) &&
empty ( $user -> rights -> ficheinter -> lire );
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Commercial' ,
2020-02-02 19:50:53 +01:00
'link' => ( $onlysupplierorder ? '/fourn/commande/index.php?mainmenu=commercial&leftmenu=' : '/comm/index.php?mainmenu=commercial&leftmenu=' ),
2019-01-29 19:44:59 +01:00
'title' => " Commercial " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " commercial " ,
'leftmenu' => '' ,
'position' => 40 ,
'id' => $id ,
'idsel' => 'commercial' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " commercial " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " commercial " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " commercial " ),
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2017-08-29 12:43:47 +02:00
// Billing - Financial
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> facture -> enabled ) ||
! empty ( $conf -> don -> enabled ) ||
! empty ( $conf -> tax -> enabled ) ||
! empty ( $conf -> salaries -> enabled ) ||
! empty ( $conf -> supplier_invoice -> enabled ) ||
! empty ( $conf -> loan -> enabled ) ||
! empty ( $conf -> margins -> enabled )
) ? 1 : 0 ,
'perms' => ( ! empty ( $user -> rights -> facture -> lire ) || ! empty ( $user -> rights -> don -> contact -> lire )
|| ! empty ( $user -> rights -> tax -> charges -> lire ) || ! empty ( $user -> rights -> salaries -> read )
|| ! empty ( $user -> rights -> fournisseur -> facture -> lire ) || ! empty ( $user -> rights -> loan -> read ) || ! empty ( $user -> rights -> margins -> liretous )),
'module' => 'facture|supplier_invoice|don|tax|salaries|loan'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Compta' ,
'link' => '/compta/index.php?mainmenu=billing&leftmenu=' ,
'title' => " MenuFinancial " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " billing " ,
'leftmenu' => '' ,
'position' => 50 ,
'id' => $id ,
'idsel' => 'billing' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " billing " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " billing " ) ? 0 : 1 ),
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " compta " ),
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2013-02-24 21:16:36 +01:00
// Bank
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> banque -> enabled ) || ! empty ( $conf -> prelevement -> enabled )),
2020-05-17 15:06:09 +02:00
'perms' => ( ! empty ( $user -> rights -> banque -> lire ) || ! empty ( $user -> rights -> prelevement -> lire ) || ! empty ( $user -> rights -> paymentbybanktransfer -> read )),
2020-09-07 10:18:17 +02:00
'module' => 'banque|prelevement|paymentbybanktransfer'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Bank' ,
'link' => '/compta/bank/list.php?mainmenu=bank&leftmenu=' ,
'title' => " MenuBankCash " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " bank " ,
'leftmenu' => '' ,
'position' => 52 ,
'id' => $id ,
'idsel' => 'bank' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " bank " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " bank " ) ? 0 : 1 ),
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'loadLangs' => array ( " compta " , " banks " ),
2019-01-29 19:44:59 +01:00
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2018-01-22 04:13:29 +01:00
// Accounting
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> comptabilite -> enabled ) || ! empty ( $conf -> accounting -> enabled ) || ! empty ( $conf -> asset -> enabled )),
'perms' => ( ! empty ( $user -> rights -> compta -> resultat -> lire ) || ! empty ( $user -> rights -> accounting -> mouvements -> lire ) || ! empty ( $user -> rights -> asset -> read )),
'module' => 'comptabilite|accounting|asset'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Accounting' ,
'link' => '/accountancy/index.php?mainmenu=accountancy&leftmenu=' ,
'title' => " MenuAccountancy " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " accountancy " ,
'leftmenu' => '' ,
'position' => 54 ,
'id' => $id ,
'idsel' => 'accountancy' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " accountancy " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " accountancy " ) ? 0 : 1 ),
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'loadLangs' => array ( " compta " , " accountancy " , " assets " ),
2019-01-29 19:44:59 +01:00
'submenus' => array (),
);
2010-10-02 23:31:14 +02:00
2013-05-04 01:22:09 +02:00
// HRM
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-07-26 19:57:42 +02:00
'enabled' => ( ! empty ( $conf -> hrm -> enabled ) || ! empty ( $conf -> holiday -> enabled ) || ! empty ( $conf -> deplacement -> enabled ) || ! empty ( $conf -> expensereport -> enabled ) || ! empty ( $conf -> recruitment -> enabled )),
2020-07-26 20:02:29 +02:00
'perms' => ( ! empty ( $user -> rights -> hrm -> employee -> read ) || ! empty ( $user -> rights -> holiday -> write ) || ! empty ( $user -> rights -> deplacement -> lire ) || ! empty ( $user -> rights -> expensereport -> lire ) || ! empty ( $user -> rights -> recruitment -> recruitmentjobposition -> read )),
2020-09-07 10:18:17 +02:00
'module' => 'hrm|holiday|deplacement|expensereport|recruitment'
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'HRM' ,
'link' => '/hrm/index.php?mainmenu=hrm&leftmenu=' ,
'title' => " HRM " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " hrm " ,
'leftmenu' => '' ,
'position' => 80 ,
'id' => $id ,
'idsel' => 'hrm' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " hrm " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " hrm " ) ? 0 : 1 ),
2019-03-06 14:18:58 +01:00
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " holiday " ),
'submenus' => array (),
);
2013-07-07 03:26:51 +02:00
2010-10-02 23:31:14 +02:00
// Tools
2019-04-23 10:38:20 +02:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => 1 ,
'perms' => 1 ,
'module' => ''
2019-04-23 10:38:20 +02:00
);
2019-01-29 19:44:59 +01:00
$menu_arr [] = array (
'name' => 'Tools' ,
'link' => '/core/tools.php?mainmenu=tools&leftmenu=' ,
'title' => " Tools " ,
'level' => 0 ,
2020-09-07 10:18:17 +02:00
'enabled' => $showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal ),
2019-01-29 19:44:59 +01:00
'target' => $atarget ,
'mainmenu' => " tools " ,
'leftmenu' => '' ,
'position' => 90 ,
'id' => $id ,
'idsel' => 'tools' ,
2019-11-13 19:35:02 +01:00
'classname' => $classname = ( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " tools " ) ? 'class="tmenusel"' : 'class="tmenu"' ,
2019-01-29 19:44:59 +01:00
'prefix' => '' ,
2019-03-06 14:18:58 +01:00
2019-11-13 19:35:02 +01:00
'session' => (( $_SESSION [ " mainmenu " ] && $_SESSION [ " mainmenu " ] == " tools " ) ? 0 : 1 ),
2019-03-06 14:18:58 +01:00
2019-01-29 19:44:59 +01:00
'loadLangs' => array ( " other " ),
'submenus' => array (),
);
2019-03-06 14:18:58 +01:00
2019-01-29 19:44:59 +01:00
// Add menus
2019-11-13 19:35:02 +01:00
foreach ( $menu_arr as $key => $smenu )
2013-02-24 21:16:36 +01:00
{
2019-01-29 19:44:59 +01:00
$smenu = ( object ) $smenu ;
2019-03-06 14:18:58 +01:00
2019-03-11 19:53:27 +01:00
if ( $smenu -> enabled )
2019-01-29 19:44:59 +01:00
{
2019-03-11 19:53:27 +01:00
if ( $smenu -> session )
2019-01-29 19:44:59 +01:00
{
2019-11-13 19:35:02 +01:00
$_SESSION [ 'idmenu' ] = '' ;
2019-01-29 19:44:59 +01:00
}
2019-03-06 14:18:58 +01:00
2019-01-29 19:44:59 +01:00
// Load Langue
2019-11-13 19:35:02 +01:00
if ( ! empty ( $smenu -> loadLangs ))
2019-01-29 19:44:59 +01:00
{
$langs -> loadLangs ( $smenu -> loadLangs );
}
2019-03-06 14:18:58 +01:00
2019-01-29 19:44:59 +01:00
// Trans title
$mtitle = '' ;
2019-11-13 19:35:02 +01:00
if ( is_array ( $smenu -> title ))
2019-01-29 19:44:59 +01:00
{
2019-11-13 19:35:02 +01:00
foreach ( $smenu -> title as $item )
2019-01-29 19:44:59 +01:00
{
2019-11-13 19:35:02 +01:00
$mtitle .= $langs -> trans ( $item );
2019-01-29 19:44:59 +01:00
}
2020-05-21 15:05:19 +02:00
} else {
2019-11-13 19:35:02 +01:00
$mtitle = $langs -> trans ( $smenu -> title );
2019-01-29 19:44:59 +01:00
}
// Add item
2019-01-29 22:08:18 +01:00
$menu -> add ( $smenu -> link , $mtitle , $smenu -> level , $smenu -> enabled , $smenu -> target , $smenu -> mainmenu , $smenu -> leftmenu , $smenu -> position , $smenu -> id , $smenu -> idsel , $smenu -> classname , $smenu -> prefix );
2019-01-29 19:44:59 +01:00
}
2010-10-02 23:31:14 +02:00
}
// Show personalized menus
2019-01-27 11:55:16 +01:00
$menuArbo = new Menubase ( $db , 'eldy' );
2019-11-13 19:35:02 +01:00
$newTabMenu = $menuArbo -> menuTopCharger ( '' , '' , $type_user , 'eldy' , $tabMenu ); // Return tabMenu with only top entries
2011-10-30 17:26:55 +01:00
2011-09-20 18:12:52 +02:00
$num = count ( $newTabMenu );
2019-11-13 19:35:02 +01:00
for ( $i = 0 ; $i < $num ; $i ++ )
2010-10-02 23:31:14 +02:00
{
2020-06-27 15:27:09 +02:00
//var_dump($type_user.' '.$newTabMenu[$i]['url'].' '.$showmode.' '.$newTabMenu[$i]['perms']);
2019-11-13 19:35:02 +01:00
$idsel = ( empty ( $newTabMenu [ $i ][ 'mainmenu' ]) ? 'none' : $newTabMenu [ $i ][ 'mainmenu' ]);
2013-01-02 21:35:28 +01:00
2019-11-13 19:35:02 +01:00
$showmode = isVisibleToUserType ( $type_user , $newTabMenu [ $i ], $listofmodulesforexternal );
2013-01-10 08:27:12 +01:00
if ( $showmode == 1 )
{
2017-12-09 15:35:01 +01:00
$newTabMenu [ $i ][ 'url' ] = make_substitutions ( $newTabMenu [ $i ][ 'url' ], $substitarray );
2020-09-07 10:18:17 +02:00
// url = url from host, shorturl = relative path into dolibarr sources
2013-03-29 16:16:26 +01:00
$url = $shorturl = $newTabMenu [ $i ][ 'url' ];
2019-11-13 19:35:02 +01:00
if ( ! preg_match ( " /^(http: \ / \ /|https: \ / \ /)/i " , $newTabMenu [ $i ][ 'url' ])) // Do not change url content for external links
2010-10-02 23:31:14 +02:00
{
2019-11-13 19:35:02 +01:00
$tmp = explode ( '?' , $newTabMenu [ $i ][ 'url' ], 2 );
2013-07-07 13:17:48 +02:00
$url = $shorturl = $tmp [ 0 ];
2019-11-13 19:35:02 +01:00
$param = ( isset ( $tmp [ 1 ]) ? $tmp [ 1 ] : '' );
2013-07-07 03:26:51 +02:00
2019-11-13 19:35:02 +01:00
if ( ! preg_match ( '/mainmenu/i' , $param ) || ! preg_match ( '/leftmenu/i' , $param )) $param .= ( $param ? '&' : '' ) . 'mainmenu=' . $newTabMenu [ $i ][ 'mainmenu' ] . '&leftmenu=' ;
2013-01-02 21:35:28 +01:00
//$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad
2019-11-13 19:35:02 +01:00
$url = dol_buildpath ( $url , 1 ) . ( $param ? '?' . $param : '' );
2017-06-27 04:25:41 +02:00
//$shorturl = $shorturl.($param?'?'.$param:'');
2020-09-07 10:18:17 +02:00
$shorturl = $url ;
2019-01-27 11:55:16 +01:00
if ( DOL_URL_ROOT ) $shorturl = preg_replace ( '/^' . preg_quote ( DOL_URL_ROOT , '/' ) . '/' , '' , $shorturl );
2010-10-02 23:31:14 +02:00
}
2013-03-24 03:51:49 +01:00
2013-01-02 21:35:28 +01:00
// Define the class (top menu selected or not)
2019-11-13 19:35:02 +01:00
if ( ! empty ( $_SESSION [ 'idmenu' ]) && $newTabMenu [ $i ][ 'rowid' ] == $_SESSION [ 'idmenu' ]) $classname = 'class="tmenusel"' ;
elseif ( ! empty ( $_SESSION [ " mainmenu " ]) && $newTabMenu [ $i ][ 'mainmenu' ] == $_SESSION [ " mainmenu " ]) $classname = 'class="tmenusel"' ;
else $classname = 'class="tmenu"' ;
2020-05-21 15:05:19 +02:00
} elseif ( $showmode == 2 ) $classname = 'class="tmenu"' ;
2013-02-27 21:40:43 +01:00
2019-11-13 19:35:02 +01:00
$menu -> add ( $shorturl , $newTabMenu [ $i ][ 'titre' ], 0 , $showmode , ( $newTabMenu [ $i ][ 'target' ] ? $newTabMenu [ $i ][ 'target' ] : $atarget ), ( $newTabMenu [ $i ][ 'mainmenu' ] ? $newTabMenu [ $i ][ 'mainmenu' ] : $newTabMenu [ $i ][ 'rowid' ]), ( $newTabMenu [ $i ][ 'leftmenu' ] ? $newTabMenu [ $i ][ 'leftmenu' ] : '' ), $newTabMenu [ $i ][ 'position' ], $id , $idsel , $classname );
2017-06-27 04:25:41 +02:00
}
// Sort on position
$menu -> liste = dol_sort_array ( $menu -> liste , 'position' );
2020-09-07 10:18:17 +02:00
// Output menu entries
2019-09-15 15:15:46 +02:00
// Show logo company
2019-11-13 19:35:02 +01:00
if ( empty ( $conf -> global -> MAIN_MENU_INVERT ) && empty ( $noout ) && ! empty ( $conf -> global -> MAIN_SHOW_LOGO ) && empty ( $conf -> global -> MAIN_OPTIMIZEFORTEXTBROWSER ))
2019-09-15 15:15:46 +02:00
{
2019-10-11 12:28:13 +02:00
//$mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI);
2019-11-13 19:35:02 +01:00
$mysoc -> logo_squarred_mini = ( empty ( $conf -> global -> MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI ) ? '' : $conf -> global -> MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI );
2019-10-11 10:02:59 +02:00
$logoContainerAdditionalClass = 'backgroundforcompanylogo' ;
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> global -> MAIN_INFO_SOCIETE_LOGO_NO_BACKGROUND )) {
2019-10-11 10:02:59 +02:00
$logoContainerAdditionalClass = '' ;
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $mysoc -> logo_squarred_mini ) && is_readable ( $conf -> mycompany -> dir_output . '/logos/thumbs/' . $mysoc -> logo_squarred_mini ))
2019-09-16 15:26:13 +02:00
{
2019-11-13 19:35:02 +01:00
$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&modulepart=mycompany&file=' . urlencode ( 'logos/thumbs/' . $mysoc -> logo_squarred_mini );
2019-09-16 15:26:13 +02:00
}
2019-10-11 12:28:13 +02:00
/* elseif ( ! empty ( $mysoc -> logo_mini ) && is_readable ( $conf -> mycompany -> dir_output . '/logos/thumbs/' . $mysoc -> logo_mini ))
2019-09-15 15:15:46 +02:00
{
$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&modulepart=mycompany&file=' . urlencode ( 'logos/thumbs/' . $mysoc -> logo_mini );
2019-10-11 12:28:13 +02:00
} */
2020-05-21 01:41:27 +02:00
else {
2020-05-25 13:36:56 +02:00
$urllogo = DOL_URL_ROOT . '/theme/dolibarr_512x512_white.png' ;
2019-10-15 11:41:22 +02:00
$logoContainerAdditionalClass = '' ;
2019-09-15 15:15:46 +02:00
}
2019-11-13 19:35:02 +01:00
$title = $langs -> trans ( " GoIntoSetupToChangeLogo " );
2019-09-15 15:15:46 +02:00
print " \n " . '<!-- Show logo on menu -->' . " \n " ;
2019-11-17 20:25:39 +01:00
print_start_menu_entry ( 'companylogo' , 'class="tmenu tmenucompanylogo nohover"' , 1 );
2019-09-15 15:15:46 +02:00
2019-10-11 10:02:59 +02:00
2019-10-11 10:10:12 +02:00
print '<div class="center ' . $logoContainerAdditionalClass . ' menulogocontainer"><img class="mycompany" title="' . dol_escape_htmltag ( $title ) . '" alt="" src="' . $urllogo . '" style="max-width: 100px"></div>' . " \n " ;
2019-09-15 15:15:46 +02:00
print_end_menu_entry ( 4 );
}
2020-09-07 10:18:17 +02:00
if ( empty ( $noout )) {
foreach ( $menu -> liste as $menuval ) {
print_start_menu_entry ( $menuval [ 'idsel' ], $menuval [ 'classname' ], $menuval [ 'enabled' ]);
print_text_menu_entry ( $menuval [ 'titre' ], $menuval [ 'enabled' ], (( $menuval [ 'url' ] != '#' && ! preg_match ( '/^(http:\/\/|https:\/\/)/i' , $menuval [ 'url' ])) ? DOL_URL_ROOT : '' ) . $menuval [ 'url' ], $menuval [ 'id' ], $menuval [ 'idsel' ], $menuval [ 'classname' ], ( $menuval [ 'target' ] ? $menuval [ 'target' ] : $atarget ));
print_end_menu_entry ( $menuval [ 'enabled' ]);
}
}
2010-10-02 23:31:14 +02:00
2019-11-13 19:35:02 +01:00
$showmode = 1 ;
2020-09-07 10:18:17 +02:00
if ( empty ( $noout )) {
print_start_menu_entry ( '' , 'class="tmenuend"' , $showmode );
print_end_menu_entry ( $showmode );
print_end_menu_array ();
}
2014-04-25 20:11:38 +02:00
return 0 ;
2010-10-02 23:31:14 +02:00
}
2012-05-01 23:40:23 +02:00
/**
* Output start menu array
*
* @ return void
*/
2010-10-02 23:31:14 +02:00
function print_start_menu_array ()
{
2020-09-07 10:18:17 +02:00
global $conf ;
2016-08-29 10:32:00 +02:00
2012-05-01 23:40:23 +02:00
print '<div class="tmenudiv">' ;
2019-11-13 19:35:02 +01:00
print '<ul role="navigation" class="tmenu"' . ( empty ( $conf -> global -> MAIN_OPTIMIZEFORTEXTBROWSER ) ? '' : ' title="Top menu"' ) . '>' ;
2010-10-02 23:31:14 +02:00
}
2012-03-19 17:18:11 +01:00
/**
* Output start menu entry
*
* @ param string $idsel Text
2012-05-09 00:28:02 +02:00
* @ param string $classname String to add a css class
2013-03-24 03:51:49 +01:00
* @ param int $showmode 0 = hide , 1 = allowed or 2 = not allowed
2012-03-19 17:18:11 +01:00
* @ return void
*/
2019-01-27 15:20:16 +01:00
function print_start_menu_entry ( $idsel , $classname , $showmode )
2010-10-02 23:31:14 +02:00
{
2013-03-24 03:51:49 +01:00
if ( $showmode )
{
print '<li ' . $classname . ' id="mainmenutd_' . $idsel . '">' ;
2018-02-05 23:06:48 +01:00
//print '<div class="tmenuleft tmenusep"></div>';
print '<div class="tmenucenter">' ;
2013-03-24 03:51:49 +01:00
}
2010-10-02 23:31:14 +02:00
}
2012-03-19 17:18:11 +01:00
/**
* Output menu entry
*
* @ param string $text Text
2013-03-24 03:51:49 +01:00
* @ param int $showmode 0 = hide , 1 = allowed or 2 = not allowed
2013-02-27 21:40:43 +01:00
* @ param string $url Url
* @ param string $id Id
* @ param string $idsel Id sel
* @ param string $classname Class name
* @ param string $atarget Target
2012-03-19 17:18:11 +01:00
* @ return void
*/
2013-03-15 18:00:29 +01:00
function print_text_menu_entry ( $text , $showmode , $url , $id , $idsel , $classname , $atarget )
2010-10-02 23:31:14 +02:00
{
2013-02-27 21:40:43 +01:00
global $langs ;
2018-11-20 21:40:37 +01:00
if ( $showmode == 1 ) {
2019-11-13 19:35:02 +01:00
print '<a class="tmenuimage" tabindex="-1" href="' . $url . '"' . ( $atarget ? ' target="' . $atarget . '"' : '' ) . ' title="' . dol_escape_htmltag ( $text ) . '">' ;
2015-01-14 13:51:21 +01:00
print '<div class="' . $id . ' ' . $idsel . ' topmenuimage"><span class="' . $id . ' tmenuimage" id="mainmenuspan_' . $idsel . '"></span></div>' ;
2013-03-30 14:27:13 +01:00
print '</a>' ;
2019-11-13 19:35:02 +01:00
print '<a ' . $classname . ' id="mainmenua_' . $idsel . '" href="' . $url . '"' . ( $atarget ? ' target="' . $atarget . '"' : '' ) . ' title="' . dol_escape_htmltag ( $text ) . '">' ;
2013-02-27 21:40:43 +01:00
print '<span class="mainmenuaspan">' ;
print $text ;
print '</span>' ;
print '</a>' ;
2018-11-20 21:40:37 +01:00
} elseif ( $showmode == 2 ) {
2016-10-21 17:24:22 +02:00
print '<div class="' . $id . ' ' . $idsel . ' topmenuimage tmenudisabled"><span class="' . $id . '" id="mainmenuspan_' . $idsel . '"></span></div>' ;
2013-03-30 14:27:13 +01:00
print '<a class="tmenudisabled" id="mainmenua_' . $idsel . '" href="#" title="' . dol_escape_htmltag ( $langs -> trans ( " NotAllowed " )) . '">' ;
2013-03-05 15:42:26 +01:00
print '<span class="mainmenuaspan">' ;
print $text ;
print '</span>' ;
print '</a>' ;
2013-02-27 21:40:43 +01:00
}
2010-10-02 23:31:14 +02:00
}
2012-03-19 17:18:11 +01:00
/**
* Output end menu entry
*
2013-03-24 03:51:49 +01:00
* @ param int $showmode 0 = hide , 1 = allowed or 2 = not allowed
2012-03-19 17:18:11 +01:00
* @ return void
*/
2013-03-24 03:51:49 +01:00
function print_end_menu_entry ( $showmode )
2010-10-02 23:31:14 +02:00
{
2013-03-24 03:51:49 +01:00
if ( $showmode )
{
print '</div></li>' ;
}
2010-10-02 23:31:14 +02:00
print " \n " ;
}
2012-03-19 17:18:11 +01:00
/**
* Output menu array
*
* @ return void
*/
2010-10-02 23:31:14 +02:00
function print_end_menu_array ()
{
2013-02-24 21:16:36 +01:00
print '</ul>' ;
print '</div>' ;
2010-10-02 23:31:14 +02:00
print " \n " ;
}
/**
* Core function to output left menu eldy
2016-09-30 10:56:35 +02:00
* Fill & $menu ( example with $forcemainmenu = 'home' $forceleftmenu = 'all' , return left menu tree of Home )
2017-06-02 19:28:22 +02:00
*
2013-02-22 19:16:03 +01:00
* @ param DoliDB $db Database handler
2013-06-09 18:24:30 +02:00
* @ param array $menu_array_before Table of menu entries to show before entries of menu handler ( menu -> liste filled with menu -> add )
* @ param array $menu_array_after Table of menu entries to show after entries of menu handler ( menu -> liste filled with menu -> add )
2015-10-30 09:36:57 +01:00
* @ param array $tabMenu If array with menu entries already loaded , we put this array here ( in most cases , it ' s empty )
2014-09-27 16:00:11 +02:00
* @ param Menu $menu Object Menu to return back list of menu entries
2013-03-22 16:40:35 +01:00
* @ param int $noout Disable output ( Initialise & $menu only ) .
* @ param string $forcemainmenu 'x' = Force mainmenu to mainmenu = 'x'
2017-06-10 16:13:37 +02:00
* @ param string $forceleftmenu 'all' = Force leftmenu to '' ( = all ) . If value come being '' , we change it to value in session and 'none' if not defined in session .
2015-10-30 09:36:57 +01:00
* @ param array $moredata An array with more data to output
2019-10-11 14:24:47 +02:00
* @ return int Nb of menu entries
2010-10-02 23:31:14 +02:00
*/
2019-01-27 15:20:16 +01:00
function print_left_eldy_menu ( $db , $menu_array_before , $menu_array_after , & $tabMenu , & $menu , $noout = 0 , $forcemainmenu = '' , $forceleftmenu = '' , $moredata = null )
2010-10-02 23:31:14 +02:00
{
2019-04-23 10:38:20 +02:00
global $user , $conf , $langs , $dolibarr_main_db_name , $mysoc ;
2013-02-24 21:16:36 +01:00
2018-12-10 17:50:58 +01:00
//var_dump($tabMenu);
2013-03-05 15:42:26 +01:00
$newmenu = $menu ;
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
$mainmenu = ( $forcemainmenu ? $forcemainmenu : $_SESSION [ " mainmenu " ]);
$leftmenu = ( $forceleftmenu ? '' : ( empty ( $_SESSION [ " leftmenu " ]) ? 'none' : $_SESSION [ " leftmenu " ]));
2013-03-30 20:34:13 +01:00
2020-09-07 10:18:17 +02:00
$usemenuhider = 0 ;
2017-06-02 19:28:22 +02:00
2019-11-13 19:35:02 +01:00
if ( is_array ( $moredata ) && ! empty ( $moredata [ 'searchform' ])) // searchform can contains select2 code or link to show old search form or link to switch on search page
2015-10-30 09:36:57 +01:00
{
2020-09-07 10:18:17 +02:00
print " \n " ;
print " <!-- Begin SearchForm --> \n " ;
print '<div id="blockvmenusearch" class="blockvmenusearch">' . " \n " ;
print $moredata [ 'searchform' ];
print '</div>' . " \n " ;
print " <!-- End SearchForm --> \n " ;
2015-10-30 09:36:57 +01:00
}
2016-08-29 10:32:00 +02:00
2019-11-13 19:35:02 +01:00
if ( is_array ( $moredata ) && ! empty ( $moredata [ 'bookmarks' ]))
2017-04-04 11:56:19 +02:00
{
2020-09-07 10:18:17 +02:00
print " \n " ;
print " <!-- Begin Bookmarks --> \n " ;
print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . " \n " ;
print $moredata [ 'bookmarks' ];
print '</div>' . " \n " ;
print " <!-- End Bookmarks --> \n " ;
2017-04-04 11:56:19 +02:00
}
2017-06-02 19:28:22 +02:00
2019-12-19 13:41:43 +01:00
$substitarray = getCommonSubstitutionArray ( $langs , 0 , null , null );
2013-02-24 21:16:36 +01:00
/**
2013-03-29 16:16:26 +01:00
* We update newmenu with entries found into database
* --------------------------------------------------
2013-02-24 21:16:36 +01:00
*/
2018-12-10 17:50:58 +01:00
if ( $mainmenu ) // If this is empty, loading hard coded menu and loading personalised menu will fail
2013-02-24 21:16:36 +01:00
{
/*
* Menu HOME
*/
if ( $mainmenu == 'home' )
{
$langs -> load ( " users " );
2016-01-24 11:35:33 +01:00
// Home - dashboard
2017-12-07 16:01:52 +01:00
$newmenu -> add ( " /index.php?mainmenu=home&leftmenu=home " , $langs -> trans ( " MyDashboard " ), 0 , 1 , '' , $mainmenu , 'home' , 0 , '' , '' , '' , '<i class="fa fa-bar-chart fa-fw paddingright"></i>' );
2016-08-29 10:32:00 +02:00
2016-01-24 11:35:33 +01:00
// Setup
2017-12-07 16:01:52 +01:00
$newmenu -> add ( " /admin/index.php?mainmenu=home&leftmenu=setup " , $langs -> trans ( " Setup " ), 0 , $user -> admin , '' , $mainmenu , 'setup' , 0 , '' , '' , '' , '<i class="fa fa-wrench fa-fw paddingright"></i>' );
2018-06-19 13:10:13 +02:00
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " setup " )
2016-01-24 11:35:33 +01:00
{
2020-09-07 10:18:17 +02:00
// Load translation files required by the page
$langs -> loadLangs ( array ( " admin " , " help " ));
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
$warnpicto = '' ;
2016-01-24 11:35:33 +01:00
if ( empty ( $conf -> global -> MAIN_INFO_SOCIETE_NOM ) || empty ( $conf -> global -> MAIN_INFO_SOCIETE_COUNTRY ))
2013-02-24 21:16:36 +01:00
{
2016-01-24 11:35:33 +01:00
$langs -> load ( " errors " );
2019-11-13 19:35:02 +01:00
$warnpicto = ' ' . img_warning ( $langs -> trans ( " WarningMandatorySetupNotComplete " ));
2013-02-24 21:16:36 +01:00
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /admin/company.php?mainmenu=home " , $langs -> trans ( " MenuCompanySetup " ) . $warnpicto , 1 );
2019-11-13 19:35:02 +01:00
$warnpicto = '' ;
if ( count ( $conf -> modules ) <= ( empty ( $conf -> global -> MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING ) ? 1 : $conf -> global -> MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING )) // If only user module enabled
2013-02-24 21:16:36 +01:00
{
2016-01-24 11:35:33 +01:00
$langs -> load ( " errors " );
$warnpicto = ' ' . img_warning ( $langs -> trans ( " WarningMandatorySetupNotComplete " ));
2013-02-24 21:16:36 +01:00
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /admin/modules.php?mainmenu=home " , $langs -> trans ( " Modules " ) . $warnpicto , 1 );
$newmenu -> add ( " /admin/ihm.php?mainmenu=home " , $langs -> trans ( " GUISetup " ), 1 );
2019-10-11 14:42:55 +02:00
$newmenu -> add ( " /admin/menus.php?mainmenu=home " , $langs -> trans ( " Menus " ), 1 );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /admin/translation.php?mainmenu=home " , $langs -> trans ( " Translation " ), 1 );
$newmenu -> add ( " /admin/defaultvalues.php?mainmenu=home " , $langs -> trans ( " DefaultValues " ), 1 );
$newmenu -> add ( " /admin/boxes.php?mainmenu=home " , $langs -> trans ( " Boxes " ), 1 );
$newmenu -> add ( " /admin/delais.php?mainmenu=home " , $langs -> trans ( " MenuWarnings " ), 1 );
$newmenu -> add ( " /admin/security_other.php?mainmenu=home " , $langs -> trans ( " Security " ), 1 );
$newmenu -> add ( " /admin/limits.php?mainmenu=home " , $langs -> trans ( " MenuLimits " ), 1 );
$newmenu -> add ( " /admin/pdf.php?mainmenu=home " , $langs -> trans ( " PDF " ), 1 );
$newmenu -> add ( " /admin/mails.php?mainmenu=home " , $langs -> trans ( " Emails " ), 1 );
$newmenu -> add ( " /admin/sms.php?mainmenu=home " , $langs -> trans ( " SMS " ), 1 );
$newmenu -> add ( " /admin/dict.php?mainmenu=home " , $langs -> trans ( " Dictionary " ), 1 );
$newmenu -> add ( " /admin/const.php?mainmenu=home " , $langs -> trans ( " OtherSetup " ), 1 );
2016-01-24 11:35:33 +01:00
}
// System tools
2017-12-07 16:01:52 +01:00
$newmenu -> add ( " /admin/tools/index.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " AdminTools " ), 0 , $user -> admin , '' , $mainmenu , 'admintools' , 0 , '' , '' , '' , '<i class="fa fa-server fa-fw paddingright"></i>' );
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^admintools/' , $leftmenu ))
2016-01-24 11:35:33 +01:00
{
2020-09-07 10:18:17 +02:00
// Load translation files required by the page
$langs -> loadLangs ( array ( 'admin' , 'help' ));
2016-01-24 11:35:33 +01:00
$newmenu -> add ( '/admin/system/dolibarr.php?mainmenu=home&leftmenu=admintools_info' , $langs -> trans ( 'InfoDolibarr' ), 1 );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == 'admintools_info' ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( '/admin/system/modules.php?mainmenu=home&leftmenu=admintools_info' , $langs -> trans ( 'Modules' ), 2 );
$newmenu -> add ( '/admin/triggers.php?mainmenu=home&leftmenu=admintools_info' , $langs -> trans ( 'Triggers' ), 2 );
$newmenu -> add ( '/admin/system/filecheck.php?mainmenu=home&leftmenu=admintools_info' , $langs -> trans ( 'FileCheck' ), 2 );
}
2016-01-24 11:35:33 +01:00
$newmenu -> add ( '/admin/system/browser.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'InfoBrowser' ), 1 );
$newmenu -> add ( '/admin/system/os.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'InfoOS' ), 1 );
$newmenu -> add ( '/admin/system/web.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'InfoWebServer' ), 1 );
$newmenu -> add ( '/admin/system/phpinfo.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'InfoPHP' ), 1 );
//if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', $langs->trans('XDebug'),1);
$newmenu -> add ( '/admin/system/database.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'InfoDatabase' ), 1 );
//$newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", $langs->trans("InfoPerf"),1);
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /admin/tools/dolibarr_export.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " Backup " ), 1 );
$newmenu -> add ( " /admin/tools/dolibarr_import.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " Restore " ), 1 );
$newmenu -> add ( " /admin/tools/update.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " MenuUpgrade " ), 1 );
$newmenu -> add ( " /admin/tools/purge.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " Purge " ), 1 );
$newmenu -> add ( " /admin/tools/listevents.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " Audit " ), 1 );
$newmenu -> add ( " /admin/tools/listsessions.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " Sessions " ), 1 );
2017-02-22 02:19:50 +01:00
$newmenu -> add ( '/admin/system/about.php?mainmenu=home&leftmenu=admintools' , $langs -> trans ( 'ExternalResources' ), 1 );
2013-06-25 21:31:24 +02:00
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> product -> enabled ) || ! empty ( $conf -> service -> enabled ))
2013-02-24 21:16:36 +01:00
{
2016-02-16 12:46:39 +01:00
$langs -> load ( " products " );
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /product/admin/product_tools.php?mainmenu=home&leftmenu=admintools " , $langs -> trans ( " ProductVatMassChange " ), 1 , $user -> admin );
2016-02-16 12:46:39 +01:00
}
2016-01-24 11:35:33 +01:00
}
2013-02-24 21:16:36 +01:00
2017-12-07 16:01:52 +01:00
$newmenu -> add ( " /user/home.php?leftmenu=users " , $langs -> trans ( " MenuUsersAndGroups " ), 0 , $user -> rights -> user -> user -> lire , '' , $mainmenu , 'users' , 0 , '' , '' , '' , '<i class="fa fa-users fa-fw paddingright"></i>' );
2015-06-04 11:42:24 +02:00
if ( $user -> rights -> user -> user -> lire )
2013-02-24 21:16:36 +01:00
{
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " users " )
2015-06-04 11:42:24 +02:00
{
$newmenu -> add ( " " , $langs -> trans ( " Users " ), 1 , $user -> rights -> user -> user -> lire || $user -> admin );
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /user/card.php?leftmenu=users&action=create " , $langs -> trans ( " NewUser " ), 2 , ( $user -> rights -> user -> user -> creer || $user -> admin ) && ! ( ! empty ( $conf -> multicompany -> enabled ) && $conf -> entity > 1 && $conf -> global -> MULTICOMPANY_TRANSVERSE_MODE ), '' , 'home' );
2018-04-06 00:36:52 +02:00
$newmenu -> add ( " /user/list.php?leftmenu=users " , $langs -> trans ( " ListOfUsers " ), 2 , $user -> rights -> user -> user -> lire || $user -> admin );
2016-01-24 11:35:33 +01:00
$newmenu -> add ( " /user/hierarchy.php?leftmenu=users " , $langs -> trans ( " HierarchicView " ), 2 , $user -> rights -> user -> user -> lire || $user -> admin );
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-10-09 14:44:13 +02:00
{
$langs -> load ( " categories " );
$newmenu -> add ( " /categories/index.php?leftmenu=users&type=7 " , $langs -> trans ( " UsersCategoriesShort " ), 2 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
}
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " " , $langs -> trans ( " Groups " ), 1 , ( $user -> rights -> user -> user -> lire || $user -> admin ) && ! ( ! empty ( $conf -> multicompany -> enabled ) && $conf -> entity > 1 && $conf -> global -> MULTICOMPANY_TRANSVERSE_MODE ));
$newmenu -> add ( " /user/group/card.php?leftmenu=users&action=create " , $langs -> trans ( " NewGroup " ), 2 , (( $conf -> global -> MAIN_USE_ADVANCED_PERMS ? $user -> rights -> user -> group_advance -> write : $user -> rights -> user -> user -> creer ) || $user -> admin ) && ! ( ! empty ( $conf -> multicompany -> enabled ) && $conf -> entity > 1 && $conf -> global -> MULTICOMPANY_TRANSVERSE_MODE ));
$newmenu -> add ( " /user/group/list.php?leftmenu=users " , $langs -> trans ( " ListOfGroups " ), 2 , (( $conf -> global -> MAIN_USE_ADVANCED_PERMS ? $user -> rights -> user -> group_advance -> read : $user -> rights -> user -> user -> lire ) || $user -> admin ) && ! ( ! empty ( $conf -> multicompany -> enabled ) && $conf -> entity > 1 && $conf -> global -> MULTICOMPANY_TRANSVERSE_MODE ));
2015-06-04 11:42:24 +02:00
}
2013-02-24 21:16:36 +01:00
}
}
/*
2013-10-20 14:05:51 +02:00
* Menu THIRDPARTIES
2013-02-24 21:16:36 +01:00
*/
if ( $mainmenu == 'companies' )
{
// Societes
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> societe -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " companies " );
$newmenu -> add ( " /societe/index.php?leftmenu=thirdparties " , $langs -> trans ( " ThirdParty " ), 0 , $user -> rights -> societe -> lire , '' , $mainmenu , 'thirdparties' );
if ( $user -> rights -> societe -> creer )
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /societe/card.php?action=create " , $langs -> trans ( " MenuNewThirdParty " ), 1 );
2019-11-13 19:35:02 +01:00
if ( ! $conf -> use_javascript_ajax ) $newmenu -> add ( " /societe/card.php?action=create&private=1 " , $langs -> trans ( " MenuNewPrivateIndividual " ), 1 );
2013-02-24 21:16:36 +01:00
}
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /societe/list.php?leftmenu=thirdparties " , $langs -> trans ( " List " ), 1 );
2015-07-15 12:42:50 +02:00
2013-02-24 21:16:36 +01:00
// Prospects
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> societe -> enabled ) && empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " commercial " );
2020-07-13 14:17:12 +02:00
$newmenu -> add ( " /societe/list.php?type=p&leftmenu=prospects " , $langs -> trans ( " ListProspectsShort " ), 2 , $user -> rights -> societe -> lire , '' , $mainmenu , 'prospects' );
2015-06-05 10:49:02 +02:00
/* no more required , there is a filter that can do more
2016-11-07 10:14:04 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " prospects " ) $newmenu -> add ( " /societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=-1 " , $langs -> trans ( " LastProspectDoNotContact " ), 2 , $user -> rights -> societe -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " prospects " ) $newmenu -> add ( " /societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=0 " , $langs -> trans ( " LastProspectNeverContacted " ), 2 , $user -> rights -> societe -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " prospects " ) $newmenu -> add ( " /societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=1 " , $langs -> trans ( " LastProspectToContact " ), 2 , $user -> rights -> societe -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " prospects " ) $newmenu -> add ( " /societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=2 " , $langs -> trans ( " LastProspectContactInProcess " ), 2 , $user -> rights -> societe -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " prospects " ) $newmenu -> add ( " /societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=3 " , $langs -> trans ( " LastProspectContactDone " ), 2 , $user -> rights -> societe -> lire );
2015-06-05 10:49:02 +02:00
*/
2020-07-13 14:17:12 +02:00
$newmenu -> add ( " /societe/card.php?leftmenu=prospects&action=create&type=p " , $langs -> trans ( " MenuNewProspect " ), 3 , $user -> rights -> societe -> creer );
2013-02-24 21:16:36 +01:00
}
2013-10-20 14:05:51 +02:00
// Customers/Prospects
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> societe -> enabled ) && empty ( $conf -> global -> SOCIETE_DISABLE_CUSTOMERS ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " commercial " );
2020-07-13 14:17:12 +02:00
$newmenu -> add ( " /societe/list.php?type=c&leftmenu=customers " , $langs -> trans ( " ListCustomersShort " ), 2 , $user -> rights -> societe -> lire , '' , $mainmenu , 'customers' );
2013-02-24 21:16:36 +01:00
2020-07-13 14:17:12 +02:00
$newmenu -> add ( " /societe/card.php?leftmenu=customers&action=create&type=c " , $langs -> trans ( " MenuNewCustomer " ), 3 , $user -> rights -> societe -> creer );
2013-02-24 21:16:36 +01:00
}
2013-10-20 14:05:51 +02:00
// Suppliers
2020-03-22 06:09:47 +01:00
if ( ! empty ( $conf -> societe -> enabled ) && (( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_order -> enabled ) || ! empty ( $conf -> supplier_invoice -> enabled )) || ! empty ( $conf -> supplier_proposal -> enabled )))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " suppliers " );
2020-07-13 14:17:12 +02:00
$newmenu -> add ( " /societe/list.php?type=f&leftmenu=suppliers " , $langs -> trans ( " ListSuppliersShort " ), 2 , ( $user -> rights -> fournisseur -> lire || $user -> rights -> supplier_proposal -> lire ), '' , $mainmenu , 'suppliers' );
$newmenu -> add ( " /societe/card.php?leftmenu=suppliers&action=create&type=f " , $langs -> trans ( " MenuNewSupplier " ), 3 , $user -> rights -> societe -> creer && ( $user -> rights -> fournisseur -> lire || $user -> rights -> supplier_proposal -> lire ));
2013-02-24 21:16:36 +01:00
}
2018-10-09 15:26:15 +02:00
// Categories
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-10-09 15:26:15 +02:00
{
$langs -> load ( " categories " );
if ( empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS ) || empty ( $conf -> global -> SOCIETE_DISABLE_CUSTOMERS ))
{
// Categories prospects/customers
2019-11-13 19:35:02 +01:00
$menutoshow = $langs -> trans ( " CustomersProspectsCategoriesShort " );
if ( ! empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS )) $menutoshow = $langs -> trans ( " CustomersCategoriesShort " );
if ( ! empty ( $conf -> global -> SOCIETE_DISABLE_CUSTOMERS )) $menutoshow = $langs -> trans ( " ProspectsCategoriesShort " );
2018-10-09 15:26:15 +02:00
$newmenu -> add ( " /categories/index.php?leftmenu=cat&type=2 " , $menutoshow , 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
}
// Categories suppliers
2020-03-22 06:09:47 +01:00
if ( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_order -> enabled ) || ! empty ( $conf -> supplier_invoice -> enabled ))
2018-10-09 15:26:15 +02:00
{
$newmenu -> add ( " /categories/index.php?leftmenu=catfournish&type=1 " , $langs -> trans ( " SuppliersCategoriesShort " ), 1 , $user -> rights -> categorie -> lire );
}
2013-02-24 21:16:36 +01:00
}
// Contacts
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /societe/index.php?leftmenu=thirdparties " , ( ! empty ( $conf -> global -> SOCIETE_ADDRESSES_MANAGEMENT ) ? $langs -> trans ( " Contacts " ) : $langs -> trans ( " ContactsAddresses " )), 0 , $user -> rights -> societe -> contact -> lire , '' , $mainmenu , 'contacts' );
$newmenu -> add ( " /contact/card.php?leftmenu=contacts&action=create " , ( ! empty ( $conf -> global -> SOCIETE_ADDRESSES_MANAGEMENT ) ? $langs -> trans ( " NewContact " ) : $langs -> trans ( " NewContactAddress " )), 1 , $user -> rights -> societe -> contact -> creer );
2013-02-24 21:16:36 +01:00
$newmenu -> add ( " /contact/list.php?leftmenu=contacts " , $langs -> trans ( " List " ), 1 , $user -> rights -> societe -> contact -> lire );
if ( empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS )) $newmenu -> add ( " /contact/list.php?leftmenu=contacts&type=p " , $langs -> trans ( " Prospects " ), 2 , $user -> rights -> societe -> contact -> lire );
2013-12-07 16:43:35 +01:00
if ( empty ( $conf -> global -> SOCIETE_DISABLE_CUSTOMERS )) $newmenu -> add ( " /contact/list.php?leftmenu=contacts&type=c " , $langs -> trans ( " Customers " ), 2 , $user -> rights -> societe -> contact -> lire );
2020-03-22 06:09:47 +01:00
if ( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_order -> enabled ) || ! empty ( $conf -> supplier_invoice -> enabled )) $newmenu -> add ( " /contact/list.php?leftmenu=contacts&type=f " , $langs -> trans ( " Suppliers " ), 2 , $user -> rights -> societe -> contact -> lire );
2015-09-17 15:35:51 +02:00
$newmenu -> add ( " /contact/list.php?leftmenu=contacts&type=o " , $langs -> trans ( " ContactOthers " ), 2 , $user -> rights -> societe -> contact -> lire );
2013-02-24 21:16:36 +01:00
//$newmenu->add("/contact/list.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire);
// Categories
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " categories " );
2013-07-21 10:47:55 +02:00
// Categories Contact
2018-10-09 15:26:15 +02:00
$newmenu -> add ( " /categories/index.php?leftmenu=catcontact&type=4 " , $langs -> trans ( " ContactCategoriesShort " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
2013-02-24 21:16:36 +01:00
}
}
/*
* Menu COMMERCIAL
*/
if ( $mainmenu == 'commercial' )
{
$langs -> load ( " companies " );
2015-11-15 18:23:42 +01:00
// Customer proposal
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> propal -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " propal " );
2017-11-14 18:26:39 +01:00
$newmenu -> add ( " /comm/propal/index.php?leftmenu=propals " , $langs -> trans ( " Proposals " ), 0 , $user -> rights -> propale -> lire , '' , $mainmenu , 'propals' , 100 );
2016-04-23 15:37:22 +02:00
$newmenu -> add ( " /comm/propal/card.php?action=create&leftmenu=propals " , $langs -> trans ( " NewPropal " ), 1 , $user -> rights -> propale -> creer );
2013-02-24 21:16:36 +01:00
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals " , $langs -> trans ( " List " ), 1 , $user -> rights -> propale -> lire );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " propals " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals&search_status=0 " , $langs -> trans ( " PropalsDraft " ), 2 , $user -> rights -> propale -> lire );
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals&search_status=1 " , $langs -> trans ( " PropalsOpened " ), 2 , $user -> rights -> propale -> lire );
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals&search_status=2 " , $langs -> trans ( " PropalStatusSigned " ), 2 , $user -> rights -> propale -> lire );
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals&search_status=3 " , $langs -> trans ( " PropalStatusNotSigned " ), 2 , $user -> rights -> propale -> lire );
$newmenu -> add ( " /comm/propal/list.php?leftmenu=propals&search_status=4 " , $langs -> trans ( " PropalStatusBilled " ), 2 , $user -> rights -> propale -> lire );
//$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire);
}
2013-02-24 21:16:36 +01:00
$newmenu -> add ( " /comm/propal/stats/index.php?leftmenu=propals " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> propale -> lire );
}
2020-09-07 10:18:17 +02:00
// Customers orders
if ( ! empty ( $conf -> commande -> enabled ))
{
$langs -> load ( " orders " );
$newmenu -> add ( " /commande/index.php?leftmenu=orders " , $langs -> trans ( " CustomersOrders " ), 0 , $user -> rights -> commande -> lire , '' , $mainmenu , 'orders' , 200 );
$newmenu -> add ( " /commande/card.php?action=create&leftmenu=orders " , $langs -> trans ( " NewOrder " ), 1 , $user -> rights -> commande -> creer );
$newmenu -> add ( " /commande/list.php?leftmenu=orders " , $langs -> trans ( " List " ), 1 , $user -> rights -> commande -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " orders " ) {
$newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=0 " , $langs -> trans ( " StatusOrderDraftShort " ), 2 , $user -> rights -> commande -> lire );
$newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=1 " , $langs -> trans ( " StatusOrderValidated " ), 2 , $user -> rights -> commande -> lire );
if ( ! empty ( $conf -> expedition -> enabled )) $newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=2 " , $langs -> trans ( " StatusOrderSentShort " ), 2 , $user -> rights -> commande -> lire );
$newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=3 " , $langs -> trans ( " StatusOrderDelivered " ), 2 , $user -> rights -> commande -> lire );
//$newmenu->add("/commande/list.php?leftmenu=orders&search_status=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);
$newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=-1 " , $langs -> trans ( " StatusOrderCanceledShort " ), 2 , $user -> rights -> commande -> lire );
}
$newmenu -> add ( " /commande/stats/index.php?leftmenu=orders " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> commande -> lire );
}
2013-02-24 21:16:36 +01:00
2020-03-23 08:51:38 +01:00
// Supplier proposal
if ( ! empty ( $conf -> supplier_proposal -> enabled ))
{
$langs -> load ( " supplier_proposal " );
$newmenu -> add ( " /supplier_proposal/index.php?leftmenu=propals_supplier " , $langs -> trans ( " SupplierProposalsShort " ), 0 , $user -> rights -> supplier_proposal -> lire , '' , $mainmenu , 'propals_supplier' , 300 );
$newmenu -> add ( " /supplier_proposal/card.php?action=create&leftmenu=supplier_proposals " , $langs -> trans ( " SupplierProposalNew " ), 1 , $user -> rights -> supplier_proposal -> creer );
$newmenu -> add ( " /supplier_proposal/list.php?leftmenu=supplier_proposals " , $langs -> trans ( " List " ), 1 , $user -> rights -> supplier_proposal -> lire );
$newmenu -> add ( " /comm/propal/stats/index.php?leftmenu=supplier_proposals&mode=supplier " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> supplier_proposal -> lire );
}
2013-02-24 21:16:36 +01:00
// Suppliers orders
2020-09-07 10:18:17 +02:00
if ( ! empty ( $conf -> supplier_order -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " orders " );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /fourn/commande/index.php?leftmenu=orders_suppliers " , $langs -> trans ( " SuppliersOrders " ), 0 , $user -> rights -> fournisseur -> commande -> lire , '' , $mainmenu , 'orders_suppliers' , 400 );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /fourn/commande/card.php?action=create&leftmenu=orders_suppliers " , $langs -> trans ( " NewOrder " ), 1 , $user -> rights -> fournisseur -> commande -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers " , $langs -> trans ( " List " ), 1 , $user -> rights -> fournisseur -> commande -> lire );
2014-06-20 12:01:14 +02:00
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " orders_suppliers " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=0 " , $langs -> trans ( " StatusSupplierOrderDraftShort " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
if ( empty ( $conf -> global -> SUPPLIER_ORDER_HIDE_VALIDATED )) $newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=1 " , $langs -> trans ( " StatusSupplierOrderValidated " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=2 " , $langs -> trans ( " StatusSupplierOrderApprovedShort " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=3 " , $langs -> trans ( " StatusSupplierOrderOnProcessShort " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=4 " , $langs -> trans ( " StatusSupplierOrderReceivedPartiallyShort " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=5 " , $langs -> trans ( " StatusSupplierOrderReceivedAll " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7 " , $langs -> trans ( " StatusSupplierOrderCanceled " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders_suppliers&statut=9 " , $langs -> trans ( " StatusSupplierOrderRefused " ), 2 , $user -> rights -> fournisseur -> commande -> lire );
}
// Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("Billed"), 2, $user->rights->fournisseur->commande->lire);
2016-08-29 10:32:00 +02:00
2014-06-20 12:01:14 +02:00
2013-02-24 21:16:36 +01:00
$newmenu -> add ( " /commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> fournisseur -> commande -> lire );
}
// Contrat
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> contrat -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " contracts " );
2015-11-29 13:03:46 +01:00
$newmenu -> add ( " /contrat/index.php?leftmenu=contracts " , $langs -> trans ( " ContractsSubscriptions " ), 0 , $user -> rights -> contrat -> lire , '' , $mainmenu , 'contracts' , 2000 );
$newmenu -> add ( " /contrat/card.php?action=create&leftmenu=contracts " , $langs -> trans ( " NewContractSubscription " ), 1 , $user -> rights -> contrat -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /contrat/list.php?leftmenu=contracts " , $langs -> trans ( " List " ), 1 , $user -> rights -> contrat -> lire );
2017-10-29 11:00:02 +01:00
$newmenu -> add ( " /contrat/services_list.php?leftmenu=contracts " , $langs -> trans ( " MenuServices " ), 1 , $user -> rights -> contrat -> lire );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " contracts " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /contrat/services_list.php?leftmenu=contracts&mode=0 " , $langs -> trans ( " MenuInactiveServices " ), 2 , $user -> rights -> contrat -> lire );
$newmenu -> add ( " /contrat/services_list.php?leftmenu=contracts&mode=4 " , $langs -> trans ( " MenuRunningServices " ), 2 , $user -> rights -> contrat -> lire );
$newmenu -> add ( " /contrat/services_list.php?leftmenu=contracts&mode=4&filter=expired " , $langs -> trans ( " MenuExpiredServices " ), 2 , $user -> rights -> contrat -> lire );
$newmenu -> add ( " /contrat/services_list.php?leftmenu=contracts&mode=5 " , $langs -> trans ( " MenuClosedServices " ), 2 , $user -> rights -> contrat -> lire );
}
2013-02-24 21:16:36 +01:00
}
// Interventions
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> ficheinter -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " interventions " );
2015-11-15 18:23:42 +01:00
$newmenu -> add ( " /fichinter/index.php?leftmenu=ficheinter " , $langs -> trans ( " Interventions " ), 0 , $user -> rights -> ficheinter -> lire , '' , $mainmenu , 'ficheinter' , 2200 );
2015-07-02 22:43:51 +02:00
$newmenu -> add ( " /fichinter/card.php?action=create&leftmenu=ficheinter " , $langs -> trans ( " NewIntervention " ), 1 , $user -> rights -> ficheinter -> creer , '' , '' , '' , 201 );
$newmenu -> add ( " /fichinter/list.php?leftmenu=ficheinter " , $langs -> trans ( " List " ), 1 , $user -> rights -> ficheinter -> lire , '' , '' , '' , 202 );
2019-10-02 08:31:46 +02:00
if ( $conf -> global -> MAIN_FEATURES_LEVEL >= 2 ) $newmenu -> add ( " /fichinter/card-rec.php?leftmenu=ficheinter " , $langs -> trans ( " ListOfTemplates " ), 1 , $user -> rights -> ficheinter -> lire , '' , '' , '' , 203 );
2020-03-04 11:48:43 +01:00
$newmenu -> add ( " /fichinter/stats/index.php?leftmenu=ficheinter " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> ficheinter -> lire );
2013-02-24 21:16:36 +01:00
}
}
/*
* Menu COMPTA - FINANCIAL
*/
2017-08-29 12:43:47 +02:00
if ( $mainmenu == 'billing' )
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " companies " );
// Customers invoices
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> facture -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " bills " );
2020-05-06 11:36:30 +02:00
$newmenu -> add ( " /compta/facture/index.php?leftmenu=customers_bills " , $langs -> trans ( " BillsCustomers " ), 0 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customers_bills' );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/facture/card.php?action=create " , $langs -> trans ( " NewBill " ), 1 , $user -> rights -> facture -> creer );
$newmenu -> add ( " /compta/facture/list.php?leftmenu=customers_bills " , $langs -> trans ( " List " ), 1 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customers_bills_list' );
2013-02-24 21:16:36 +01:00
2018-05-08 09:04:04 +02:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/customers_bills(|_draft|_notpaid|_paid|_canceled)$/' , $leftmenu ))
2015-04-06 19:11:31 +02:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/facture/list.php?leftmenu=customers_bills_draft&search_status=0 " , $langs -> trans ( " BillShortStatusDraft " ), 2 , $user -> rights -> facture -> lire );
$newmenu -> add ( " /compta/facture/list.php?leftmenu=customers_bills_notpaid&search_status=1 " , $langs -> trans ( " BillShortStatusNotPaid " ), 2 , $user -> rights -> facture -> lire );
$newmenu -> add ( " /compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2 " , $langs -> trans ( " BillShortStatusPaid " ), 2 , $user -> rights -> facture -> lire );
$newmenu -> add ( " /compta/facture/list.php?leftmenu=customers_bills_canceled&search_status=3 " , $langs -> trans ( " BillShortStatusCanceled " ), 2 , $user -> rights -> facture -> lire );
2015-03-23 13:40:55 +01:00
}
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /compta/facture/invoicetemplate_list.php?leftmenu=customers_bills_templates " , $langs -> trans ( " ListOfTemplates " ), 1 , $user -> rights -> facture -> creer , '' , $mainmenu , 'customers_bills_templates' ); // No need to see recurring invoices, if user has no permission to create invoice.
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/paiement/list.php?leftmenu=customers_bills_payment " , $langs -> trans ( " Payments " ), 1 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customers_bills_payment' );
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> global -> BILL_ADD_PAYMENT_VALIDATION ))
2013-02-24 21:16:36 +01:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/paiement/tovalidate.php?leftmenu=customers_bills_tovalid " , $langs -> trans ( " MenuToValid " ), 2 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customer_bills_tovalid' );
2013-02-24 21:16:36 +01:00
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/paiement/rapport.php?leftmenu=customers_bills_reports " , $langs -> trans ( " Reportings " ), 2 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customers_bills_reports' );
2015-04-06 19:11:31 +02:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/facture/stats/index.php?leftmenu=customers_bills_stats " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> facture -> lire , '' , $mainmenu , 'customers_bills_stats' );
2013-02-24 21:16:36 +01:00
}
2016-01-14 13:24:49 +01:00
// Suppliers invoices
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> societe -> enabled ) && ! empty ( $conf -> supplier_invoice -> enabled ))
2013-02-24 21:16:36 +01:00
{
2014-05-23 19:55:40 +02:00
$langs -> load ( " bills " );
2020-05-06 11:49:45 +02:00
$newmenu -> add ( " /fourn/facture/index.php?leftmenu=suppliers_bills " , $langs -> trans ( " BillsSuppliers " ), 0 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills' );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /fourn/facture/card.php?leftmenu=suppliers_bills&action=create " , $langs -> trans ( " NewBill " ), 1 , $user -> rights -> fournisseur -> facture -> creer , '' , $mainmenu , 'suppliers_bills_create' );
$newmenu -> add ( " /fourn/facture/list.php?leftmenu=suppliers_bills " , $langs -> trans ( " List " ), 1 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_list' );
2015-03-23 13:40:55 +01:00
2017-01-18 16:27:23 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/suppliers_bills/' , $leftmenu )) {
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /fourn/facture/list.php?leftmenu=suppliers_bills_draft&search_status=0 " , $langs -> trans ( " BillShortStatusDraft " ), 2 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_draft' );
$newmenu -> add ( " /fourn/facture/list.php?leftmenu=suppliers_bills_notpaid&search_status=1 " , $langs -> trans ( " BillShortStatusNotPaid " ), 2 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_notpaid' );
$newmenu -> add ( " /fourn/facture/list.php?leftmenu=suppliers_bills_paid&search_status=2 " , $langs -> trans ( " BillShortStatusPaid " ), 2 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_paid' );
2015-03-23 13:40:55 +01:00
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /fourn/facture/paiement.php?leftmenu=suppliers_bills_payment " , $langs -> trans ( " Payments " ), 1 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_payment' );
2017-06-02 19:28:22 +02:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /fourn/facture/rapport.php?leftmenu=suppliers_bills_report " , $langs -> trans ( " Reportings " ), 2 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_report' );
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/facture/stats/index.php?mode=supplier&leftmenu=suppliers_bills_stats " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> fournisseur -> facture -> lire , '' , $mainmenu , 'suppliers_bills_stats' );
2013-02-24 21:16:36 +01:00
}
// Orders
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> commande -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " orders " );
2020-04-15 15:01:00 +02:00
if ( ! empty ( $conf -> facture -> enabled )) $newmenu -> add ( " /commande/list.php?leftmenu=orders&search_status=-3&billed=0&contextpage=billableorders " , $langs -> trans ( " MenuOrdersToBill2 " ), 0 , $user -> rights -> commande -> lire , '' , $mainmenu , 'orders' );
2019-04-03 13:26:50 +02:00
//if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
2013-02-24 21:16:36 +01:00
}
2014-11-07 23:15:02 +01:00
2016-01-14 13:24:49 +01:00
// Supplier Orders to bill
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> supplier_invoice -> enabled ))
2014-09-23 16:28:29 +02:00
{
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> global -> SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE ))
2014-11-07 23:15:02 +01:00
{
$langs -> load ( " supplier " );
2015-12-23 14:15:30 +01:00
$newmenu -> add ( " /fourn/commande/list.php?leftmenu=orders&search_status=5&billed=0 " , $langs -> trans ( " MenuOrdersSupplierToBill " ), 0 , $user -> rights -> commande -> lire , '' , $mainmenu , 'orders' );
2019-04-03 13:26:50 +02:00
//if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire);
2014-11-07 23:15:02 +01:00
}
2014-09-23 16:28:29 +02:00
}
2014-11-07 23:15:02 +01:00
2013-02-24 21:16:36 +01:00
// Donations
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> don -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " donations " );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /don/index.php?leftmenu=donations&mainmenu=billing " , $langs -> trans ( " Donations " ), 0 , $user -> rights -> don -> lire , '' , $mainmenu , 'donations' );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " donations " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /don/card.php?leftmenu=donations&action=create " , $langs -> trans ( " NewDonation " ), 1 , $user -> rights -> don -> creer );
$newmenu -> add ( " /don/list.php?leftmenu=donations " , $langs -> trans ( " List " ), 1 , $user -> rights -> don -> lire );
}
2015-03-29 09:20:32 +02:00
// if ($leftmenu=="donations") $newmenu->add("/don/stats/index.php",$langs->trans("Statistics"), 1, $user->rights->don->lire);
2013-02-24 21:16:36 +01:00
}
// Taxes and social contributions
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> tax -> enabled ) || ! empty ( $conf -> salaries -> enabled ) || ! empty ( $conf -> loan -> enabled ) || ! empty ( $conf -> banque -> enabled ))
2013-02-24 21:16:36 +01:00
{
2014-03-06 21:21:16 +01:00
global $mysoc ;
2014-03-17 14:30:55 +01:00
2019-11-13 19:35:02 +01:00
$permtoshowmenu = (( ! empty ( $conf -> tax -> enabled ) && $user -> rights -> tax -> charges -> lire ) || ( ! empty ( $conf -> salaries -> enabled ) && ! empty ( $user -> rights -> salaries -> read )) || ( ! empty ( $conf -> loan -> enabled ) && $user -> rights -> loan -> read ) || ( ! empty ( $conf -> banque -> enabled ) && $user -> rights -> banque -> lire ));
2020-07-06 11:52:28 +02:00
$newmenu -> add ( " /compta/charges/index.php?leftmenu=tax&mainmenu=billing " , $langs -> trans ( " MenuTaxesAndSpecialExpenses " ), 0 , $permtoshowmenu , '' , $mainmenu , 'tax' );
2014-03-17 14:30:55 +01:00
// Social contributions
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> tax -> enabled ))
2013-02-24 21:16:36 +01:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/sociales/list.php?leftmenu=tax_social " , $langs -> trans ( " MenuSocialContributions " ), 1 , $user -> rights -> tax -> charges -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_social/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/sociales/card.php?leftmenu=tax_social&action=create " , $langs -> trans ( " MenuNewSocialContribution " ), 2 , $user -> rights -> tax -> charges -> creer );
$newmenu -> add ( " /compta/sociales/list.php?leftmenu=tax_social " , $langs -> trans ( " List " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/sociales/payments.php?leftmenu=tax_social&mainmenu=billing&mode=sconly " , $langs -> trans ( " Payments " ), 2 , $user -> rights -> tax -> charges -> lire );
}
2014-05-10 18:57:04 +02:00
// VAT
if ( empty ( $conf -> global -> TAX_DISABLE_VAT_MENUS ))
2013-02-24 21:16:36 +01:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/tva/list.php?leftmenu=tax_vat&mainmenu=billing " , $langs -> transcountry ( " VAT " , $mysoc -> country_code ), 1 , $user -> rights -> tax -> charges -> lire , '' , $mainmenu , 'tax_vat' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_vat/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/tva/card.php?leftmenu=tax_vat&action=create " , $langs -> trans ( " New " ), 2 , $user -> rights -> tax -> charges -> creer );
$newmenu -> add ( " /compta/tva/list.php?leftmenu=tax_vat " , $langs -> trans ( " List " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/tva/index.php?leftmenu=tax_vat " , $langs -> trans ( " ReportByMonth " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/tva/clients.php?leftmenu=tax_vat " , $langs -> trans ( " ReportByCustomers " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/tva/quadri_detail.php?leftmenu=tax_vat " , $langs -> trans ( " ReportByQuarter " ), 2 , $user -> rights -> tax -> charges -> lire );
}
2014-05-10 18:57:04 +02:00
global $mysoc ;
2014-07-04 12:50:55 +02:00
//Local Taxes 1
2019-11-13 19:35:02 +01:00
if ( $mysoc -> useLocalTax ( 1 ) && ( isset ( $mysoc -> localtax1_assuj ) && $mysoc -> localtax1_assuj == " 1 " ))
2014-05-10 18:57:04 +02:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/localtax/list.php?leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1 " , $langs -> transcountry ( " LT1 " , $mysoc -> country_code ), 1 , $user -> rights -> tax -> charges -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_1_vat/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/localtax/card.php?leftmenu=tax_1_vat&action=create&localTaxType=1 " , $langs -> trans ( " New " ), 2 , $user -> rights -> tax -> charges -> creer );
$newmenu -> add ( " /compta/localtax/list.php?leftmenu=tax_1_vat&localTaxType=1 " , $langs -> trans ( " List " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/index.php?leftmenu=tax_1_vat&localTaxType=1 " , $langs -> trans ( " ReportByMonth " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/clients.php?leftmenu=tax_1_vat&localTaxType=1 " , $langs -> trans ( " ReportByCustomers " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&localTaxType=1 " , $langs -> trans ( " ReportByQuarter " ), 2 , $user -> rights -> tax -> charges -> lire );
}
2014-07-04 12:50:55 +02:00
}
//Local Taxes 2
2019-11-13 19:35:02 +01:00
if ( $mysoc -> useLocalTax ( 2 ) && ( isset ( $mysoc -> localtax2_assuj ) && $mysoc -> localtax2_assuj == " 1 " ))
2014-07-04 12:50:55 +02:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/localtax/list.php?leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2 " , $langs -> transcountry ( " LT2 " , $mysoc -> country_code ), 1 , $user -> rights -> tax -> charges -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_2_vat/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/localtax/card.php?leftmenu=tax_2_vat&action=create&localTaxType=2 " , $langs -> trans ( " New " ), 2 , $user -> rights -> tax -> charges -> creer );
$newmenu -> add ( " /compta/localtax/list.php?leftmenu=tax_2_vat&localTaxType=2 " , $langs -> trans ( " List " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/index.php?leftmenu=tax_2_vat&localTaxType=2 " , $langs -> trans ( " ReportByMonth " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/clients.php?leftmenu=tax_2_vat&localTaxType=2 " , $langs -> trans ( " ReportByCustomers " ), 2 , $user -> rights -> tax -> charges -> lire );
$newmenu -> add ( " /compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&localTaxType=2 " , $langs -> trans ( " ReportByQuarter " ), 2 , $user -> rights -> tax -> charges -> lire );
}
2014-05-10 18:57:04 +02:00
}
}
2013-02-24 21:16:36 +01:00
}
2016-08-29 10:32:00 +02:00
2016-06-20 11:43:53 +02:00
// Salaries
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> salaries -> enabled ))
2016-06-20 11:43:53 +02:00
{
2018-03-15 06:23:20 +01:00
$langs -> load ( " salaries " );
2020-07-06 11:52:28 +02:00
$newmenu -> add ( " /salaries/list.php?leftmenu=tax_salary&mainmenu=billing " , $langs -> trans ( " Salaries " ), 0 , $user -> rights -> salaries -> read , '' , $mainmenu , 'tax_salary' );
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_salary/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /salaries/card.php?leftmenu=tax_salary&action=create " , $langs -> trans ( " NewPayment " ), 1 , $user -> rights -> salaries -> write );
$newmenu -> add ( " /salaries/list.php?leftmenu=tax_salary " , $langs -> trans ( " Payments " ), 1 , $user -> rights -> salaries -> read );
$newmenu -> add ( " /salaries/stats/index.php?leftmenu=tax_salary " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> salaries -> read );
}
2016-06-20 11:43:53 +02:00
}
2016-08-29 10:32:00 +02:00
2016-06-20 11:43:53 +02:00
// Loan
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> loan -> enabled ))
2016-06-20 11:43:53 +02:00
{
2018-03-15 06:23:20 +01:00
$langs -> load ( " loan " );
2020-07-06 11:52:28 +02:00
$newmenu -> add ( " /loan/list.php?leftmenu=tax_loan&mainmenu=billing " , $langs -> trans ( " Loans " ), 0 , $user -> rights -> loan -> read , '' , $mainmenu , 'tax_loan' );
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_loan/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /loan/card.php?leftmenu=tax_loan&action=create " , $langs -> trans ( " NewLoan " ), 1 , $user -> rights -> loan -> write );
//$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read);
}
2016-06-20 11:43:53 +02:00
}
2017-07-28 06:27:04 +02:00
2017-08-29 12:43:47 +02:00
// Various payment
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> banque -> enabled ) && empty ( $conf -> global -> BANK_USE_OLD_VARIOUS_PAYMENT ))
2017-07-28 06:27:04 +02:00
{
2017-09-09 09:41:07 +02:00
$langs -> load ( " banks " );
2020-07-06 11:52:28 +02:00
$newmenu -> add ( " /compta/bank/various_payment/list.php?leftmenu=tax_various&mainmenu=billing " , $langs -> trans ( " MenuVariousPayment " ), 0 , $user -> rights -> banque -> lire , '' , $mainmenu , 'tax_various' );
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/^tax_various/i' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/bank/various_payment/card.php?leftmenu=tax_various&action=create " , $langs -> trans ( " New " ), 1 , $user -> rights -> banque -> modifier );
$newmenu -> add ( " /compta/bank/various_payment/list.php?leftmenu=tax_various " , $langs -> trans ( " List " ), 1 , $user -> rights -> banque -> lire );
}
2016-06-20 11:43:53 +02:00
}
2013-02-24 21:16:36 +01:00
}
2017-08-29 12:43:47 +02:00
}
/*
* Menu COMPTA - FINANCIAL
*/
if ( $mainmenu == 'accountancy' )
{
$langs -> load ( " companies " );
2013-02-24 21:16:36 +01:00
2019-04-18 14:13:48 +02:00
// Accounting (Double entries)
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> accounting -> enabled ))
2013-02-24 21:16:36 +01:00
{
2019-11-13 19:35:02 +01:00
$permtoshowmenu = ( ! empty ( $conf -> accounting -> enabled ) || $user -> rights -> accounting -> bind -> write || $user -> rights -> compta -> resultat -> lire );
2019-02-20 04:55:35 +01:00
//$newmenu->add("/accountancy/index.php?leftmenu=accountancy", $langs->trans("MenuAccountancy"), 0, $permtoshowmenu, '', $mainmenu, 'accountancy');
2016-01-24 08:21:18 +01:00
2019-06-04 01:22:26 +02:00
// Configuration
$newmenu -> add ( " /accountancy/index.php?leftmenu=accountancy_admin " , $langs -> trans ( " Setup " ), 0 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin' , 1 );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_admin/' , $leftmenu )) {
$newmenu -> add ( " /accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " General " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_general' , 10 );
// Fiscal year - Not really yet used. In a future will lock some periods.
if ( $conf -> global -> MAIN_FEATURES_LEVEL > 1 ) {
2019-10-17 18:43:07 +02:00
$newmenu -> add ( " /accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " FiscalPeriod " ), 1 , $user -> rights -> accounting -> fiscalyear -> write , '' , $mainmenu , 'fiscalyear' , 20 );
2019-06-04 01:22:26 +02:00
}
$newmenu -> add ( " /accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " AccountingJournals " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_journal' , 30 );
$newmenu -> add ( " /accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " Pcg_version " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_chartmodel' , 40 );
$newmenu -> add ( " /accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " Chartofaccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_chart' , 41 );
$newmenu -> add ( " /accountancy/admin/categories_list.php?id=32&search_country_id= " . $mysoc -> country_id . " &mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " AccountingCategory " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_chart' , 50 );
$newmenu -> add ( " /accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuDefaultAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_default' , 60 );
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> banque -> enabled )) {
2019-06-04 01:22:26 +02:00
$newmenu -> add ( " /compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1 " , $langs -> trans ( " MenuBankAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_bank' , 70 );
}
2020-03-22 06:09:47 +01:00
if ( ! empty ( $conf -> facture -> enabled ) || ( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_invoice -> enabled ))) {
2019-06-04 01:22:26 +02:00
$newmenu -> add ( " /admin/dict.php?id=10&from=accountancy&search_country_id= " . $mysoc -> country_id . " &mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuVatAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_default' , 80 );
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> tax -> enabled )) {
2019-06-04 01:22:26 +02:00
$newmenu -> add ( " /admin/dict.php?id=7&from=accountancy&search_country_id= " . $mysoc -> country_id . " &mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuTaxAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_default' , 90 );
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> expensereport -> enabled )) {
2019-06-04 01:22:26 +02:00
$newmenu -> add ( " /admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuExpenseReportAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_default' , 100 );
}
$newmenu -> add ( " /accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuProductsAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_product' , 110 );
2019-12-16 19:40:18 +01:00
if ( $conf -> global -> MAIN_FEATURES_LEVEL > 1 ) {
$newmenu -> add ( " /accountancy/admin/closure.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " MenuClosureAccounts " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_closure' , 120 );
}
2019-06-04 01:22:26 +02:00
$newmenu -> add ( " /accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin " , $langs -> trans ( " ExportOptions " ), 1 , $user -> rights -> accounting -> chartofaccount , '' , $mainmenu , 'accountancy_admin_export' , 130 );
}
2019-03-08 09:11:56 +01:00
// Transfer in accounting
$newmenu -> add ( " /accountancy/index.php?leftmenu=accountancy_transfer " , $langs -> trans ( " TransferInAccounting " ), 0 , $user -> rights -> accounting -> bind -> write , '' , $mainmenu , 'transfer' , 1 );
2019-06-04 01:22:26 +02:00
// Binding
// $newmenu->add("", $langs->trans("Binding"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch');
2020-08-18 07:38:46 +02:00
if ( ! empty ( $conf -> facture -> enabled ) && empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_SALES ))
2019-06-04 01:22:26 +02:00
{
$newmenu -> add ( " /accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&mainmenu=accountancy " , $langs -> trans ( " CustomersVentilation " ), 1 , $user -> rights -> accounting -> bind -> write , '' , $mainmenu , 'dispatch_customer' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_dispatch_customer/' , $leftmenu )) {
$newmenu -> add ( " /accountancy/customer/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer " , $langs -> trans ( " ToBind " ), 2 , $user -> rights -> accounting -> bind -> write );
$newmenu -> add ( " /accountancy/customer/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer " , $langs -> trans ( " Binded " ), 2 , $user -> rights -> accounting -> bind -> write );
}
}
2020-08-18 07:38:46 +02:00
if ( ! empty ( $conf -> supplier_invoice -> enabled ) && empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_PURCHASES ))
2019-06-04 01:22:26 +02:00
{
$newmenu -> add ( " /accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&mainmenu=accountancy " , $langs -> trans ( " SuppliersVentilation " ), 1 , $user -> rights -> accounting -> bind -> write , '' , $mainmenu , 'dispatch_supplier' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_dispatch_supplier/' , $leftmenu )) {
$newmenu -> add ( " /accountancy/supplier/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier " , $langs -> trans ( " ToBind " ), 2 , $user -> rights -> accounting -> bind -> write );
$newmenu -> add ( " /accountancy/supplier/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier " , $langs -> trans ( " Binded " ), 2 , $user -> rights -> accounting -> bind -> write );
}
}
2020-08-18 07:38:46 +02:00
if ( ! empty ( $conf -> expensereport -> enabled ) && empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS ))
2019-06-04 01:22:26 +02:00
{
$newmenu -> add ( " /accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&mainmenu=accountancy " , $langs -> trans ( " ExpenseReportsVentilation " ), 1 , $user -> rights -> accounting -> bind -> write , '' , $mainmenu , 'dispatch_expensereport' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_dispatch_expensereport/' , $leftmenu )) {
$newmenu -> add ( " /accountancy/expensereport/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport " , $langs -> trans ( " ToBind " ), 2 , $user -> rights -> accounting -> bind -> write );
$newmenu -> add ( " /accountancy/expensereport/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport " , $langs -> trans ( " Binded " ), 2 , $user -> rights -> accounting -> bind -> write );
}
}
2016-10-24 06:41:32 +02:00
2016-01-24 08:21:18 +01:00
// Journals
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> accounting -> enabled ) && ! empty ( $user -> rights -> accounting -> comptarapport -> lire ) && $mainmenu == 'accountancy' )
2016-01-24 08:21:18 +01:00
{
2019-03-08 09:11:56 +01:00
$newmenu -> add ( '' , $langs -> trans ( " RegistrationInAccounting " ), 1 , $user -> rights -> accounting -> comptarapport -> lire );
2016-01-24 08:21:18 +01:00
2017-02-21 07:09:58 +01:00
// Multi journal
$sql = " SELECT rowid, code, label, nature " ;
2019-11-13 19:35:02 +01:00
$sql .= " FROM " . MAIN_DB_PREFIX . " accounting_journal " ;
$sql .= " WHERE entity = " . $conf -> entity ;
$sql .= " AND active = 1 " ;
$sql .= " ORDER BY label DESC " ;
2017-02-21 07:09:58 +01:00
$resql = $db -> query ( $sql );
if ( $resql )
{
$numr = $db -> num_rows ( $resql );
$i = 0 ;
if ( $numr > 0 )
{
2017-06-03 07:23:14 +02:00
while ( $i < $numr )
{
$objp = $db -> fetch_object ( $resql );
2019-11-13 19:35:02 +01:00
$nature = '' ;
2017-07-01 02:22:08 +02:00
2017-06-10 16:13:37 +02:00
// Must match array $sourceList defined into journals_list.php
2020-08-18 07:38:46 +02:00
if ( $objp -> nature == 2 && ! empty ( $conf -> facture -> enabled ) && empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_SALES )) $nature = " sells " ;
if ( $objp -> nature == 3
&& ( ! empty ( $conf -> fournisseur -> enabled ) && empty ( $conf -> global -> MAIN_USE_NEW_SUPPLIERMOD ) || ! empty ( $conf -> supplier_invoice -> enabled ))
&& empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_PURCHASES ))
$nature = " purchases " ;
2019-11-13 19:35:02 +01:00
if ( $objp -> nature == 4 && ! empty ( $conf -> banque -> enabled )) $nature = " bank " ;
2020-08-18 07:38:46 +02:00
if ( $objp -> nature == 5 && ! empty ( $conf -> expensereport -> enabled ) && empty ( $conf -> global -> ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS )) $nature = " expensereports " ;
2019-11-13 19:35:02 +01:00
if ( $objp -> nature == 1 ) $nature = " various " ;
if ( $objp -> nature == 8 ) $nature = " inventory " ;
if ( $objp -> nature == 9 ) $nature = " hasnew " ;
2017-06-03 07:23:14 +02:00
// To enable when page exists
2018-06-23 15:22:39 +02:00
if ( empty ( $conf -> global -> ACCOUNTANCY_SHOW_DEVELOP_JOURNAL ))
2017-06-03 07:23:14 +02:00
{
2019-11-13 19:35:02 +01:00
if ( $nature == 'various' || $nature == 'hasnew' || $nature == 'inventory' ) $nature = '' ;
2017-06-03 07:23:14 +02:00
}
if ( $nature )
{
2018-05-24 21:13:48 +02:00
$langs -> load ( 'accountancy' );
2019-11-13 19:35:02 +01:00
$journallabel = $langs -> transnoentities ( $objp -> label ); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...
2019-03-08 09:11:56 +01:00
$newmenu -> add ( '/accountancy/journal/' . $nature . 'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=' . $objp -> rowid , $journallabel , 2 , $user -> rights -> accounting -> comptarapport -> lire );
2017-06-03 07:23:14 +02:00
}
$i ++ ;
}
2020-05-21 15:05:19 +02:00
} else {
2018-04-01 21:26:52 +02:00
// Should not happend. Entries are added
2019-01-27 11:55:16 +01:00
$newmenu -> add ( '' , $langs -> trans ( " NoJournalDefined " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
2017-02-21 07:09:58 +01:00
}
2020-05-21 15:05:19 +02:00
} else dol_print_error ( $db );
2017-02-21 07:09:58 +01:00
$db -> free ( $resql );
2014-09-06 09:50:42 +02:00
}
2016-01-24 08:21:18 +01:00
2020-09-07 10:18:17 +02:00
// Accounting
$newmenu -> add ( " /accountancy/index.php?leftmenu=accountancy_accountancy " , $langs -> trans ( " MenuAccountancy " ), 0 , $user -> rights -> accounting -> mouvements -> lire , '' , $mainmenu , 'accountancy' , 1 );
2019-03-08 09:11:56 +01:00
2019-10-17 18:16:57 +02:00
2020-09-07 10:18:17 +02:00
// General Ledger
2019-03-08 09:11:56 +01:00
$newmenu -> add ( " /accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_accountancy " , $langs -> trans ( " Bookkeeping " ), 1 , $user -> rights -> accounting -> mouvements -> lire );
2016-02-11 06:39:02 +01:00
// Balance
2019-03-08 09:11:56 +01:00
$newmenu -> add ( " /accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_accountancy " , $langs -> trans ( " AccountBalance " ), 1 , $user -> rights -> accounting -> mouvements -> lire );
2016-01-24 08:21:18 +01:00
2020-09-07 10:18:17 +02:00
// Closure
if ( ! empty ( $conf -> global -> MAIN_FEATURES_LEVEL ) && $conf -> global -> MAIN_FEATURES_LEVEL >= 2 ) {
$newmenu -> add ( " /accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure " , $langs -> trans ( " MenuAccountancyClosure " ), 1 , $user -> rights -> accounting -> fiscalyear -> write , '' , $mainmenu , 'closure' );
2019-10-17 18:16:57 +02:00
2020-09-07 10:18:17 +02:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_closure/' , $leftmenu )) {
$newmenu -> add ( " /accountancy/closure/validate.php?leftmenu=accountancy_closure " , $langs -> trans ( " MenuAccountancyValidationMovements " ), 2 , $user -> rights -> accounting -> fiscalyear -> write );
}
}
2019-10-17 18:43:07 +02:00
2018-12-15 12:08:32 +01:00
// Files
2019-12-19 12:34:58 +01:00
if ( empty ( $conf -> global -> ACCOUNTANCY_HIDE_EXPORT_FILES_MENU ))
2018-12-15 12:08:32 +01:00
{
2019-06-17 17:53:43 +02:00
$newmenu -> add ( " /compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files " , $langs -> trans ( " AccountantFiles " ), 1 , $user -> rights -> accounting -> mouvements -> lire );
2018-12-15 12:08:32 +01:00
}
2018-12-15 18:21:37 +01:00
2016-01-24 08:21:18 +01:00
// Reports
2020-09-03 15:29:00 +02:00
$newmenu -> add ( " /accountancy/index.php?leftmenu=accountancy_report " , $langs -> trans ( " Reportings " ), 1 , $user -> rights -> accounting -> comptarapport -> lire , '' , $mainmenu , 'ca' );
2016-01-24 08:21:18 +01:00
2020-09-07 10:18:17 +02:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_report/' , $leftmenu )) {
$newmenu -> add ( " /compta/resultat/index.php?leftmenu=accountancy_report " , $langs -> trans ( " MenuReportInOut " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/resultat/clientfourn.php?leftmenu=accountancy_report " , $langs -> trans ( " ByPredefinedAccountGroups " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/resultat/result.php?leftmenu=accountancy_report " , $langs -> trans ( " ByPersonalizedAccountGroups " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
}
2016-01-24 08:21:18 +01:00
2019-11-13 19:35:02 +01:00
$modecompta = 'CREANCES-DETTES' ;
if ( ! empty ( $conf -> accounting -> enabled ) && ! empty ( $user -> rights -> accounting -> comptarapport -> lire ) && $mainmenu == 'accountancy' ) $modecompta = 'BOOKKEEPING' ; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED
2018-06-26 11:18:31 +02:00
if ( $modecompta )
{
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_report/' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/stats/index.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ReportTurnover " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/casoc.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByCompanies " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByUsers " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByProductsAndServices " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByVatRate " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
}
2018-06-26 11:18:31 +02:00
}
2019-11-13 19:35:02 +01:00
$modecompta = 'RECETTES-DEPENSES' ;
2018-06-26 11:18:31 +02:00
//if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta=''; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED
if ( $modecompta )
{
2019-01-27 11:55:16 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_report/' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/stats/index.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ReportTurnoverCollected " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/casoc.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByCompanies " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByUsers " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
//$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);
//$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);
}
2018-06-26 11:18:31 +02:00
}
2020-04-04 18:45:33 +02:00
$modecompta = 'CREANCES-DETTES' ;
if ( ! empty ( $conf -> accounting -> enabled ) && ! empty ( $user -> rights -> accounting -> comptarapport -> lire ) && $mainmenu == 'accountancy' ) $modecompta = 'BOOKKEEPING' ; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED
if ( $modecompta && $conf -> fournisseur -> enabled )
{
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_report/' , $leftmenu )) {
$newmenu -> add ( " /compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ReportPurchaseTurnover " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByCompanies " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByProductsAndServices " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
}
}
$modecompta = 'RECETTES-DEPENSES' ;
//if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta=''; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED
if ( $modecompta && $conf -> fournisseur -> enabled )
{
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/accountancy_report/' , $leftmenu )) {
$newmenu -> add ( " /compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ReportPurchaseTurnoverCollected " ), 2 , $user -> rights -> accounting -> comptarapport -> lire );
$newmenu -> add ( " /compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta= " . $modecompta , $langs -> trans ( " ByCompanies " ), 3 , $user -> rights -> accounting -> comptarapport -> lire );
}
}
2020-09-07 10:18:17 +02:00
}
2018-04-01 21:26:52 +02:00
2019-04-25 08:29:43 +02:00
// Accountancy (simple)
2020-09-07 10:18:17 +02:00
if ( ! empty ( $conf -> comptabilite -> enabled ))
{
// Files
if ( empty ( $conf -> global -> ACCOUNTANCY_HIDE_EXPORT_FILES_MENU ))
{
$newmenu -> add ( " /compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files " , $langs -> trans ( " AccountantFiles " ), 0 , $user -> rights -> compta -> resultat -> lire , '' , $mainmenu , 'files' );
}
// Bilan, resultats
$newmenu -> add ( " /compta/resultat/index.php?leftmenu=report&mainmenu=accountancy " , $langs -> trans ( " Reportings " ), 0 , $user -> rights -> compta -> resultat -> lire , '' , $mainmenu , 'ca' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/report/' , $leftmenu )) {
$newmenu -> add ( " /compta/resultat/index.php?leftmenu=report " , $langs -> trans ( " MenuReportInOut " ), 1 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/resultat/clientfourn.php?leftmenu=report " , $langs -> trans ( " ByCompanies " ), 2 , $user -> rights -> compta -> resultat -> lire );
/* On verra ca avec module compabilite expert
2019-04-25 08:29:43 +02:00
$newmenu -> add ( " /compta/resultat/compteres.php?leftmenu=report " , " Compte de resultat " , 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/resultat/bilan.php?leftmenu=report " , " Bilan " , 2 , $user -> rights -> compta -> resultat -> lire );
*/
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/stats/index.php?leftmenu=report " , $langs -> trans ( " ReportTurnover " ), 1 , $user -> rights -> compta -> resultat -> lire );
2019-04-25 08:29:43 +02:00
2020-09-07 10:18:17 +02:00
/*
2019-04-25 08:29:43 +02:00
$newmenu -> add ( " /compta/stats/cumul.php?leftmenu=report " , " Cumule " , 2 , $user -> rights -> compta -> resultat -> lire );
if ( ! empty ( $conf -> propal -> enabled )) {
$newmenu -> add ( " /compta/stats/prev.php?leftmenu=report " , " Previsionnel " , 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/comp.php?leftmenu=report " , " Transforme " , 2 , $user -> rights -> compta -> resultat -> lire );
}
*/
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/stats/casoc.php?leftmenu=report " , $langs -> trans ( " ByCompanies " ), 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/cabyuser.php?leftmenu=report " , $langs -> trans ( " ByUsers " ), 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/cabyprodserv.php?leftmenu=report " , $langs -> trans ( " ByProductsAndServices " ), 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/byratecountry.php?leftmenu=report " , $langs -> trans ( " ByVatRate " ), 2 , $user -> rights -> compta -> resultat -> lire );
2020-05-26 10:33:07 +02:00
//Achats
$newmenu -> add ( " /compta/stats/supplier_turnover.php?leftmenu=accountancy_report " , $langs -> trans ( " ReportPurchaseTurnover " ), 1 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report " , $langs -> trans ( " ByCompanies " ), 2 , $user -> rights -> compta -> resultat -> lire );
$newmenu -> add ( " /compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_report " , $langs -> trans ( " ByProductsAndServices " ), 2 , $user -> rights -> compta -> resultat -> lire );
2020-09-07 10:18:17 +02:00
// Journaux
$newmenu -> add ( " /compta/journal/sellsjournal.php?leftmenu=report " , $langs -> trans ( " SellsJournal " ), 1 , $user -> rights -> compta -> resultat -> lire , '' , '' , '' , 50 );
$newmenu -> add ( " /compta/journal/purchasesjournal.php?leftmenu=report " , $langs -> trans ( " PurchasesJournal " ), 1 , $user -> rights -> compta -> resultat -> lire , '' , '' , '' , 51 );
}
//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journaux"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);
}
2019-05-07 09:18:27 +02:00
2018-04-01 21:26:52 +02:00
// Assets
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> asset -> enabled ))
2018-04-01 21:26:52 +02:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /asset/list.php?leftmenu=asset&mainmenu=accountancy " , $langs -> trans ( " MenuAssets " ), 0 , $user -> rights -> asset -> read , '' , $mainmenu , 'asset' );
2019-04-18 14:13:48 +02:00
$newmenu -> add ( " /asset/card.php?leftmenu=asset&action=create " , $langs -> trans ( " MenuNewAsset " ), 1 , $user -> rights -> asset -> write );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /asset/list.php?leftmenu=asset&mainmenu=accountancy " , $langs -> trans ( " MenuListAssets " ), 1 , $user -> rights -> asset -> read );
$newmenu -> add ( " /asset/type.php?leftmenu=asset_type " , $langs -> trans ( " MenuTypeAssets " ), 1 , $user -> rights -> asset -> read , '' , $mainmenu , 'asset_type' );
if ( $usemenuhider || empty ( $leftmenu ) || preg_match ( '/asset_type/' , $leftmenu )) {
2020-08-24 09:47:37 +02:00
$newmenu -> add ( " /asset/type.php?leftmenu=asset_type&action=create " , $langs -> trans ( " MenuNewTypeAssets " ), 2 , ( ! empty ( $conf -> global -> MAIN_USE_ADVANCED_PERMS ) && $user -> rights -> asset -> setup_advance ));
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /asset/type.php?leftmenu=asset_type " , $langs -> trans ( " MenuListTypeAssets " ), 2 , $user -> rights -> asset -> read );
2018-11-20 21:40:37 +01:00
}
2018-04-01 21:26:52 +02:00
}
2013-02-24 21:16:36 +01:00
}
/*
* Menu BANK
*/
if ( $mainmenu == 'bank' )
{
2018-12-15 15:35:59 +01:00
// Load translation files required by the page
2019-11-13 19:35:02 +01:00
$langs -> loadLangs ( array ( " withdrawals " , " banks " , " bills " , " categories " ));
2013-02-24 21:16:36 +01:00
2020-05-17 15:06:09 +02:00
// Bank-Cash account
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> banque -> enabled ))
2013-02-24 21:16:36 +01:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/bank/list.php?leftmenu=bank&mainmenu=bank " , $langs -> trans ( " MenuBankCash " ), 0 , $user -> rights -> banque -> lire , '' , $mainmenu , 'bank' );
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/bank/card.php?action=create " , $langs -> trans ( " MenuNewFinancialAccount " ), 1 , $user -> rights -> banque -> configurer );
$newmenu -> add ( " /compta/bank/list.php?leftmenu=bank&mainmenu=bank " , $langs -> trans ( " List " ), 1 , $user -> rights -> banque -> lire , '' , $mainmenu , 'bank' );
$newmenu -> add ( " /compta/bank/bankentries_list.php " , $langs -> trans ( " ListTransactions " ), 1 , $user -> rights -> banque -> lire );
$newmenu -> add ( " /compta/bank/budget.php " , $langs -> trans ( " ListTransactionsByCategory " ), 1 , $user -> rights -> banque -> lire );
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/bank/transfer.php " , $langs -> trans ( " MenuBankInternalTransfer " ), 1 , $user -> rights -> banque -> transfer );
2013-02-24 21:16:36 +01:00
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-12-15 15:35:59 +01:00
{
$langs -> load ( " categories " );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /categories/index.php?type=5 " , $langs -> trans ( " Rubriques " ), 1 , $user -> rights -> categorie -> creer , '' , $mainmenu , 'tags' );
$newmenu -> add ( " /compta/bank/categ.php " , $langs -> trans ( " RubriquesTransactions " ), 1 , $user -> rights -> categorie -> creer , '' , $mainmenu , 'tags' );
2018-12-15 15:35:59 +01:00
}
2016-04-30 14:45:24 +02:00
2020-05-17 15:06:09 +02:00
// Direct debit order
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> prelevement -> enabled ))
2013-02-24 21:16:36 +01:00
{
2020-07-01 13:22:15 +02:00
$newmenu -> add ( " /compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank " , $langs -> trans ( " PaymentByDirectDebit " ), 0 , $user -> rights -> prelevement -> bons -> lire , '' , $mainmenu , 'withdraw' );
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " withdraw " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/prelevement/create.php?mainmenu=bank " , $langs -> trans ( " NewStandingOrder " ), 1 , $user -> rights -> prelevement -> bons -> creer );
2013-02-24 21:16:36 +01:00
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/prelevement/bons.php?mainmenu=bank " , $langs -> trans ( " WithdrawalsReceipts " ), 1 , $user -> rights -> prelevement -> bons -> lire );
$newmenu -> add ( " /compta/prelevement/list.php?mainmenu=bank " , $langs -> trans ( " WithdrawalsLines " ), 1 , $user -> rights -> prelevement -> bons -> lire );
$newmenu -> add ( " /compta/prelevement/rejets.php?mainmenu=bank " , $langs -> trans ( " Rejects " ), 1 , $user -> rights -> prelevement -> bons -> lire );
$newmenu -> add ( " /compta/prelevement/stats.php?mainmenu=bank " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> prelevement -> bons -> lire );
}
2013-02-24 21:16:36 +01:00
}
2020-05-17 15:06:09 +02:00
// Bank transfer order
if ( ! empty ( $conf -> paymentbybanktransfer -> enabled ))
{
$newmenu -> add ( " /compta/paymentbybanktransfer/index.php?leftmenu=banktransfer&mainmenu=bank " , $langs -> trans ( " PaymentByBankTransfer " ), 0 , $user -> rights -> paymentbybanktransfer -> read , '' , $mainmenu , 'banktransfer' );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " banktransfer " ) {
2020-05-27 20:14:11 +02:00
$newmenu -> add ( " /compta/prelevement/create.php?type=bank-transfer&mainmenu=bank " , $langs -> trans ( " NewPaymentByBankTransfer " ), 1 , $user -> rights -> paymentbybanktransfer -> create );
2020-05-17 15:06:09 +02:00
2020-05-27 20:14:11 +02:00
$newmenu -> add ( " /compta/prelevement/bons.php?type=bank-transfer&mainmenu=bank " , $langs -> trans ( " PaymentByBankTransferReceipts " ), 1 , $user -> rights -> paymentbybanktransfer -> read );
$newmenu -> add ( " /compta/prelevement/list.php?type=bank-transfer&mainmenu=bank " , $langs -> trans ( " PaymentByBankTransferLines " ), 1 , $user -> rights -> paymentbybanktransfer -> read );
$newmenu -> add ( " /compta/prelevement/rejets.php?type=bank-transfer&mainmenu=bank " , $langs -> trans ( " Rejects " ), 1 , $user -> rights -> paymentbybanktransfer -> read );
$newmenu -> add ( " /compta/prelevement/stats.php?type=bank-transfer&mainmenu=bank " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> paymentbybanktransfer -> read );
2020-05-17 15:06:09 +02:00
}
}
// Management of checks
2019-11-13 19:35:02 +01:00
if ( empty ( $conf -> global -> BANK_DISABLE_CHECK_DEPOSIT ) && ! empty ( $conf -> banque -> enabled ) && ( ! empty ( $conf -> facture -> enabled ) || ! empty ( $conf -> global -> MAIN_MENU_CHEQUE_DEPOSIT_ON )))
2013-02-24 21:16:36 +01:00
{
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank " , $langs -> trans ( " MenuChequeDeposits " ), 0 , $user -> rights -> banque -> cheque , '' , $mainmenu , 'checks' );
if ( preg_match ( '/checks/' , $leftmenu )) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /compta/paiement/cheque/card.php?leftmenu=checks_bis&action=new&mainmenu=bank " , $langs -> trans ( " NewChequeDeposit " ), 1 , $user -> rights -> banque -> cheque );
$newmenu -> add ( " /compta/paiement/cheque/list.php?leftmenu=checks_bis&mainmenu=bank " , $langs -> trans ( " List " ), 1 , $user -> rights -> banque -> cheque );
}
2013-02-24 21:16:36 +01:00
}
2018-12-15 18:21:37 +01:00
2018-12-15 19:20:30 +01:00
// Cash Control
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> takepos -> enabled ) || ! empty ( $conf -> cashdesk -> enabled ))
2018-12-15 19:20:30 +01:00
{
2020-01-25 14:23:23 +01:00
$permtomakecashfence = ( $user -> rights -> cashdesk -> run || $user -> rights -> takepos -> run );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /compta/cashcontrol/cashcontrol_list.php?action=list " , $langs -> trans ( " POS " ), 0 , $permtomakecashfence , '' , $mainmenu , 'cashcontrol' );
$newmenu -> add ( " /compta/cashcontrol/cashcontrol_card.php?action=create " , $langs -> trans ( " NewCashFence " ), 1 , $permtomakecashfence );
$newmenu -> add ( " /compta/cashcontrol/cashcontrol_list.php?action=list " , $langs -> trans ( " List " ), 1 , $permtomakecashfence );
2018-12-08 21:33:54 +01:00
}
2013-02-24 21:16:36 +01:00
}
/*
* Menu PRODUCTS - SERVICES
*/
if ( $mainmenu == 'products' )
{
// Products
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> product -> enabled ))
2013-02-24 21:16:36 +01:00
{
$newmenu -> add ( " /product/index.php?leftmenu=product&type=0 " , $langs -> trans ( " Products " ), 0 , $user -> rights -> produit -> lire , '' , $mainmenu , 'product' );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /product/card.php?leftmenu=product&action=create&type=0 " , $langs -> trans ( " NewProduct " ), 1 , $user -> rights -> produit -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /product/list.php?leftmenu=product&type=0 " , $langs -> trans ( " List " ), 1 , $user -> rights -> produit -> lire );
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> stock -> enabled ))
2013-02-24 21:16:36 +01:00
{
2019-03-22 12:42:23 +01:00
$newmenu -> add ( " /product/reassort.php?type=0 " , $langs -> trans ( " MenuStocks " ), 1 , $user -> rights -> produit -> lire && $user -> rights -> stock -> lire );
2013-02-24 21:16:36 +01:00
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> productbatch -> enabled ))
2013-02-24 21:16:36 +01:00
{
2015-04-12 17:08:14 +02:00
$langs -> load ( " stocks " );
$newmenu -> add ( " /product/reassortlot.php?type=0 " , $langs -> trans ( " StocksByLotSerial " ), 1 , $user -> rights -> produit -> lire && $user -> rights -> stock -> lire );
2016-08-08 20:31:03 +02:00
$newmenu -> add ( " /product/stock/productlot_list.php " , $langs -> trans ( " LotSerial " ), 1 , $user -> rights -> produit -> lire && $user -> rights -> stock -> lire );
2015-04-12 17:08:14 +02:00
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> variants -> enabled ))
2018-05-01 11:09:03 +02:00
{
$newmenu -> add ( " /variants/list.php " , $langs -> trans ( " VariantAttributes " ), 1 , $user -> rights -> produit -> lire );
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> propal -> enabled ) || ! empty ( $conf -> commande -> enabled ) || ! empty ( $conf -> facture -> enabled ) || ! empty ( $conf -> fournisseur -> enabled ) || ! empty ( $conf -> supplier_proposal -> enabled ))
2015-04-12 17:08:14 +02:00
{
2015-11-07 16:25:14 +01:00
$newmenu -> add ( " /product/stats/card.php?id=all&leftmenu=stats&type=0 " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> produit -> lire && $user -> rights -> propale -> lire );
2013-02-24 21:16:36 +01:00
}
2018-10-09 15:26:15 +02:00
// Categories
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-10-09 15:26:15 +02:00
{
$langs -> load ( " categories " );
$newmenu -> add ( " /categories/index.php?leftmenu=cat&type=0 " , $langs -> trans ( " Categories " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
}
2013-02-24 21:16:36 +01:00
}
// Services
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> service -> enabled ))
2013-02-24 21:16:36 +01:00
{
$newmenu -> add ( " /product/index.php?leftmenu=service&type=1 " , $langs -> trans ( " Services " ), 0 , $user -> rights -> service -> lire , '' , $mainmenu , 'service' );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /product/card.php?leftmenu=service&action=create&type=1 " , $langs -> trans ( " NewService " ), 1 , $user -> rights -> service -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /product/list.php?leftmenu=service&type=1 " , $langs -> trans ( " List " ), 1 , $user -> rights -> service -> lire );
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> propal -> enabled ) || ! empty ( $conf -> commande -> enabled ) || ! empty ( $conf -> facture -> enabled ) || ! empty ( $conf -> fournisseur -> enabled ) || ! empty ( $conf -> supplier_proposal -> enabled ))
2013-02-24 21:16:36 +01:00
{
2015-11-07 16:25:14 +01:00
$newmenu -> add ( " /product/stats/card.php?id=all&leftmenu=stats&type=1 " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> service -> lire && $user -> rights -> propale -> lire );
2013-02-24 21:16:36 +01:00
}
2018-10-09 15:26:15 +02:00
// Categories
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-10-09 15:26:15 +02:00
{
$langs -> load ( " categories " );
$newmenu -> add ( " /categories/index.php?leftmenu=cat&type=0 " , $langs -> trans ( " Categories " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
}
2013-02-24 21:16:36 +01:00
}
2014-11-23 12:39:53 +01:00
// Warehouse
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> stock -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " stocks " );
2014-11-23 12:39:53 +01:00
$newmenu -> add ( " /product/stock/index.php?leftmenu=stock " , $langs -> trans ( " Warehouses " ), 0 , $user -> rights -> stock -> lire , '' , $mainmenu , 'stock' );
$newmenu -> add ( " /product/stock/card.php?action=create " , $langs -> trans ( " MenuNewWarehouse " ), 1 , $user -> rights -> stock -> creer );
$newmenu -> add ( " /product/stock/list.php " , $langs -> trans ( " List " ), 1 , $user -> rights -> stock -> lire );
2018-10-24 03:50:18 +02:00
$newmenu -> add ( " /product/stock/movement_list.php " , $langs -> trans ( " Movements " ), 1 , $user -> rights -> stock -> mouvement -> lire );
2016-02-19 04:46:11 +01:00
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /product/stock/massstockmove.php " , $langs -> trans ( " MassStockTransferShort " ), 1 , $user -> rights -> stock -> mouvement -> creer );
if ( $conf -> supplier_order -> enabled ) $newmenu -> add ( " /product/stock/replenish.php " , $langs -> trans ( " Replenishment " ), 1 , $user -> rights -> stock -> mouvement -> creer && $user -> rights -> fournisseur -> lire );
$newmenu -> add ( " /product/stock/stockatdate.php " , $langs -> trans ( " StockAtDate " ), 1 , $user -> rights -> produit -> lire && $user -> rights -> stock -> lire && $conf -> global -> MAIN_FEATURES_LEVEL >= 2 );
2019-09-27 13:28:28 +02:00
2020-09-07 10:18:17 +02:00
// Categories for warehouses
if ( ! empty ( $conf -> categorie -> enabled ))
{
$newmenu -> add ( " /categories/index.php?leftmenu=stock&type=9 " , $langs -> trans ( " Categories " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
}
2013-02-24 21:16:36 +01:00
}
2017-04-29 21:53:01 +02:00
// Inventory
2017-05-06 22:28:07 +02:00
if ( $conf -> global -> MAIN_FEATURES_LEVEL >= 2 )
2017-04-29 21:53:01 +02:00
{
2020-09-07 10:18:17 +02:00
if ( ! empty ( $conf -> stock -> enabled ))
{
$langs -> load ( " stocks " );
2018-05-05 13:24:46 +02:00
if ( empty ( $conf -> global -> MAIN_USE_ADVANCED_PERMS ))
{
$newmenu -> add ( " /product/inventory/list.php?leftmenu=stock " , $langs -> trans ( " Inventory " ), 0 , $user -> rights -> stock -> lire , '' , $mainmenu , 'stock' );
$newmenu -> add ( " /product/inventory/card.php?action=create " , $langs -> trans ( " NewInventory " ), 1 , $user -> rights -> stock -> creer );
$newmenu -> add ( " /product/inventory/list.php " , $langs -> trans ( " List " ), 1 , $user -> rights -> stock -> lire );
2020-05-21 15:05:19 +02:00
} else {
2018-05-05 13:24:46 +02:00
$newmenu -> add ( " /product/inventory/list.php?leftmenu=stock " , $langs -> trans ( " Inventory " ), 0 , $user -> rights -> stock -> inventory_advance -> read , '' , $mainmenu , 'stock' );
$newmenu -> add ( " /product/inventory/card.php?action=create " , $langs -> trans ( " NewInventory " ), 1 , $user -> rights -> stock -> inventory_advance -> write );
$newmenu -> add ( " /product/inventory/list.php " , $langs -> trans ( " List " ), 1 , $user -> rights -> stock -> inventory_advance -> read );
}
2020-09-07 10:18:17 +02:00
}
2017-04-29 21:53:01 +02:00
}
2017-06-02 19:28:22 +02:00
2018-12-15 12:50:31 +01:00
// Shipments
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> expedition -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " sendings " );
$newmenu -> add ( " /expedition/index.php?leftmenu=sendings " , $langs -> trans ( " Shipments " ), 0 , $user -> rights -> expedition -> lire , '' , $mainmenu , 'sendings' );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /expedition/card.php?action=create2&leftmenu=sendings " , $langs -> trans ( " NewSending " ), 1 , $user -> rights -> expedition -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /expedition/list.php?leftmenu=sendings " , $langs -> trans ( " List " ), 1 , $user -> rights -> expedition -> lire );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " sendings " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /expedition/list.php?leftmenu=sendings&search_status=0 " , $langs -> trans ( " StatusSendingDraftShort " ), 2 , $user -> rights -> expedition -> lire );
$newmenu -> add ( " /expedition/list.php?leftmenu=sendings&search_status=1 " , $langs -> trans ( " StatusSendingValidatedShort " ), 2 , $user -> rights -> expedition -> lire );
$newmenu -> add ( " /expedition/list.php?leftmenu=sendings&search_status=2 " , $langs -> trans ( " StatusSendingProcessedShort " ), 2 , $user -> rights -> expedition -> lire );
}
2014-06-20 12:01:14 +02:00
$newmenu -> add ( " /expedition/stats/index.php?leftmenu=sendings " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> expedition -> lire );
2013-02-24 21:16:36 +01:00
}
2018-12-15 12:50:31 +01:00
2020-09-07 10:18:17 +02:00
// Receptions
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> reception -> enabled ))
2018-10-03 12:22:41 +02:00
{
$langs -> load ( " receptions " );
$newmenu -> add ( " /reception/index.php?leftmenu=receptions " , $langs -> trans ( " Receptions " ), 0 , $user -> rights -> reception -> lire , '' , $mainmenu , 'receptions' );
$newmenu -> add ( " /reception/card.php?action=create2&leftmenu=receptions " , $langs -> trans ( " NewReception " ), 1 , $user -> rights -> reception -> creer );
$newmenu -> add ( " /reception/list.php?leftmenu=receptions " , $langs -> trans ( " List " ), 1 , $user -> rights -> reception -> lire );
2020-04-15 15:01:00 +02:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " receptions " ) $newmenu -> add ( " /reception/list.php?leftmenu=receptions&search_status=0 " , $langs -> trans ( " StatusReceptionDraftShort " ), 2 , $user -> rights -> reception -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " receptions " ) $newmenu -> add ( " /reception/list.php?leftmenu=receptions&search_status=1 " , $langs -> trans ( " StatusReceptionValidatedShort " ), 2 , $user -> rights -> reception -> lire );
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " receptions " ) $newmenu -> add ( " /reception/list.php?leftmenu=receptions&search_status=2 " , $langs -> trans ( " StatusReceptionProcessedShort " ), 2 , $user -> rights -> reception -> lire );
2018-10-03 12:22:41 +02:00
$newmenu -> add ( " /reception/stats/index.php?leftmenu=receptions " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> reception -> lire );
}
2013-02-24 21:16:36 +01:00
}
2019-02-26 19:27:04 +01:00
/*
* Menu PRODUCTS - SERVICES MRP
*/
if ( $mainmenu == 'mrp' )
{
2020-09-07 10:18:17 +02:00
// BOM
if ( ! empty ( $conf -> bom -> enabled ) || ! empty ( $conf -> mrp -> enabled ))
{
$langs -> load ( " mrp " );
$newmenu -> add ( " " , $langs -> trans ( " MenuBOM " ), 0 , $user -> rights -> bom -> read , '' , $mainmenu , 'bom' );
$newmenu -> add ( " /bom/bom_card.php?leftmenu=bom&action=create " , $langs -> trans ( " NewBOM " ), 1 , $user -> rights -> bom -> write , '' , $mainmenu , 'bom' );
$newmenu -> add ( " /bom/bom_list.php?leftmenu=bom " , $langs -> trans ( " List " ), 1 , $user -> rights -> bom -> read , '' , $mainmenu , 'bom' );
}
if ( ! empty ( $conf -> mrp -> enabled ))
{
$langs -> load ( " mrp " );
$newmenu -> add ( " " , $langs -> trans ( " MenuMRP " ), 0 , $user -> rights -> mrp -> read , '' , $mainmenu , 'mo' );
$newmenu -> add ( " /mrp/mo_card.php?leftmenu=mo&action=create " , $langs -> trans ( " NewMO " ), 1 , $user -> rights -> mrp -> write , '' , $mainmenu , 'mo' );
$newmenu -> add ( " /mrp/mo_list.php?leftmenu=mo " , $langs -> trans ( " List " ), 1 , $user -> rights -> mrp -> read , '' , $mainmenu , 'mo' );
}
2019-02-26 19:27:04 +01:00
}
2013-02-24 21:16:36 +01:00
/*
* Menu PROJECTS
*/
if ( $mainmenu == 'project' )
{
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> projet -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " projects " );
2017-06-02 19:28:22 +02:00
2019-01-27 11:55:16 +01:00
$search_project_user = GETPOST ( 'search_project_user' , 'int' );
2017-06-02 19:28:22 +02:00
2018-11-20 21:40:37 +01:00
$tmpentry = array (
2020-09-07 10:18:17 +02:00
'enabled' => ( ! empty ( $conf -> projet -> enabled )),
'perms' => ( ! empty ( $user -> rights -> projet -> lire )),
'module' => 'projet'
);
2019-11-13 19:35:02 +01:00
$showmode = isVisibleToUserType ( $type_user , $tmpentry , $listofmodulesforexternal );
2018-10-01 18:56:47 +02:00
2019-11-13 19:35:02 +01:00
$titleboth = $langs -> trans ( " LeadsOrProjects " );
$titlenew = $langs -> trans ( " NewLeadOrProject " ); // Leads and opportunities by default
2018-10-01 18:56:47 +02:00
if ( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 0 )
{
2019-11-13 19:35:02 +01:00
$titleboth = $langs -> trans ( " Projects " );
2018-10-01 18:56:47 +02:00
$titlenew = $langs -> trans ( " NewProject " );
}
if ( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 2 ) { // 2 = leads only
2019-11-13 19:35:02 +01:00
$titleboth = $langs -> trans ( " Leads " );
2018-10-01 18:56:47 +02:00
$titlenew = $langs -> trans ( " NewLead " );
}
2018-10-26 14:38:26 +02:00
// Project assigned to user
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /projet/index.php?leftmenu=projects " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $titleboth , 0 , $user -> rights -> projet -> lire , '' , $mainmenu , 'projects' );
$newmenu -> add ( " /projet/card.php?leftmenu=projects&action=create " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $titlenew , 1 , $user -> rights -> projet -> creer );
2018-10-01 18:56:47 +02:00
if ( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 0 )
{
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /projet/list.php?leftmenu=projets " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ) . '&search_status=99' , $langs -> trans ( " List " ), 1 , $showmode , '' , 'project' , 'list' );
2020-05-21 15:05:19 +02:00
} elseif ( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 1 )
2018-10-01 18:56:47 +02:00
{
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /projet/list.php?leftmenu=projets " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $langs -> trans ( " List " ), 1 , $showmode , '' , 'project' , 'list' );
2020-02-19 14:31:32 +01:00
$newmenu -> add ( '/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99&contextpage=lead' , $langs -> trans ( " ListOpenLeads " ), 2 , $showmode );
2018-10-01 18:56:47 +02:00
$newmenu -> add ( '/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project' , $langs -> trans ( " ListOpenProjects " ), 2 , $showmode );
2020-05-21 15:05:19 +02:00
} elseif ( $conf -> global -> PROJECT_USE_OPPORTUNITIES == 2 ) { // 2 = leads only
2020-02-19 14:31:32 +01:00
$newmenu -> add ( '/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99' , $langs -> trans ( " List " ), 2 , $showmode );
2018-10-01 18:56:47 +02:00
}
2013-02-24 21:16:36 +01:00
2017-03-14 14:06:55 +01:00
$newmenu -> add ( " /projet/stats/index.php?leftmenu=projects " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> projet -> lire );
2017-06-02 19:28:22 +02:00
2018-10-26 14:38:26 +02:00
// Categories
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2018-10-26 14:38:26 +02:00
{
$langs -> load ( " categories " );
$newmenu -> add ( " /categories/index.php?leftmenu=cat&type=6 " , $langs -> trans ( " Categories " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
}
2015-02-02 13:27:55 +01:00
if ( empty ( $conf -> global -> PROJECT_HIDE_TASKS ))
{
// Project affected to user
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /projet/activity/index.php?leftmenu=tasks " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $langs -> trans ( " Activities " ), 0 , $user -> rights -> projet -> lire , '' , 'project' , 'tasks' );
2017-03-14 13:49:04 +01:00
$newmenu -> add ( " /projet/tasks.php?leftmenu=tasks&action=create " , $langs -> trans ( " NewTask " ), 1 , $user -> rights -> projet -> creer );
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /projet/tasks/list.php?leftmenu=tasks " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $langs -> trans ( " List " ), 1 , $user -> rights -> projet -> lire );
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /projet/tasks/stats/index.php?leftmenu=projects " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> projet -> lire );
2015-02-02 13:27:55 +01:00
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /projet/activity/perweek.php?leftmenu=tasks " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $langs -> trans ( " NewTimeSpent " ), 0 , $user -> rights -> projet -> lire );
2015-02-02 13:27:55 +01:00
}
2013-02-24 21:16:36 +01:00
}
}
2013-07-07 03:26:51 +02:00
2013-05-04 01:22:09 +02:00
/*
* Menu HRM
*/
if ( $mainmenu == 'hrm' )
{
2015-11-17 22:51:34 +01:00
// HRM module
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> hrm -> enabled ))
2015-11-17 22:51:34 +01:00
{
$langs -> load ( " hrm " );
2019-05-19 02:15:01 +02:00
$newmenu -> add ( " /user/list.php?mainmenu=hrm&leftmenu=hrm&mode=employee " , $langs -> trans ( " Employees " ), 0 , $user -> rights -> hrm -> employee -> read , '' , $mainmenu , 'hrm' );
$newmenu -> add ( " /user/card.php?mainmenu=hrm&leftmenu=hrm&action=create&employee=1 " , $langs -> trans ( " NewEmployee " ), 1 , $user -> rights -> hrm -> employee -> write );
$newmenu -> add ( " /user/list.php?mainmenu=hrm&leftmenu=hrm&mode=employee&contextpage=employeelist " , $langs -> trans ( " List " ), 1 , $user -> rights -> hrm -> employee -> read );
2015-11-17 22:51:34 +01:00
}
2015-06-27 11:45:23 +02:00
// Leave/Holiday/Vacation module
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> holiday -> enabled ))
2013-05-04 01:22:09 +02:00
{
2020-09-07 10:18:17 +02:00
// Load translation files required by the page
$langs -> loadLangs ( array ( " holiday " , " trips " ));
2013-07-07 03:26:51 +02:00
2019-05-19 02:15:01 +02:00
$newmenu -> add ( " /holiday/list.php?mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " CPTitreMenu " ), 0 , $user -> rights -> holiday -> read , '' , $mainmenu , 'hrm' );
$newmenu -> add ( " /holiday/card.php?mainmenu=hrm&leftmenu=holiday&action=request " , $langs -> trans ( " New " ), 1 , $user -> rights -> holiday -> write );
$newmenu -> add ( " /holiday/list.php?mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " List " ), 1 , $user -> rights -> holiday -> read );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " hrm " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /holiday/list.php?search_statut=1&mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " DraftCP " ), 2 , $user -> rights -> holiday -> read );
$newmenu -> add ( " /holiday/list.php?search_statut=2&mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " ToReviewCP " ), 2 , $user -> rights -> holiday -> read );
$newmenu -> add ( " /holiday/list.php?search_statut=3&mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " ApprovedCP " ), 2 , $user -> rights -> holiday -> read );
$newmenu -> add ( " /holiday/list.php?search_statut=4&mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " CancelCP " ), 2 , $user -> rights -> holiday -> read );
$newmenu -> add ( " /holiday/list.php?search_statut=5&mainmenu=hrm&leftmenu=hrm " , $langs -> trans ( " RefuseCP " ), 2 , $user -> rights -> holiday -> read );
}
2019-05-19 02:15:01 +02:00
$newmenu -> add ( " /holiday/define_holiday.php?mainmenu=hrm&action=request " , $langs -> trans ( " MenuConfCP " ), 1 , $user -> rights -> holiday -> read );
2019-05-18 17:12:25 +02:00
$newmenu -> add ( " /holiday/month_report.php?mainmenu=hrm&leftmenu=holiday " , $langs -> trans ( " MenuReportMonth " ), 1 , $user -> rights -> holiday -> read_all );
$newmenu -> add ( " /holiday/view_log.php?mainmenu=hrm&leftmenu=holiday&action=request " , $langs -> trans ( " MenuLogCP " ), 1 , $user -> rights -> holiday -> define_holiday );
2014-03-17 14:30:55 +01:00
}
2013-07-07 03:26:51 +02:00
2015-06-27 13:01:44 +02:00
// Trips and expenses (old module)
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> deplacement -> enabled ))
2014-03-17 14:30:55 +01:00
{
$langs -> load ( " trips " );
2014-03-18 00:20:39 +01:00
$newmenu -> add ( " /compta/deplacement/index.php?leftmenu=tripsandexpenses&mainmenu=hrm " , $langs -> trans ( " TripsAndExpenses " ), 0 , $user -> rights -> deplacement -> lire , '' , $mainmenu , 'tripsandexpenses' );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses&mainmenu=hrm " , $langs -> trans ( " New " ), 1 , $user -> rights -> deplacement -> creer );
2014-03-18 00:20:39 +01:00
$newmenu -> add ( " /compta/deplacement/list.php?leftmenu=tripsandexpenses&mainmenu=hrm " , $langs -> trans ( " List " ), 1 , $user -> rights -> deplacement -> lire );
$newmenu -> add ( " /compta/deplacement/stats/index.php?leftmenu=tripsandexpenses&mainmenu=hrm " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> deplacement -> lire );
2013-05-04 01:22:09 +02:00
}
2016-08-30 21:43:17 +02:00
// Expense report
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> expensereport -> enabled ))
2016-08-30 21:43:17 +02:00
{
$langs -> load ( " trips " );
$newmenu -> add ( " /expensereport/index.php?leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " TripsAndExpenses " ), 0 , $user -> rights -> expensereport -> lire , '' , $mainmenu , 'expensereport' );
$newmenu -> add ( " /expensereport/card.php?action=create&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " New " ), 1 , $user -> rights -> expensereport -> creer );
$newmenu -> add ( " /expensereport/list.php?leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " List " ), 1 , $user -> rights -> expensereport -> lire );
2019-11-13 19:35:02 +01:00
if ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == " expensereport " ) {
2020-09-07 10:18:17 +02:00
$newmenu -> add ( " /expensereport/list.php?search_status=0&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Draft " ), 2 , $user -> rights -> expensereport -> lire );
$newmenu -> add ( " /expensereport/list.php?search_status=2&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Validated " ), 2 , $user -> rights -> expensereport -> lire );
$newmenu -> add ( " /expensereport/list.php?search_status=5&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Approved " ), 2 , $user -> rights -> expensereport -> lire );
$newmenu -> add ( " /expensereport/list.php?search_status=6&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Paid " ), 2 , $user -> rights -> expensereport -> lire );
$newmenu -> add ( " /expensereport/list.php?search_status=4&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Canceled " ), 2 , $user -> rights -> expensereport -> lire );
$newmenu -> add ( " /expensereport/list.php?search_status=99&leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Refused " ), 2 , $user -> rights -> expensereport -> lire );
}
2016-08-30 21:43:17 +02:00
$newmenu -> add ( " /expensereport/stats/index.php?leftmenu=expensereport&mainmenu=hrm " , $langs -> trans ( " Statistics " ), 1 , $user -> rights -> expensereport -> lire );
}
2017-09-18 13:15:24 +02:00
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> projet -> enabled ))
2017-09-18 13:15:24 +02:00
{
if ( empty ( $conf -> global -> PROJECT_HIDE_TASKS ))
{
$langs -> load ( " projects " );
2019-01-27 11:55:16 +01:00
$search_project_user = GETPOST ( 'search_project_user' , 'int' );
2017-09-18 13:15:24 +02:00
2019-11-13 19:35:02 +01:00
$newmenu -> add ( " /projet/activity/perweek.php?leftmenu=tasks " . ( $search_project_user ? '&search_project_user=' . $search_project_user : '' ), $langs -> trans ( " NewTimeSpent " ), 0 , $user -> rights -> projet -> lire );
2017-09-18 13:15:24 +02:00
}
}
2013-05-04 01:22:09 +02:00
}
2013-02-24 21:16:36 +01:00
/*
* Menu TOOLS
*/
if ( $mainmenu == 'tools' )
{
2018-04-01 11:43:39 +02:00
if ( empty ( $user -> socid )) // limit to internal users
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " mails " );
2018-04-01 11:43:39 +02:00
$newmenu -> add ( " /admin/mails_templates.php?leftmenu=email_templates " , $langs -> trans ( " EMailTemplates " ), 0 , 1 , '' , $mainmenu , 'email_templates' );
}
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> mailing -> enabled ))
2013-02-24 21:16:36 +01:00
{
$newmenu -> add ( " /comm/mailing/index.php?leftmenu=mailing " , $langs -> trans ( " EMailings " ), 0 , $user -> rights -> mailing -> lire , '' , $mainmenu , 'mailing' );
2014-09-18 21:18:25 +02:00
$newmenu -> add ( " /comm/mailing/card.php?leftmenu=mailing&action=create " , $langs -> trans ( " NewMailing " ), 1 , $user -> rights -> mailing -> creer );
2014-09-18 20:33:37 +02:00
$newmenu -> add ( " /comm/mailing/list.php?leftmenu=mailing " , $langs -> trans ( " List " ), 1 , $user -> rights -> mailing -> lire );
2013-02-24 21:16:36 +01:00
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> export -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " exports " );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /exports/index.php?leftmenu=export " , $langs -> trans ( " FormatedExport " ), 0 , $user -> rights -> export -> lire , '' , $mainmenu , 'export' );
$newmenu -> add ( " /exports/export.php?leftmenu=export " , $langs -> trans ( " NewExport " ), 1 , $user -> rights -> export -> creer );
2013-02-24 21:16:36 +01:00
//$newmenu->add("/exports/export.php?leftmenu=export",$langs->trans("List"),1, $user->rights->export->lire);
}
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> import -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " exports " );
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /imports/index.php?leftmenu=import " , $langs -> trans ( " FormatedImport " ), 0 , $user -> rights -> import -> run , '' , $mainmenu , 'import' );
$newmenu -> add ( " /imports/import.php?leftmenu=import " , $langs -> trans ( " NewImport " ), 1 , $user -> rights -> import -> run );
2013-02-24 21:16:36 +01:00
}
}
/*
* Menu MEMBERS
*/
if ( $mainmenu == 'members' )
{
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> adherent -> enabled ))
2013-02-24 21:16:36 +01:00
{
2018-09-11 17:30:43 +02:00
// Load translation files required by the page
2020-09-07 10:18:17 +02:00
$langs -> loadLangs ( array ( " members " , " compta " ));
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /adherents/index.php?leftmenu=members&mainmenu=members " , $langs -> trans ( " Members " ), 0 , $user -> rights -> adherent -> lire , '' , $mainmenu , 'members' );
$newmenu -> add ( " /adherents/card.php?leftmenu=members&action=create " , $langs -> trans ( " NewMember " ), 1 , $user -> rights -> adherent -> creer );
$newmenu -> add ( " /adherents/list.php?leftmenu=members " , $langs -> trans ( " List " ), 1 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=-1 " , $langs -> trans ( " MenuMembersToValidate " ), 2 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=1 " , $langs -> trans ( " MenuMembersValidated " ), 2 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=1&filter=uptodate " , $langs -> trans ( " MenuMembersUpToDate " ), 2 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=1&filter=outofdate " , $langs -> trans ( " MenuMembersNotUpToDate " ), 2 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=0 " , $langs -> trans ( " MenuMembersResiliated " ), 2 , $user -> rights -> adherent -> lire );
$newmenu -> add ( " /adherents/stats/index.php?leftmenu=members " , $langs -> trans ( " MenuMembersStats " ), 1 , $user -> rights -> adherent -> lire );
2013-02-24 21:16:36 +01:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /adherents/cartes/carte.php?leftmenu=export " , $langs -> trans ( " MembersCards " ), 1 , $user -> rights -> adherent -> export );
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> global -> MEMBER_LINK_TO_HTPASSWDFILE ) && ( $usemenuhider || empty ( $leftmenu ) || $leftmenu == 'none' || $leftmenu == " members " || $leftmenu == " export " )) $newmenu -> add ( " /adherents/htpasswd.php?leftmenu=export " , $langs -> trans ( " Filehtpasswd " ), 1 , $user -> rights -> adherent -> export );
2013-02-24 21:16:36 +01:00
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> categorie -> enabled ))
2013-02-24 21:16:36 +01:00
{
$langs -> load ( " categories " );
2018-10-09 15:26:15 +02:00
$newmenu -> add ( " /categories/index.php?leftmenu=cat&type=3 " , $langs -> trans ( " Categories " ), 1 , $user -> rights -> categorie -> lire , '' , $mainmenu , 'cat' );
2013-02-24 21:16:36 +01:00
}
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /adherents/index.php?leftmenu=members&mainmenu=members " , $langs -> trans ( " Subscriptions " ), 0 , $user -> rights -> adherent -> cotisation -> lire );
$newmenu -> add ( " /adherents/list.php?leftmenu=members&statut=-1,1&mainmenu=members " , $langs -> trans ( " NewSubscription " ), 1 , $user -> rights -> adherent -> cotisation -> creer );
$newmenu -> add ( " /adherents/subscription/list.php?leftmenu=members " , $langs -> trans ( " List " ), 1 , $user -> rights -> adherent -> cotisation -> lire );
$newmenu -> add ( " /adherents/stats/index.php?leftmenu=members " , $langs -> trans ( " MenuMembersStats " ), 1 , $user -> rights -> adherent -> lire );
2018-10-09 15:26:15 +02:00
2016-11-03 16:37:24 +01:00
//$newmenu->add("/adherents/index.php?leftmenu=export&mainmenu=members",$langs->trans("Tools"),0,$user->rights->adherent->export, '', $mainmenu, 'export');
2016-11-07 10:14:04 +01:00
//if (! empty($conf->export->enabled) && ($usemenuhider || empty($leftmenu) || $leftmenu=="export")) $newmenu->add("/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);
2013-02-24 21:16:36 +01:00
// Type
2019-01-27 11:55:16 +01:00
$newmenu -> add ( " /adherents/type.php?leftmenu=setup&mainmenu=members " , $langs -> trans ( " MembersTypes " ), 0 , $user -> rights -> adherent -> configurer , '' , $mainmenu , 'setup' );
$newmenu -> add ( " /adherents/type.php?leftmenu=setup&mainmenu=members&action=create " , $langs -> trans ( " New " ), 1 , $user -> rights -> adherent -> configurer );
$newmenu -> add ( " /adherents/type.php?leftmenu=setup&mainmenu=members " , $langs -> trans ( " List " ), 1 , $user -> rights -> adherent -> configurer );
2013-02-24 21:16:36 +01:00
}
}
// Add personalized menus and modules menus
2016-02-16 12:46:39 +01:00
//var_dump($newmenu->liste); //
2019-01-27 11:55:16 +01:00
$menuArbo = new Menubase ( $db , 'eldy' );
2019-11-13 19:35:02 +01:00
$newmenu = $menuArbo -> menuLeftCharger ( $newmenu , $mainmenu , $leftmenu , ( empty ( $user -> socid ) ? 0 : 1 ), 'eldy' , $tabMenu );
2016-02-16 12:46:39 +01:00
//var_dump($newmenu->liste); //
2016-08-29 10:32:00 +02:00
2014-08-26 09:49:15 +02:00
if ( ! empty ( $conf -> ftp -> enabled ) && $mainmenu == 'ftp' ) // Entry for FTP
2013-05-03 00:15:02 +02:00
{
2019-11-13 19:35:02 +01:00
$MAXFTP = 20 ;
$i = 1 ;
2013-05-03 00:15:02 +02:00
while ( $i <= $MAXFTP )
{
2019-11-13 19:35:02 +01:00
$paramkey = 'FTP_NAME_' . $i ;
2013-05-03 00:15:02 +02:00
//print $paramkey;
2019-11-13 19:35:02 +01:00
if ( ! empty ( $conf -> global -> $paramkey ))
2013-05-03 00:15:02 +02:00
{
2019-11-13 19:35:02 +01:00
$link = " /ftp/index.php?idmenu= " . $_SESSION [ " idmenu " ] . " &numero_ftp= " . $i ;
2013-06-05 21:55:51 +02:00
2019-01-27 11:55:16 +01:00
$newmenu -> add ( $link , dol_trunc ( $conf -> global -> $paramkey , 24 ));
2013-05-03 00:15:02 +02:00
}
$i ++ ;
}
2013-06-05 21:55:51 +02:00
}
2013-04-15 13:11:29 +02:00
}
2013-06-05 21:55:51 +02:00
2018-12-10 17:50:58 +01:00
//var_dump($tabMenu); //
//var_dump($newmenu->liste);
2013-04-15 13:11:29 +02:00
// Build final $menu_array = $menu_array_before +$newmenu->liste + $menu_array_after
2013-02-24 21:16:36 +01:00
//var_dump($menu_array_before);exit;
//var_dump($menu_array_after);exit;
2019-11-13 19:35:02 +01:00
$menu_array = $newmenu -> liste ;
if ( is_array ( $menu_array_before )) $menu_array = array_merge ( $menu_array_before , $menu_array );
if ( is_array ( $menu_array_after )) $menu_array = array_merge ( $menu_array , $menu_array_after );
2013-02-24 21:16:36 +01:00
//var_dump($menu_array);exit;
2019-11-13 19:35:02 +01:00
if ( ! is_array ( $menu_array )) return 0 ;
2013-02-24 21:16:36 +01:00
2015-11-15 18:23:42 +01:00
// TODO Use the position property in menu_array to reorder the $menu_array
//var_dump($menu_array);
/* $new_menu_array = array ();
$level = 0 ; $cusor = 0 ; $position = 0 ;
$nbentry = count ( $menu_array );
while ( findNextEntryForLevel ( $menu_array , $cursor , $position , $level ))
{
2016-08-29 10:32:00 +02:00
2015-11-15 18:23:42 +01:00
$cursor ++ ;
} */
2013-02-24 21:16:36 +01:00
// Show menu
2019-11-13 19:35:02 +01:00
$invert = empty ( $conf -> global -> MAIN_MENU_INVERT ) ? " " : " invert " ;
2013-03-22 16:40:35 +01:00
if ( empty ( $noout ))
2013-02-24 21:16:36 +01:00
{
2019-11-13 19:35:02 +01:00
$altok = 0 ; $blockvmenuopened = false ; $lastlevel0 = '' ;
$num = count ( $menu_array );
2017-06-10 16:13:37 +02:00
for ( $i = 0 ; $i < $num ; $i ++ ) // Loop on each menu entry
2013-02-24 21:16:36 +01:00
{
2019-11-13 19:35:02 +01:00
$showmenu = true ;
if ( ! empty ( $conf -> global -> MAIN_MENU_HIDE_UNAUTHORIZED ) && empty ( $menu_array [ $i ][ 'enabled' ])) $showmenu = false ;
2013-03-24 03:51:49 +01:00
2017-06-10 16:13:37 +02:00
// Begin of new left menu block
2013-03-22 16:40:35 +01:00
if ( empty ( $menu_array [ $i ][ 'level' ]) && $showmenu )
2013-02-24 21:16:36 +01:00
{
2018-04-06 14:04:52 +02:00
$altok ++ ;
2019-11-13 19:35:02 +01:00
$blockvmenuopened = true ;
$lastopened = true ;
for ( $j = ( $i + 1 ); $j < $num ; $j ++ )
2016-06-10 18:41:10 +02:00
{
2020-09-07 10:18:17 +02:00
if ( empty ( $menu_array [ $j ][ 'level' ])) $lastopened = false ;
2016-06-10 18:41:10 +02:00
}
2015-09-22 11:24:31 +02:00
if ( $altok % 2 == 0 )
2013-03-22 16:40:35 +01:00
{
2019-11-13 19:35:02 +01:00
print '<div class="blockvmenu blockvmenuimpair' . $invert . ( $lastopened ? ' blockvmenulast' : '' ) . ( $altok == 1 ? ' blockvmenufirst' : '' ) . '">' . " \n " ;
2020-05-21 15:05:19 +02:00
} else {
2019-11-13 19:35:02 +01:00
print '<div class="blockvmenu blockvmenupair' . $invert . ( $lastopened ? ' blockvmenulast' : '' ) . ( $altok == 1 ? ' blockvmenufirst' : '' ) . '">' . " \n " ;
2013-03-22 16:40:35 +01:00
}
2013-02-24 21:16:36 +01:00
}
2013-03-24 03:51:49 +01:00
2017-06-10 16:13:37 +02:00
// Add tabulation
2019-11-13 19:35:02 +01:00
$tabstring = '' ;
$tabul = ( $menu_array [ $i ][ 'level' ] - 1 );
2013-03-22 16:40:35 +01:00
if ( $tabul > 0 )
2013-02-24 21:16:36 +01:00
{
2019-11-13 19:35:02 +01:00
for ( $j = 0 ; $j < $tabul ; $j ++ )
2013-03-22 16:40:35 +01:00
{
2019-11-13 19:35:02 +01:00
$tabstring .= ' ' ;
2013-03-22 16:40:35 +01:00
}
2013-02-24 21:16:36 +01:00
}
2013-03-24 03:51:49 +01:00
2017-12-09 15:35:01 +01:00
// $menu_array[$i]['url'] can be a relative url, a full external url. We try substitution
2019-12-19 13:41:43 +01:00
2017-12-09 15:35:01 +01:00
$menu_array [ $i ][ 'url' ] = make_substitutions ( $menu_array [ $i ][ 'url' ], $substitarray );
2016-08-29 10:32:00 +02:00
2018-04-06 14:04:52 +02:00
$url = $shorturl = $shorturlwithoutparam = $menu_array [ $i ][ 'url' ];
2019-11-13 19:35:02 +01:00
if ( ! preg_match ( " /^(http: \ / \ /|https: \ / \ /)/i " , $menu_array [ $i ][ 'url' ]))
2016-06-29 14:09:18 +02:00
{
2020-09-07 10:18:17 +02:00
$tmp = explode ( '?' , $menu_array [ $i ][ 'url' ], 2 );
$url = $shorturl = $tmp [ 0 ];
$param = ( isset ( $tmp [ 1 ]) ? $tmp [ 1 ] : '' ); // params in url of the menu link
// Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.
if (( ! preg_match ( '/mainmenu/i' , $param )) && ( ! preg_match ( '/leftmenu/i' , $param )) && ! empty ( $menu_array [ $i ][ 'mainmenu' ]))
{
$param .= ( $param ? '&' : '' ) . 'mainmenu=' . $menu_array [ $i ][ 'mainmenu' ] . '&leftmenu=' ;
}
if (( ! preg_match ( '/mainmenu/i' , $param )) && ( ! preg_match ( '/leftmenu/i' , $param )) && empty ( $menu_array [ $i ][ 'mainmenu' ]))
{
$param .= ( $param ? '&' : '' ) . 'leftmenu=' ;
}
//$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad
$url = dol_buildpath ( $url , 1 ) . ( $param ? '?' . $param : '' );
$shorturlwithoutparam = $shorturl ;
$shorturl = $shorturl . ( $param ? '?' . $param : '' );
2016-06-29 14:09:18 +02:00
}
2016-08-29 10:32:00 +02:00
2016-02-16 12:46:39 +01:00
print '<!-- Process menu entry with mainmenu=' . $menu_array [ $i ][ 'mainmenu' ] . ', leftmenu=' . $menu_array [ $i ][ 'leftmenu' ] . ', level=' . $menu_array [ $i ][ 'level' ] . ' enabled=' . $menu_array [ $i ][ 'enabled' ] . ', position=' . $menu_array [ $i ][ 'position' ] . ' -->' . " \n " ;
2013-03-24 03:51:49 +01:00
2017-06-10 16:13:37 +02:00
// Menu level 0
2013-03-22 16:40:35 +01:00
if ( $menu_array [ $i ][ 'level' ] == 0 )
2013-02-24 21:16:36 +01:00
{
2017-06-10 16:13:37 +02:00
if ( $menu_array [ $i ][ 'enabled' ]) // Enabled so visible
2013-03-22 16:40:35 +01:00
{
2018-04-06 14:04:52 +02:00
print '<div class="menu_titre">' . $tabstring ;
2020-02-18 12:01:19 +01:00
if ( $shorturlwithoutparam ) print '<a class="vmenu" title="' . dol_escape_htmltag ( $menu_array [ $i ][ 'titre' ]) . '" href="' . $url . '"' . ( $menu_array [ $i ][ 'target' ] ? ' target="' . $menu_array [ $i ][ 'target' ] . '"' : '' ) . '>' ;
2018-04-06 14:04:52 +02:00
else print '<span class="vmenu">' ;
2019-11-13 19:35:02 +01:00
print ( $menu_array [ $i ][ 'prefix' ] ? $menu_array [ $i ][ 'prefix' ] : '' ) . $menu_array [ $i ][ 'titre' ];
2018-04-06 14:04:52 +02:00
if ( $shorturlwithoutparam ) print '</a>' ;
else print '</span>' ;
print '</div>' . " \n " ;
2019-11-13 19:35:02 +01:00
$lastlevel0 = 'enabled' ;
2020-05-21 15:05:19 +02:00
} elseif ( $showmenu ) // Not enabled but visible (so greyed)
2013-03-22 16:40:35 +01:00
{
print '<div class="menu_titre">' . $tabstring . '<font class="vmenudisabled">' . $menu_array [ $i ][ 'titre' ] . '</font></div>' . " \n " ;
2019-11-13 19:35:02 +01:00
$lastlevel0 = 'greyed' ;
2020-05-21 15:05:19 +02:00
} else {
2020-09-07 10:18:17 +02:00
$lastlevel0 = 'hidden' ;
2013-03-22 16:40:35 +01:00
}
if ( $showmenu )
2017-06-10 16:13:37 +02:00
{
2013-03-22 16:40:35 +01:00
print '<div class="menu_top"></div>' . " \n " ;
2017-06-10 16:13:37 +02:00
}
2013-02-24 21:16:36 +01:00
}
2017-12-09 15:35:01 +01:00
2017-06-10 16:13:37 +02:00
// Menu level > 0
2013-03-22 16:40:35 +01:00
if ( $menu_array [ $i ][ 'level' ] > 0 )
2013-02-24 21:16:36 +01:00
{
2017-06-13 15:57:30 +02:00
$cssmenu = '' ;
2019-01-27 11:55:16 +01:00
if ( $menu_array [ $i ][ 'url' ]) $cssmenu = ' menu_contenu' . dol_string_nospecial ( preg_replace ( '/\.php.*$/' , '' , $menu_array [ $i ][ 'url' ]));
2017-06-13 15:57:30 +02:00
2017-06-10 16:13:37 +02:00
if ( $menu_array [ $i ][ 'enabled' ] && $lastlevel0 == 'enabled' ) // Enabled so visible, except if parent was not enabled.
2013-03-22 16:40:35 +01:00
{
2017-06-13 15:57:30 +02:00
print '<div class="menu_contenu' . $cssmenu . '">' . $tabstring ;
2020-02-18 12:01:19 +01:00
if ( $shorturlwithoutparam ) print '<a class="vsmenu" title="' . dol_escape_htmltag ( $menu_array [ $i ][ 'titre' ]) . '" href="' . $url . '"' . ( $menu_array [ $i ][ 'target' ] ? ' target="' . $menu_array [ $i ][ 'target' ] . '"' : '' ) . '>' ;
2015-05-04 11:41:30 +02:00
else print '<span class="vsmenu">' ;
2013-03-22 16:40:35 +01:00
print $menu_array [ $i ][ 'titre' ];
2018-04-06 14:04:52 +02:00
if ( $shorturlwithoutparam ) print '</a>' ;
2015-05-04 11:41:30 +02:00
else print '</span>' ;
2013-03-22 16:40:35 +01:00
// If title is not pure text and contains a table, no carriage return added
2019-11-13 19:35:02 +01:00
if ( ! strstr ( $menu_array [ $i ][ 'titre' ], '<table' )) print '<br>' ;
2013-03-22 16:40:35 +01:00
print '</div>' . " \n " ;
2020-05-21 15:05:19 +02:00
} elseif ( $showmenu && $lastlevel0 == 'enabled' ) // Not enabled but visible (so greyed), except if parent was not enabled.
2013-03-22 16:40:35 +01:00
{
2017-06-13 15:57:30 +02:00
print '<div class="menu_contenu' . $cssmenu . '">' . $tabstring . '<font class="vsmenudisabled vsmenudisabledmargin">' . $menu_array [ $i ][ 'titre' ] . '</font><br></div>' . " \n " ;
2013-03-22 16:40:35 +01:00
}
2013-02-24 21:16:36 +01:00
}
2013-03-24 03:51:49 +01:00
2013-06-14 19:43:45 +02:00
// If next is a new block or if there is nothing after
2019-11-13 19:35:02 +01:00
if ( empty ( $menu_array [ $i + 1 ][ 'level' ])) // End menu block
2013-02-24 21:16:36 +01:00
{
2013-03-22 16:40:35 +01:00
if ( $showmenu )
print '<div class="menu_end"></div>' . " \n " ;
2019-11-13 19:35:02 +01:00
if ( $blockvmenuopened ) { print '</div>' . " \n " ; $blockvmenuopened = false ; }
2013-02-24 21:16:36 +01:00
}
}
2016-08-29 10:32:00 +02:00
2019-11-13 19:35:02 +01:00
if ( $altok ) print '<div class="blockvmenuend"></div>' ; // End menu block
2013-02-24 21:16:36 +01:00
}
2013-03-24 03:51:49 +01:00
2013-02-24 21:16:36 +01:00
return count ( $menu_array );
2010-10-02 23:31:14 +02:00
}