34require_once DOL_DOCUMENT_ROOT.
'/core/class/menubase.class.php';
52 global $dolibarr_main_db_name;
54 $mainmenu = (empty($_SESSION[
"mainmenu"]) ?
'' : $_SESSION[
"mainmenu"]);
55 $leftmenu = (empty($_SESSION[
"leftmenu"]) ?
'' : $_SESSION[
"leftmenu"]);
58 $listofmodulesforexternal = explode(
',',
getDolGlobalString(
'MAIN_MODULES_FOR_EXTERNAL'));
60 $substitarray = getCommonSubstitutionArray($langs, 0,
null,
null, array(
'system',
'mycompany',
'date',
'user'));
66 if ($mode !=
'jmobile' && $mode !=
'topnb' && $usemenuhider && !
getDolGlobalString(
'MAIN_OPTIMIZEFORTEXTBROWSER')) {
68 $classname =
'class="tmenu menuhider nohover"';
71 $menu->add(
'#', (
getDolGlobalInt(
'THEME_TOPMENU_DISABLE_IMAGE') == 1 ?
'<span class="fas fa-bars size12x"></span>' :
''), 0, $showmode, $atarget,
"xxx",
'', 0,
$id, $idsel, $classname,
'<span class="fas fa-bars size12x"></span>');
78 if (!empty($homepage) && !$user->admin) {
81 $homepage =
dolBuildUrl(
'/index.php', [
'mainmenu'=>
'home',
'leftmenu'=>
'home']);
88 'enabled' => $showmode = 1,
95 'classname' => $classname = (empty($_SESSION[
"mainmenu"]) || $_SESSION[
"mainmenu"] ==
"home") ?
'class="tmenusel"' :
'class="tmenu"',
96 'prefix' =>
'<span class="fas fa-home fa-fw"></span>',
97 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"home") ? 0 : 1),
98 'loadLangs' => array(),
99 'submenus' => array(),
105 'perms' => (
string) (
int) $user->hasRight(
'adherent',
'lire'),
106 'module' =>
'adherent'
110 'link' =>
dolBuildUrl(
'/adherents/index.php', [
'mainmenu'=>
'members',
'leftmenu'=>
'']),
111 'title' =>
"MenuMembers",
113 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
114 'target' => $atarget,
115 'mainmenu' =>
"members",
119 'idsel' =>
'members',
120 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"members") ?
'class="tmenusel"' :
'class="tmenu"',
121 'prefix' =>
img_picto(
'',
'member',
'class="fa-fw pictofixedwidth"'),
122 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"members") ? 0 : 1),
123 'loadLangs' => array(
"members"),
124 'submenus' => array(),
136 'perms' => (
string) (
int) ($user->hasRight(
'societe',
'lire') || $user->hasRight(
'societe',
'contact',
'lire') || $user->hasRight(
'fournisseur',
'lire') || $user->hasRight(
'supplier_order',
'lire') || $user->hasRight(
'supplier_invoice',
'lire') || $user->hasRight(
'supplier_proposal',
'lire')),
137 'module' =>
'societe|fournisseur'
141 'name' =>
'Companies',
142 'link' =>
dolBuildUrl(
'/societe/index.php', [
'mainmenu'=>
'companies',
'leftmenu'=>
'']),
143 'title' =>
"ThirdParties",
145 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
146 'target' => $atarget,
147 'mainmenu' =>
"companies",
151 'idsel' =>
'companies',
152 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"companies") ?
'class="tmenusel"' :
'class="tmenu"',
153 'prefix' =>
img_picto(
'',
'company',
'class="fa-fw pictofixedwidth"'),
154 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"companies") ? 0 : 1),
155 'loadLangs' => array(
"companies",
"suppliers"),
156 'submenus' => array(),
162 'perms' => (
string) (
int) ($user->hasRight(
'product',
'read') || $user->hasRight(
'service',
'read') || $user->hasRight(
'expedition',
'lire')),
163 'module' =>
'product|service'
166 'name' =>
'Products',
167 'link' =>
dolBuildUrl(
'/product/index.php', [
'mainmenu' =>
'products',
'leftmenu' =>
'']),
169 ? (array(
"TMenuProducts",
" | ",
"TMenuServices"))
170 : (
isModEnabled(
'product') ?
"TMenuProducts" :
"TMenuServices"),
172 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
173 'target' => $atarget,
174 'mainmenu' =>
"products",
178 'idsel' =>
'products',
179 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"products") ?
'class="tmenusel"' :
'class="tmenu"',
180 'prefix' =>
img_picto(
'',
'product',
'class="fa-fw pictofixedwidth"'),
181 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"products") ? 0 : 1),
182 'loadLangs' => array(
"products",
"stocks"),
183 'submenus' => array(),
189 'perms' => (
string) (
int) ($user->hasRight(
'bom',
'read') || $user->hasRight(
'mrp',
'read')),
190 'module' =>
'bom|mrp'
193 'name' =>
'TMenuMRP',
194 'link' =>
dolBuildUrl(
'/mrp/index.php', [
'mainmenu' =>
'mrp',
'leftmenu' =>
'']),
195 'title' =>
"TMenuMRP",
197 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
198 'target' => $atarget,
204 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"mrp") ?
'class="tmenusel"' :
'class="tmenu"',
205 'prefix' =>
img_picto(
'',
'mrp',
'class="fa-fw pictofixedwidth"'),
206 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"mrp") ? 0 : 1),
207 'loadLangs' => array(
"mrp"),
208 'submenus' => array(),
214 'perms' => (
string) ($user->hasRight(
'project',
'read') ? 1 : 0),
218 if ($mode ==
'jmobile') {
219 $titleboth = $langs->trans(
"LeadsOrProjects");
221 $titleboth = $langs->trans(
"Projects");
224 $titleboth = $langs->trans(
"Projects");
227 $titleboth = $langs->trans(
"Leads");
232 'link' =>
dolBuildUrl(
'/projet/index.php', [
'mainmenu' =>
'project',
'leftmenu' =>
'']),
233 'title' => $titleboth,
235 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
236 'target' => $atarget,
237 'mainmenu' =>
"project",
241 'idsel' =>
'project',
242 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"project") ?
'class="tmenusel"' :
'class="tmenu"',
243 'prefix' =>
img_picto(
'',
'project',
'class="fa-fw pictofixedwidth"'),
244 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"project") ? 0 : 1),
245 'loadLangs' => array(
"projects"),
246 'submenus' => array(),
260 'perms' => (
string) (
int) (
261 $user->hasRight(
'propal',
'read')
262 || $user->hasRight(
'commande',
'lire')
263 || $user->hasRight(
'supplier_proposal',
'lire')
264 || $user->hasRight(
'fournisseur',
'commande',
'lire')
265 || $user->hasRight(
'supplier_order',
'lire')
266 || $user->hasRight(
'contrat',
'lire')
267 || $user->hasRight(
'ficheinter',
'lire')
269 'module' =>
'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter'
272 $onlysupplierorder = $user->hasRight(
'fournisseur',
'commande',
'lire') &&
273 !$user->hasRight(
'propal',
'lire') &&
274 !$user->hasRight(
'commande',
'lire') &&
275 !$user->hasRight(
'supplier_order',
'lire') &&
276 !$user->hasRight(
'supplier_proposal',
'lire') &&
277 !$user->hasRight(
'contrat',
'lire') &&
278 !$user->hasRight(
'ficheinter',
'lire');
281 'name' =>
'Commercial',
282 'link' =>
dolBuildUrl(($onlysupplierorder ?
'/fourn/commande/index.php' :
'/comm/index.php'), [
'mainmenu' =>
'commercial',
'leftmenu' =>
'']),
283 'title' =>
"Commercial",
285 'enabled' => (int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
286 'target' => $atarget,
287 'mainmenu' =>
"commercial",
291 'idsel' =>
'commercial',
292 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"commercial") ?
'class="tmenusel"' :
'class="tmenu"',
293 'prefix' =>
img_picto(
'',
'contract',
'class="fa-fw pictofixedwidth"'),
294 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"commercial") ? 0 : 1),
295 'loadLangs' => array(
"commercial"),
296 'submenus' => array(),
310 'perms' => (
string) (
int) ($user->hasRight(
'facture',
'lire') || $user->hasRight(
'don',
'contact',
'lire')
311 || $user->hasRight(
'tax',
'charges',
'lire') || $user->hasRight(
'salaries',
'read')
312 || $user->hasRight(
'fournisseur',
'facture',
'lire') || $user->hasRight(
'loan',
'read') || $user->hasRight(
'margins',
'liretous')),
313 'module' =>
'facture|supplier_invoice|don|tax|salaries|loan'
317 'link' =>
dolBuildUrl(
'/compta/index.php', [
'mainmenu' =>
'billing',
'leftmenu' =>
'']),
318 'title' =>
"MenuFinancial",
320 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
321 'target' => $atarget,
322 'mainmenu' =>
"billing",
326 'idsel' =>
'billing',
327 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"billing") ?
'class="tmenusel"' :
'class="tmenu"',
328 'prefix' =>
img_picto(
'',
'bill',
'class="fa-fw pictofixedwidth"'),
329 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"billing") ? 0 : 1),
330 'loadLangs' => array(
"compta"),
331 'submenus' => array(),
337 'perms' => (
string) (
int) ($user->hasRight(
'banque',
'lire') || $user->hasRight(
'prelevement',
'lire') || $user->hasRight(
'paymentbybanktransfer',
'read')),
338 'module' =>
'banque|prelevement|paymentbybanktransfer'
342 'link' =>
dolBuildUrl(
'/compta/bank/list.php', [
'mainmenu' =>
'bank',
'leftmenu' =>
'',
'search_status' =>
'opened']),
343 'title' =>
"MenuBankCash",
345 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
346 'target' => $atarget,
347 'mainmenu' =>
"bank",
352 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"bank") ?
'class="tmenusel"' :
'class="tmenu"',
353 'prefix' =>
img_picto(
'',
'bank_account',
'class="fa-fw pictofixedwidth"'),
354 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"bank") ? 0 : 1),
355 'loadLangs' => array(
"compta",
"banks"),
356 'submenus' => array(),
362 'perms' => (
string) (
int) ($user->hasRight(
'compta',
'resultat',
'lire') || $user->hasRight(
'accounting',
'comptarapport',
'lire') || $user->hasRight(
'accounting',
'mouvements',
'lire') || $user->hasRight(
'asset',
'read') || $user->hasRight(
'intracommreport',
'read')),
363 'module' =>
'comptabilite|accounting|asset|intracommreport'
366 'name' =>
'Accounting',
367 'link' =>
dolBuildUrl(
'/accountancy/index.php', [
'mainmenu' =>
'accountancy',
'leftmenu' =>
'']),
368 'title' =>
"MenuAccountancy",
370 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
371 'target' => $atarget,
372 'mainmenu' =>
"accountancy",
376 'idsel' =>
'accountancy',
377 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"accountancy") ?
'class="tmenusel"' :
'class="tmenu"',
378 'prefix' =>
img_picto(
'',
'accountancy',
'class="fa-fw pictofixedwidth"'),
379 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"accountancy") ? 0 : 1),
380 'loadLangs' => array(
"compta",
"accountancy",
"assets",
"intracommreport"),
381 'submenus' => array(),
387 'perms' => (
string) (
int) ($user->hasRight(
'user',
'user',
'lire') || $user->hasRight(
'holiday',
'read') || $user->hasRight(
'deplacement',
'lire') || $user->hasRight(
'expensereport',
'lire') || $user->hasRight(
'recruitment',
'recruitmentjobposition',
'read')),
388 'module' =>
'hrm|holiday|deplacement|expensereport|recruitment'
393 'link' =>
dolBuildUrl(
'/hrm/index.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'']),
396 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
397 'target' => $atarget,
403 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"hrm") ?
'class="tmenusel"' :
'class="tmenu"',
404 'prefix' =>
img_picto(
'',
'hrm',
'class="fa-fw pictofixedwidth"'),
405 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"hrm") ? 0 : 1),
406 'loadLangs' => array(
"hrm",
"holiday"),
407 'submenus' => array(),
413 'perms' => (
string) (
int) ($user->hasRight(
'ticket',
'read') || $user->hasRight(
'knowledgemanagement',
'knowledgerecord',
'read')),
414 'module' =>
'ticket|knowledgemanagement'
418 $link =
dolBuildUrl(
'/ticket/index.php', [
'mainmenu' =>
'ticket',
'leftmenu' =>
'']);
420 $link =
dolBuildUrl(
'/knowledgemanagement/knowledgerecord_list.php', [
'mainmenu' =>
'ticket',
'leftmenu' =>
'']);
425 'title' =>
isModEnabled(
'ticket') ?
"Tickets" :
"MenuKnowledgeRecordShort",
427 'enabled' => (int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
428 'target' => $atarget,
429 'mainmenu' =>
"ticket",
434 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"ticket") ?
'class="tmenusel"' :
'class="tmenu"',
435 'prefix' =>
img_picto(
'',
'ticket',
'class="fa-fw pictofixedwidth"'),
436 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"ticket") ? 0 : 1),
437 'loadLangs' => array(
"ticket",
"knowledgemanagement"),
438 'submenus' => array(),
449 'link' =>
dolBuildUrl(
'/core/tools.php', [
'mainmenu' =>
'tools',
'leftmenu' =>
'']),
452 'enabled' => (
int) ($showmode =
isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal)),
453 'target' => $atarget,
454 'mainmenu' =>
"tools",
459 'classname' => $classname = (!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"tools") ?
'class="tmenusel"' :
'class="tmenu"',
460 'prefix' =>
img_picto(
'',
'tools',
'class="fa-fw pictofixedwidth"'),
461 'session' => ((!empty($_SESSION[
"mainmenu"]) && $_SESSION[
"mainmenu"] ==
"tools") ? 0 : 1),
462 'loadLangs' => array(),
463 'submenus' => array(),
467 foreach ($menu_arr as $key => $smenu) {
468 $smenu = (object) $smenu;
470 if ($smenu->enabled) {
471 if ($smenu->session) {
472 $_SESSION[
'idmenu'] =
'';
476 if (!empty($smenu->loadLangs)) {
477 $langs->loadLangs($smenu->loadLangs);
482 if (is_array($smenu->title)) {
483 foreach ($smenu->title as $item) {
484 $mtitle .= $langs->trans($item);
487 $mtitle = $langs->trans($smenu->title);
490 $menu->add($smenu->link, $mtitle, $smenu->level, $smenu->enabled, $smenu->target, $smenu->mainmenu, $smenu->leftmenu, $smenu->position, $smenu->id, $smenu->idsel, $smenu->classname, (
string) $smenu->prefix);
496 $newTabMenu = $menuArbo->menuTopCharger(
'',
'', $type_user,
'eldy', $tabMenu);
499 $num = count($newTabMenu);
500 for ($i = 0; $i < $num; $i++) {
502 $idsel = (empty($newTabMenu[$i][
'mainmenu']) ?
'none' : $newTabMenu[$i][
'mainmenu']);
507 '@phan-var-force array<array{rowid:string,fk_menu:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,positionfull:int|string,showtopmenuinframe:int,prefix:string}> $newTabMenu';
510 $url = $shorturl = $newTabMenu[$i][
'url'];
511 if (!preg_match(
"/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i][
'url'])) {
512 $tmp = explode(
'?', $newTabMenu[$i][
'url'], 2);
513 $url = $shorturl = $tmp[0];
514 $param = (isset($tmp[1]) ? $tmp[1] :
'');
516 if ((!preg_match(
'/mainmenu/i', $param)) || !preg_match(
'/leftmenu/i', $param)) {
518 $param .= ($param ?
'&' :
'').
'mainmenu='.$newTabMenu[$i][
'mainmenu'].
'&leftmenu=';
525 $shorturl = preg_replace(
'/^'.preg_quote(DOL_URL_ROOT,
'/').
'/',
'', $shorturl);
530 if ($newTabMenu[$i][
'showtopmenuinframe']) {
531 if (preg_match(
"/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i][
'url'])) {
532 $url = $shorturl =
'/core/frames.php?idmenu='.$newTabMenu[$i][
'rowid'];
537 if ($showmode == 1) {
539 if (!empty($_SESSION[
'idmenu']) && $newTabMenu[$i][
'rowid'] == $_SESSION[
'idmenu']) {
540 $classname =
'class="tmenusel"';
541 } elseif (!empty($_SESSION[
"mainmenu"]) && $newTabMenu[$i][
'mainmenu'] == $_SESSION[
"mainmenu"]) {
542 $classname =
'class="tmenusel"';
544 $classname =
'class="tmenu"';
546 } elseif ($showmode == 2) {
547 $classname =
'class="tmenu"';
552 $newTabMenu[$i][
'titre'],
555 ($newTabMenu[$i][
'target'] ? $newTabMenu[$i][
'target'] : $atarget),
556 ($newTabMenu[$i][
'mainmenu'] ? $newTabMenu[$i][
'mainmenu'] : $newTabMenu[$i][
'rowid']),
557 ($newTabMenu[$i][
'leftmenu'] ? $newTabMenu[$i][
'leftmenu'] :
''),
558 $newTabMenu[$i][
'position'],
562 $newTabMenu[$i][
'prefix']
583 $logoContainerAdditionalClass =
'backgroundforcompanylogo';
585 $logoContainerAdditionalClass =
'';
588 if (!empty(
$mysoc->logo_squarred_mini) && is_readable(
$conf->mycompany->dir_output.
'/logos/thumbs/'.
$mysoc->logo_squarred_mini)) {
589 $urllogo =
dolBuildUrl(DOL_URL_ROOT.
'/viewimage.php', [
'cache' => 1,
'modulepart' =>
'mycompany',
'file' =>
'logos/thumbs/'.$mysoc->logo_squarred_mini]);
595 $urllogo =
dolBuildUrl(DOL_URL_ROOT.
'/theme/dolibarr_512x512_white.png');
596 $logoContainerAdditionalClass =
'';
598 $title = $langs->trans(
"GoIntoSetupToChangeLogo");
600 print
"\n".
'<!-- Show logo on menu -->'.
"\n";
603 print
'<div class="center '.$logoContainerAdditionalClass.
' menulogocontainer"><img class="mycompany" title="'.
dol_escape_htmltag($title).
'" alt="" src="'.$urllogo.
'" style="max-width: 100px"></div>'.
"\n";
609 foreach ($menu->liste as $menuval) {
612 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), $menuval);
634 print
'<div class="tmenudiv">';
635 print
'<ul role="navigation" class="tmenu"'.(getDolGlobalString(
'MAIN_OPTIMIZEFORTEXTBROWSER') ?
' title="Top menu"' :
'').
'>';
649 print
'<li '.$classname.
' id="mainmenutd_'.$idsel.
'">';
651 print
'<div class="tmenucenter">';
672 $classnameimg = str_replace(
'class="',
'class="tmenuimage ', $classname);
673 $classnametxt = str_replace(
'class="',
'class="tmenulabel ', $classname);
676 if ($showmode == 1) {
677 print
'<a '.$classnameimg.
' tabindex="-1" href="'.$url.
'"'.($atarget ?
' target="'.$atarget.
'"' :
'').
' title="'.
dol_escape_htmltag($text).
'">';
678 print
'<div class="'.$id.
' '.$idsel.
' topmenuimage">';
680 if (!empty($menuval[
'prefix']) && strpos($menuval[
'prefix'],
'<span') === 0) {
681 print $menuval[
'prefix'];
682 } elseif (!empty($menuval[
'prefix']) && preg_match(
'/^(fa[rsb]? )?fa-/', $menuval[
'prefix'], $reg)) {
683 print
'<span class="'.$id.
' '.(empty($reg[1]) ?
'fa ' :
'').$menuval[
'prefix'].
'" id="mainmenuspan_'.$idsel.
'"></span>';
685 print
'<span class="'.$id.
' tmenuimageforpng" id="mainmenuspan_'.$idsel.
'"></span>';
690 print
'<a '.$classnametxt.
' id="mainmenua_'.$idsel.
'" href="'.$url.
'"'.($atarget ?
' target="'.$atarget.
'"' :
'').
' title="'.
dol_escape_htmltag($text).
'">';
691 print
'<span class="mainmenuaspan">';
696 } elseif ($showmode == 2) {
697 print
'<div '.$classnameimg.
' title="'.
dol_escape_htmltag($text.
' - '.$langs->trans(
"NotAllowed")).
'">';
698 print
'<div class="'.$id.
' '.$idsel.
' topmenuimage tmenudisabled">';
699 if (!empty($menuval[
'prefix']) && strpos($menuval[
'prefix'],
'<span') === 0) {
700 print $menuval[
'prefix'];
702 print
'<span class="'.$id.
' tmenuimageforpng tmenudisabled" id="mainmenuspan_'.$idsel.
'"></span>';
707 print
'<span '.$classnametxt.
' id="mainmenua_'.$idsel.
'" href="#" title="'.
dol_escape_htmltag($text.
' - '.$langs->trans(
"NotAllowed")).
'">';
708 print
'<span class="mainmenuaspan tmenudisabled">';
758function print_left_eldy_menu(
$db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu =
'', $forceleftmenu =
'', $moredata =
null, $type_user = 0)
760 global $user,
$conf, $langs, $hookmanager;
766 $mainmenu = ($forcemainmenu ? $forcemainmenu : $_SESSION[
"mainmenu"] ??
'');
767 $leftmenu = ($forceleftmenu ?
'' : (empty($_SESSION[
"leftmenu"]) ?
'none' : $_SESSION[
"leftmenu"] ??
''));
769 if (empty($mainmenu)) {
773 global $usemenuhider;
776 if (is_array($moredata) && !empty($moredata[
'searchform'])) {
778 print
"<!-- Begin SearchForm -->\n";
779 print
'<div id="blockvmenusearch" class="blockvmenusearch">'.
"\n";
780 print $moredata[
'searchform'];
782 print
"<!-- End SearchForm -->\n";
785 if (is_array($moredata) && !empty($moredata[
'bookmarks'])) {
787 print
"<!-- Begin Bookmarks -->\n";
788 print
'<div id="blockvmenubookmarks" class="blockvmenubookmarks">'.
"\n";
789 print $moredata[
'bookmarks'];
791 print
"<!-- End Bookmarks -->\n";
794 $substitarray = getCommonSubstitutionArray($langs, 0,
null,
null, array(
'system',
'mycompany',
'date',
'user'));
796 $listofmodulesforexternal = explode(
',',
getDolGlobalString(
'MAIN_MODULES_FOR_EXTERNAL'));
806 if ($mainmenu ==
'home') {
813 if ($mainmenu ==
'companies') {
820 if ($mainmenu ==
'commercial') {
827 if ($mainmenu ==
'billing') {
834 if ($mainmenu ==
'accountancy') {
841 if ($mainmenu ==
'bank') {
848 if ($mainmenu ==
'products') {
855 if ($mainmenu ==
'mrp') {
862 if ($mainmenu ==
'project') {
869 if ($mainmenu ==
'hrm') {
875 if ($mainmenu ==
'tools') {
882 if ($mainmenu ==
'members') {
889 $newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, (empty($user->socid) ? 0 : 1),
'eldy', $tabMenu);
895 while ($i <= $MAXFTP) {
896 $paramkey =
'FTP_NAME_'.$i;
899 $link =
"/ftp/index.php?idmenu=".$_SESSION[
"idmenu"].
"&numero_ftp=".$i;
913 $menu_array = $newmenu->liste;
914 if (is_array($menu_array_before)) {
915 $menu_array = array_merge($menu_array_before, $menu_array);
917 if (is_array($menu_array_after)) {
918 $menu_array = array_merge($menu_array, $menu_array_after);
921 if (!is_array($menu_array)) {
927 'mainmenu' => $mainmenu,
929 $hook_items = $menu_array;
930 $reshook = $hookmanager->executeHooks(
'menuLeftMenuItems', $parameters, $hook_items);
932 if (is_numeric($reshook)) {
933 if ($reshook == 0 && !empty($hookmanager->resArray)) {
934 $menu_array[] = $hookmanager->resArray;
935 } elseif ($reshook == 1) {
936 $menu_array = $hookmanager->resArray;
942 $currentpositionlevel = 0;
943 $currentpositionpath =
'';
944 foreach ($menu_array as $key => $val) {
947 if ($menu_array[$key][
'level'] <= $currentpositionlevel) {
948 $tmparray = explode(
'_', $currentpositionpath);
949 $currentpositionpath =
'';
950 for ($i = 0; $i < $menu_array[$key][
'level']; $i++) {
951 $currentpositionpath .= $tmparray[$i].
'_';
953 $currentpositionpath .= $menu_array[$key][
'position'].
'.'.$counter;
954 $menu_array[$key][
'positionfull'] = $currentpositionpath;
957 $currentpositionpath .=
'_'.$menu_array[$key][
'position'].
'.'.$counter;
958 $menu_array[$key][
'positionfull'] = $currentpositionpath;
961 $currentpositionlevel = $menu_array[$key][
'level'];
965 $menu_array =
dol_sort_array($menu_array,
'positionfull',
'asc', 1, 0, 1);
968 '@phan-var-force array<array{rowid:string,fk_menu:string,langs:string,enabled:int<0,2>,type:string,fk_mainmenu:string,fk_leftmenu:string,url:string,titre:string,perms:string,target:string,mainmenu:string,leftmenu:string,position:int,positionfull:int|string,showtopmenuinframe:int,level?:int,prefix:string}> $menu_array';
976 $blockvmenuopened =
false;
978 $num = count($menu_array);
979 foreach (array_keys($menu_array) as $i) {
981 if (
getDolGlobalString(
'MAIN_MENU_HIDE_UNAUTHORIZED') && empty($menu_array[$i][
'enabled'])) {
986 if (empty($menu_array[$i][
'level']) && $showmenu) {
988 $blockvmenuopened =
true;
990 for ($j = ($i + 1); $j < $num; $j++) {
991 if (empty($menu_array[$j][
'level'])) {
995 if ($altok % 2 == 0) {
996 print
'<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ?
' blockvmenulast' :
'').($altok == 1 ?
' blockvmenufirst' :
'').
'">'.
"\n";
998 print
'<div class="blockvmenu blockvmenupair'.$invert.($lastopened ?
' blockvmenulast' :
'').($altok == 1 ?
' blockvmenufirst' :
'').
'">'.
"\n";
1004 $tabul = ($menu_array[$i][
'level'] - 1);
1006 for ($j = 0; $j < $tabul; $j++) {
1007 $tabstring .=
' ';
1015 $url = $shorturl = $shorturlwithoutparam = $menu_array[$i][
'url'];
1016 if (!preg_match(
"/^(http:\/\/|https:\/\/)/i", $menu_array[$i][
'url'])) {
1017 $tmp = explode(
'?', $menu_array[$i][
'url'], 2);
1018 $url = $shorturl = $tmp[0];
1019 $param = (isset($tmp[1]) ? $tmp[1] :
'');
1022 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && !empty($menu_array[$i][
'mainmenu'])) {
1023 $param .= ($param ?
'&' :
'').
'mainmenu='.$menu_array[$i][
'mainmenu'].
'&leftmenu=';
1025 if ((!preg_match(
'/mainmenu/i', $param)) && (!preg_match(
'/leftmenu/i', $param)) && empty($menu_array[$i][
'mainmenu'])) {
1026 $param .= ($param ?
'&' :
'').
'leftmenu=';
1030 $shorturlwithoutparam = $shorturl;
1031 $shorturl .= ($param ?
'?'.$param :
'');
1035 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'].
' positionfull='.$menu_array[$i][
'positionfull'].
' -->'.
"\n";
1038 if ($menu_array[$i][
'level'] == 0) {
1039 if ($menu_array[$i][
'enabled']) {
1040 print
'<div class="menu_titre">'.$tabstring;
1041 if ($shorturlwithoutparam) {
1042 print
'<a class="vmenu" title="'.dol_escape_htmltag(
dol_string_nohtmltag($menu_array[$i][
'titre'])).
'" href="'.$url.
'"'.($menu_array[$i][
'target'] ?
' target="'.$menu_array[$i][
'target'].
'"' :
'').
'>';
1044 print
'<span class="vmenu">';
1046 if (!empty($menu_array[$i][
'prefix'])) {
1048 if (preg_match(
'/^(fa[rsb]? )?fa-/', $menu_array[$i][
'prefix'], $reg)) {
1049 print
'<span class="'.(empty($reg[1]) ?
'fa ' :
'').$menu_array[$i][
'prefix'].
' paddingright pictofixedwidth"></span>';
1051 print $menu_array[$i][
'prefix'];
1054 print ucfirst($menu_array[$i][
'titre']);
1055 if ($shorturlwithoutparam) {
1060 print
'</div>'.
"\n";
1061 $lastlevel0 =
'enabled';
1062 } elseif ($showmenu) {
1063 print
'<div class="menu_titre">'.$tabstring;
1064 print
'<span class="vmenudisabled" title="'.dolPrintHTMLForAttribute($menu_array[$i][
'titre']).
'">';
1065 if (!empty($menu_array[$i][
'prefix'])) {
1067 if (preg_match(
'/^(fa[rsb]? )?fa-/', $menu_array[$i][
'prefix'], $reg)) {
1068 print
'<span class="'.(empty($reg[1]) ?
'fa ' :
'').$menu_array[$i][
'prefix'].
' paddingright pictofixedwidth"></span>';
1070 print $menu_array[$i][
'prefix'];
1073 print ucfirst($menu_array[$i][
'titre']);
1075 print
'</div>'.
"\n";
1076 $lastlevel0 =
'greyed';
1078 $lastlevel0 =
'hidden';
1081 print
'<div class="menu_top"></div>'.
"\n";
1086 if ($menu_array[$i][
'level'] > 0) {
1088 if ($menu_array[$i][
'url']) {
1089 $cssmenu =
' menu_contenu'.dol_string_nospecial(preg_replace(
'/\.php.*$/',
'', $menu_array[$i][
'url']));
1092 if ($menu_array[$i][
'enabled'] && $lastlevel0 ==
'enabled') {
1094 print
'<div class="menu_contenu'.$cssmenu.
'">';
1096 if ($shorturlwithoutparam) {
1097 print
'<a class="vsmenu" title="'.dolPrintHTMLForAttribute($menu_array[$i][
'titre']).
'" href="'.$url.
'"'.($menu_array[$i][
'target'] ?
' target="'.$menu_array[$i][
'target'].
'"' :
'').
'>';
1099 print
'<span class="vsmenu" title="'.dolPrintHTMLForAttribute($menu_array[$i][
'titre']).
'">';
1101 print ucfirst($menu_array[$i][
'titre']);
1102 if ($shorturlwithoutparam) {
1108 if (!strstr($menu_array[$i][
'titre'],
'<table')) {
1111 print
'</div>'.
"\n";
1112 } elseif ($showmenu && $lastlevel0 ==
'enabled') {
1114 print
'<div class="menu_contenu'.$cssmenu.
'">';
1116 print
'<span class="vsmenudisabled vsmenudisabledmargin" title="'.dolPrintHTMLForAttribute($menu_array[$i][
'titre']).
'">'.$menu_array[$i][
'titre'].
'</span><br>';
1117 print
'</div>'.
"\n";
1122 if (empty($menu_array[$i + 1][
'level'])) {
1124 print
'<div class="menu_end"></div>'.
"\n";
1126 if ($blockvmenuopened) {
1127 print
'</div>'.
"\n";
1128 $blockvmenuopened =
false;
1134 print
'<div class="blockvmenuend"></div>';
1138 return count($menu_array);
1154 global $user,
$conf, $langs;
1156 if ($mainmenu ==
'home') {
1157 $langs->load(
"users");
1161 if (!empty($landingpage)) {
1164 $landingpage =
dolBuildUrl(
'/index.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'home']);
1166 $newmenu->add($landingpage, $langs->trans(
"MyDashboard"), 0, 1,
'', $mainmenu,
'home', 0,
'',
'',
'',
'<i class="fas fa-chart-bar fa-fw paddingright pictofixedwidth"></i>');
1169 $newmenu->add(
dolBuildUrl(
"/admin/index.php", [
'mainmenu' =>
'home',
'leftmenu' =>
'setup']), $langs->trans(
"Setup"), 0, $user->admin,
'', $mainmenu,
'setup', 0,
'',
'',
'',
'<i class="fa fa-tools fa-fw paddingright pictofixedwidth"></i>');
1171 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"setup") {
1173 $nbmodulesnotautoenabled = count(
$conf->modules);
1174 $listofmodulesautoenabled = array(
'user',
'agenda',
'fckeditor',
'export',
'import');
1175 foreach ($listofmodulesautoenabled as $moduleautoenable) {
1176 if (in_array($moduleautoenable,
$conf->modules)) {
1177 $nbmodulesnotautoenabled--;
1182 $langs->loadLangs(array(
"admin",
"help"));
1185 $langs->load(
"errors");
1186 $warnpicto =
img_warning($langs->trans(
"WarningMandatorySetupNotComplete"));
1188 $newmenu->add(
dolBuildUrl(
"/admin/company.php", [
'mainmenu' =>
'home']), $langs->trans(
"MenuCompanySetup").$warnpicto, 1);
1190 if ($nbmodulesnotautoenabled <
getDolGlobalInt(
'MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING', 1)) {
1191 $langs->load(
"errors");
1192 $warnpicto =
img_warning($langs->trans(
"WarningMandatorySetupNotComplete"));
1194 $newmenu->add(
dolBuildUrl(
"/admin/modules.php", [
'mainmenu' =>
'home']), $langs->trans(
"Modules").$warnpicto, 1);
1195 $newmenu->add(
dolBuildUrl(
"/admin/ihm.php", [
'mainmenu' =>
'home']), $langs->trans(
"GUISetup"), 1);
1196 $newmenu->add(
dolBuildUrl(
"/admin/menus.php", [
'mainmenu' =>
'home']), $langs->trans(
"Menus"), 1);
1198 $newmenu->add(
dolBuildUrl(
"/admin/translation.php", [
'mainmenu' =>
'home']), $langs->trans(
"Translation"), 1);
1199 $newmenu->add(
dolBuildUrl(
"/admin/defaultvalues.php", [
'mainmenu' =>
'home']), $langs->trans(
"DefaultValues"), 1);
1200 $newmenu->add(
dolBuildUrl(
"/admin/boxes.php", [
'mainmenu' =>
'home']), $langs->trans(
"Boxes"), 1);
1201 $newmenu->add(
dolBuildUrl(
"/admin/delais.php", [
'mainmenu' =>
'home']), $langs->trans(
"MenuWarnings"), 1);
1202 $newmenu->add(
dolBuildUrl(
"/admin/security_other.php", [
'mainmenu' =>
'home']), $langs->trans(
"Security"), 1);
1203 $newmenu->add(
dolBuildUrl(
"/admin/limits.php", [
'mainmenu' =>
'home']), $langs->trans(
"MenuLimits"), 1);
1204 $newmenu->add(
dolBuildUrl(
"/admin/pdf.php", [
'mainmenu' =>
'home']), $langs->trans(
"PDF"), 1);
1215 $langs->load(
"errors");
1216 $warnpicto =
img_warning($langs->trans(
"ErrorSetupOfEmailsNotComplete"));
1219 $newmenu->add(
dolBuildUrl(
"/admin/mails.php", [
'mainmenu' =>
'home']), $langs->trans(
"Emails").$warnpicto, 1);
1220 $newmenu->add(
dolBuildUrl(
"/admin/sms.php", [
'mainmenu' =>
'home']), $langs->trans(
"SMS"), 1);
1221 $newmenu->add(
dolBuildUrl(
"/admin/dict.php", [
'mainmenu' =>
'home']), $langs->trans(
"Dictionary"), 1);
1222 $newmenu->add(
dolBuildUrl(
"/admin/const.php", [
'mainmenu' =>
'home']), $langs->trans(
"OtherSetup"), 1);
1226 $newmenu->add(
dolBuildUrl(
'/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 pictofixedwidth"></i>');
1227 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^admintools/', $leftmenu)) {
1229 $langs->loadLangs(array(
'admin',
'help'));
1231 $newmenu->add(
dolBuildUrl(
'/admin/system/dolibarr.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools_info']), $langs->trans(
'InfoDolibarr'), 1);
1232 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
'admintools_info') {
1233 $newmenu->add(
dolBuildUrl(
'/admin/system/modules.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools_info']), $langs->trans(
'Modules'), 2);
1234 $newmenu->add(
dolBuildUrl(
'/admin/triggers.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools_info']), $langs->trans(
'Triggers'), 2);
1235 $newmenu->add(
dolBuildUrl(
'/blockedlog/admin/filecheck.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools_info']), $langs->trans(
'FileCheck'), 2);
1236 $newmenu->add(
dolBuildUrl(
'/admin/system/about.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools_info']), $langs->trans(
'ExternalResources'), 2);
1238 $newmenu->add(
dolBuildUrl(
'/admin/system/browser.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
'InfoBrowser'), 1);
1239 $newmenu->add(
dolBuildUrl(
'/admin/system/os.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
'InfoOS'), 1);
1240 $newmenu->add(
dolBuildUrl(
'/admin/system/web.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
'InfoWebServer'), 1);
1241 $newmenu->add(
dolBuildUrl(
'/admin/system/phpinfo.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
'InfoPHP'), 1);
1242 $newmenu->add(
dolBuildUrl(
'/admin/system/database.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
'InfoDatabase'), 1);
1243 $newmenu->add(
dolBuildUrl(
'/admin/system/perf.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"InfoPerf"), 1);
1244 $newmenu->add(
dolBuildUrl(
'/admin/system/security.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"InfoSecurity"), 1);
1245 $newmenu->add(
dolBuildUrl(
'/admin/tools/listevents.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"Audit"), 1);
1246 $newmenu->add(
dolBuildUrl(
'/admin/tools/listsessions.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"Sessions"), 1);
1247 $newmenu->add(
dolBuildUrl(
'/admin/tools/dolibarr_export.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"Backup"), 1);
1248 $newmenu->add(
dolBuildUrl(
'/admin/tools/dolibarr_import.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"Restore"), 1);
1249 $newmenu->add(
dolBuildUrl(
'/admin/tools/update.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"MenuUpgrade"), 1);
1250 $newmenu->add(
dolBuildUrl(
'/admin/tools/purge.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"Purge"), 1);
1260 $langs->load(
"products");
1261 $newmenu->add(
dolBuildUrl(
'/product/admin/product_tools.php', [
'mainmenu' =>
'home',
'leftmenu' =>
'admintools']), $langs->trans(
"ProductVatMassChange"), 1, $user->admin);
1265 $newmenu->add(
dolBuildUrl(
'/user/home.php', [
'leftmenu' =>
'users']), $langs->trans(
"MenuUsersAndGroups"), 0, $user->hasRight(
'user',
'user',
'read'),
'', $mainmenu,
'users', 0,
'',
'',
'',
img_picto(
'',
'user',
'class="paddingright pictofixedwidth"'));
1266 if ($user->hasRight(
'user',
'user',
'read')) {
1267 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"users") {
1268 $newmenu->add(
"", $langs->trans(
"Users"), 1, (
int) ($user->hasRight(
'user',
'user',
'read') || $user->admin));
1269 $newmenu->add(
dolBuildUrl(
'/user/card.php', [
'leftmenu' =>
'users',
'action' =>
'create']), $langs->trans(
"NewUser"), 2, (
int) (($user->hasRight(
"user",
"user",
"write") || $user->admin) && !(
isModEnabled(
'multicompany') && !empty($user->entity) &&
getDolGlobalString(
'MULTICOMPANY_TRANSVERSE_MODE'))),
'',
'home');
1270 $newmenu->add(
dolBuildUrl(
'/user/list.php', [
'leftmenu' =>
'users']), $langs->trans(
"ListOfUsers"), 2, (
int) ($user->hasRight(
'user',
'user',
'read') || $user->admin));
1273 $langs->load(
"categories");
1274 $newmenu->add(
dolBuildUrl(
'/categories/categorie_list.php', [
'leftmenu' =>
'users',
'type' => 7]), $langs->trans(
"UsersCategoriesShort"), 2, $user->hasRight(
'categorie',
'read'),
'', $mainmenu,
'cat');
1276 $newmenu->add(
"", $langs->trans(
"Groups"), 1, (
int) (($user->hasRight(
'user',
'user',
'read') || $user->admin) && !(
isModEnabled(
'multicompany') && !empty($user->entity) &&
getDolGlobalString(
'MULTICOMPANY_TRANSVERSE_MODE'))));
1277 $newmenu->add(
dolBuildUrl(
'/user/group/card.php', [
'leftmenu' =>
'users',
'action' =>
'create']), $langs->trans(
"NewGroup"), 2, (
int) (((
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') ? $user->hasRight(
"user",
"group_advance",
"write") : $user->hasRight(
"user",
"user",
"write")) || $user->admin) && !(
isModEnabled(
'multicompany') && !empty($user->entity) &&
getDolGlobalString(
'MULTICOMPANY_TRANSVERSE_MODE'))));
1278 $newmenu->add(
dolBuildUrl(
'/user/group/list.php', [
'leftmenu' =>
'users']), $langs->trans(
"ListOfGroups"), 2, (int) ((
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') ? $user->hasRight(
'user',
'group_advance',
'read') : $user->hasRight(
'user',
'user',
'read')) || $user->admin));
1296 global $user,
$conf, $langs;
1298 if ($mainmenu ==
'companies') {
1301 $langs->load(
"companies");
1302 $newmenu->add(
dolBuildUrl(
'/societe/index.php', [
'leftmenu' =>
'thirdparties']), $langs->trans(
"ThirdParty"), 0, $user->hasRight(
'societe',
'lire'),
'', $mainmenu,
'thirdparties', 0,
'',
'',
'',
img_picto(
'',
'company',
'class="paddingright pictofixedwidth"'));
1304 if ($user->hasRight(
'societe',
'creer')) {
1305 $newmenu->add(
dolBuildUrl(
'/societe/card.php', [
'action' =>
'create']), $langs->trans(
"MenuNewThirdParty"), 1);
1306 if (!
$conf->use_javascript_ajax) {
1307 $newmenu->add(
dolBuildUrl(
'/societe/card.php', [
'action' =>
'create',
'private' => 1]), $langs->trans(
"MenuNewPrivateIndividual"), 1);
1312 $newmenu->add(
dolBuildUrl(
'/societe/list.php', [
'leftmenu' =>
'thirdparties']), $langs->trans(
"List"), 1, $user->hasRight(
'societe',
'lire'),
'', $mainmenu,
'thirdparties_list', 2);
1316 $langs->load(
"commercial");
1317 $newmenu->add(
dolBuildUrl(
'/societe/list.php', [
'type' =>
'p',
'leftmenu' =>
'prospects']), $langs->trans(
"Prospects"), 2, $user->hasRight(
'societe',
'lire'),
'', $mainmenu,
'prospects', 5);
1319 $newmenu->add(
dolBuildUrl(
'/societe/card.php', [
'leftmenu' =>
'prospects',
'action' =>
'create',
'type' =>
'p']), $langs->trans(
"MenuNewProspect"), 3, $user->hasRight(
'societe',
'creer'));
1324 $langs->load(
"commercial");
1325 $newmenu->add(
"/societe/list.php?type=c&leftmenu=customers", $langs->trans(
"Customers"), 2, $user->hasRight(
'societe',
'lire'),
'', $mainmenu,
'customers', 10);
1327 $newmenu->add(
"/societe/card.php?leftmenu=customers&action=create&type=c", $langs->trans(
"MenuNewCustomer"), 3, $user->hasRight(
'societe',
'creer'));
1332 $langs->load(
"suppliers");
1333 $newmenu->add(
"/societe/list.php?type=f&leftmenu=suppliers", $langs->trans(
"Suppliers"), 2, (
int) ($user->hasRight(
'fournisseur',
'lire') || $user->hasRight(
'supplier_order',
'lire') || $user->hasRight(
'supplier_invoice',
'lire') || $user->hasRight(
'supplier_proposal',
'lire')),
'', $mainmenu,
'suppliers', 15);
1335 $newmenu->add(
"/societe/card.php?leftmenu=suppliers&action=create&type=f", $langs->trans(
"MenuNewSupplier"), 3, (
int) ($user->hasRight(
'societe',
'creer') && ($user->hasRight(
'fournisseur',
'lire') || $user->hasRight(
'supplier_order',
'lire') || $user->hasRight(
'supplier_invoice',
'lire') || $user->hasRight(
'supplier_proposal',
'lire'))));
1340 $langs->load(
"categories");
1343 $menutoshow = $langs->trans(
"CustomersProspectsCategoriesShort");
1345 $menutoshow = $langs->trans(
"CustomersCategoriesShort");
1348 $menutoshow = $langs->trans(
"ProspectsCategoriesShort");
1351 $langs->load(
"categories");
1352 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=2", $menutoshow, 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat', 3);
1358 $langs->load(
"categories");
1359 $newmenu->add(
"/categories/categorie_list.php?leftmenu=catfournish&type=1", $langs->trans(
"SuppliersCategoriesShort"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'catsupplier', 4);
1365 $newmenu->add(
"/societe/index.php?leftmenu=thirdparties", (
getDolGlobalString(
'SOCIETE_ADDRESSES_MANAGEMENT') ? $langs->trans(
"Contacts") : $langs->trans(
"ContactsAddresses")), 0, $user->hasRight(
'societe',
'contact',
'lire'),
'', $mainmenu,
'contacts', 0,
'',
'',
'',
img_picto(
'',
'contact',
'class="paddingright pictofixedwidth"'));
1367 $newmenu->add(
"/contact/card.php?leftmenu=contacts&action=create", (
getDolGlobalString(
'SOCIETE_ADDRESSES_MANAGEMENT') ? $langs->trans(
"NewContact") : $langs->trans(
"NewContactAddress")), 1, $user->hasRight(
'societe',
'contact',
'creer'));
1368 $newmenu->add(
"/contact/list.php?leftmenu=contacts", $langs->trans(
"List"), 1, $user->hasRight(
'societe',
'contact',
'lire'));
1370 $newmenu->add(
"/contact/list.php?leftmenu=contacts&type=p", $langs->trans(
"Prospects"), 2, $user->hasRight(
'societe',
'contact',
'lire'));
1373 $newmenu->add(
"/contact/list.php?leftmenu=contacts&type=c", $langs->trans(
"Customers"), 2, $user->hasRight(
'societe',
'contact',
'lire'));
1376 $newmenu->add(
"/contact/list.php?leftmenu=contacts&type=f", $langs->trans(
"Suppliers"), 2, $user->hasRight(
'fournisseur',
'lire'));
1378 $newmenu->add(
"/contact/list.php?leftmenu=contacts&type=o", $langs->trans(
"ContactOthers"), 2, $user->hasRight(
'societe',
'contact',
'lire'));
1383 $langs->load(
"categories");
1385 $newmenu->add(
"/categories/categorie_list.php?leftmenu=catcontact&type=4", $langs->trans(
"ContactCategoriesShort"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
1402 global $user, $langs;
1404 if ($mainmenu ==
'commercial') {
1405 $langs->load(
"companies");
1409 $langs->load(
"propal");
1410 $newmenu->add(
"/comm/propal/index.php?leftmenu=propals", $langs->trans(
"Proposals"), 0, $user->hasRight(
'propal',
'read'),
'', $mainmenu,
'propals', 100,
'',
'',
'',
img_picto(
'',
'propal',
'class="paddingright pictofixedwidth"'));
1411 $newmenu->add(
"/comm/propal/card.php?action=create&leftmenu=propals", $langs->trans(
"NewPropal"), 1, $user->hasRight(
'propal',
'write'));
1412 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals", $langs->trans(
"List"), 1, $user->hasRight(
'propal',
'read'));
1413 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"propals") {
1414 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals&search_status=0", $langs->trans(
"PropalsDraft"), 2, $user->hasRight(
'propal',
'read'));
1415 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals&search_status=1", $langs->trans(
"PropalsOpened"), 2, $user->hasRight(
'propal',
'read'));
1416 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals&search_status=2", $langs->trans(
"PropalStatusSigned"), 2, $user->hasRight(
'propal',
'read'));
1417 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals&search_status=3", $langs->trans(
"PropalStatusNotSigned"), 2, $user->hasRight(
'propal',
'read'));
1418 $newmenu->add(
"/comm/propal/list.php?leftmenu=propals&search_status=4", $langs->trans(
"PropalStatusBilled"), 2, $user->hasRight(
'propal',
'read'));
1422 $newmenu->add(
"/comm/propal/stats/index.php?leftmenu=propals", $langs->trans(
"Statistics"), 1, $user->hasRight(
'propal',
'read'));
1428 $langs->load(
"orders");
1429 $newmenu->add(
"/commande/index.php?leftmenu=orders", $langs->trans(
"CustomersOrders"), 0, $user->hasRight(
'commande',
'lire'),
'', $mainmenu,
'orders', 200,
'',
'',
'',
img_picto(
'',
'order',
'class="paddingright pictofixedwidth"'));
1430 $newmenu->add(
"/commande/card.php?action=create&leftmenu=orders", $langs->trans(
"NewOrder"), 1, $user->hasRight(
'commande',
'creer'));
1431 $newmenu->add(
"/commande/list.php?leftmenu=orders", $langs->trans(
"List"), 1, $user->hasRight(
'commande',
'lire'));
1432 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"orders") {
1433 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=0", $langs->trans(
"StatusOrderDraftShort"), 2, $user->hasRight(
'commande',
'lire'));
1434 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=1", $langs->trans(
"StatusOrderValidated"), 2, $user->hasRight(
'commande',
'lire'));
1436 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=2", $langs->trans(
"StatusOrderSentShort"), 2, $user->hasRight(
'commande',
'lire'));
1438 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=3", $langs->trans(
"StatusOrderDelivered"), 2, $user->hasRight(
'commande',
'lire'));
1440 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=-1", $langs->trans(
"StatusOrderCanceledShort"), 2, $user->hasRight(
'commande',
'lire'));
1442 if (empty($user->socid)) {
1443 $newmenu->add(
"/commande/list_det.php?leftmenu=orders", $langs->trans(
"ListOrderLigne"), 1, $user->hasRight(
'commande',
'lire'));
1446 if (
getDolGlobalInt(
'MAIN_NEED_EXPORT_PERMISSION_TO_READ_STATISTICS')) {
1447 $newmenu->add(
"/commande/stats/index.php?leftmenu=orders", $langs->trans(
"Statistics"), 1, $user->hasRight(
'commande',
'commande',
'export'));
1449 $newmenu->add(
"/commande/stats/index.php?leftmenu=orders", $langs->trans(
"Statistics"), 1, $user->hasRight(
'commande',
'lire'));
1455 $langs->load(
"categories");
1456 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=16", $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
1462 $langs->load(
"supplier_proposal");
1463 $newmenu->add(
"/supplier_proposal/index.php?leftmenu=propals_supplier", $langs->trans(
"SupplierProposalsShort"), 0, $user->hasRight(
'supplier_proposal',
'lire'),
'', $mainmenu,
'propals_supplier', 300,
'',
'',
'',
img_picto(
'',
'supplier_proposal',
'class="paddingright pictofixedwidth"'));
1464 $newmenu->add(
"/supplier_proposal/card.php?action=create&leftmenu=supplier_proposals", $langs->trans(
"SupplierProposalNew"), 1, $user->hasRight(
'supplier_proposal',
'creer'));
1465 $newmenu->add(
"/supplier_proposal/list.php?leftmenu=supplier_proposals", $langs->trans(
"List"), 1, $user->hasRight(
'supplier_proposal',
'lire'));
1467 $newmenu->add(
"/comm/propal/stats/index.php?leftmenu=supplier_proposals&mode=supplier", $langs->trans(
"Statistics"), 1, $user->hasRight(
'supplier_proposal',
'lire'));
1473 $langs->load(
"orders");
1475 $permOrderRightRead = (int) ($user->hasRight(
'fournisseur',
'commande',
'lire') || $user->hasRight(
'supplier_order',
'lire'));
1476 $permOrderRightCreate = (int) ($user->hasRight(
'fournisseur',
'commande',
'creer') || $user->hasRight(
'supplier_order',
'creer'));
1477 $permOrderRightExport = (int) ($user->hasRight(
'fournisseur',
'commande',
'export') || $user->hasRight(
'supplier_order',
'export'));
1479 $newmenu->add(
"/fourn/commande/index.php?leftmenu=orders_suppliers", $langs->trans(
"SuppliersOrders"), 0, $permOrderRightRead,
'', $mainmenu,
'orders_suppliers', 400,
'',
'',
'',
img_picto(
'',
'supplier_order',
'class="paddingright pictofixedwidth"'));
1480 $newmenu->add(
"/fourn/commande/card.php?action=create&leftmenu=orders_suppliers", $langs->trans(
"NewSupplierOrderShort"), 1, $permOrderRightCreate);
1481 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers", $langs->trans(
"List"), 1, $permOrderRightRead);
1483 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"orders_suppliers") {
1484 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans(
"StatusSupplierOrderDraftShort"), 2, $permOrderRightRead);
1486 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans(
"StatusSupplierOrderValidated"), 2, $permOrderRightRead);
1488 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans(
"StatusSupplierOrderApprovedShort"), 2, $permOrderRightRead);
1489 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans(
"StatusSupplierOrderOnProcessShort"), 2, $permOrderRightRead);
1490 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans(
"StatusSupplierOrderReceivedPartiallyShort"), 2, $permOrderRightRead);
1491 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans(
"StatusSupplierOrderReceivedAll"), 2, $permOrderRightRead);
1492 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans(
"StatusSupplierOrderCanceled"), 2, $permOrderRightRead);
1493 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans(
"StatusSupplierOrderRefused"), 2, $permOrderRightRead);
1498 if (
getDolGlobalInt(
'MAIN_NEED_EXPORT_PERMISSION_TO_READ_STATISTICS')) {
1499 $newmenu->add(
"/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", $langs->trans(
"Statistics"), 1, $permOrderRightExport);
1501 $newmenu->add(
"/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", $langs->trans(
"Statistics"), 1, $permOrderRightRead);
1507 $langs->load(
"categories");
1508 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=20", $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
1514 $langs->load(
"contracts");
1515 $newmenu->add(
"/contrat/index.php?leftmenu=contracts", $langs->trans(
"ContractsSubscriptions"), 0, $user->hasRight(
'contrat',
'lire'),
'', $mainmenu,
'contracts', 2000,
'',
'',
'',
img_picto(
'',
'contract',
'class="paddingright pictofixedwidth"'));
1516 $newmenu->add(
"/contrat/card.php?action=create&leftmenu=contracts", $langs->trans(
"NewContractSubscription"), 1, $user->hasRight(
'contrat',
'creer'));
1517 $newmenu->add(
"/contrat/list.php?leftmenu=contracts", $langs->trans(
"List"), 1, $user->hasRight(
'contrat',
'lire'));
1518 $newmenu->add(
"/contrat/services_list.php?leftmenu=contracts", $langs->trans(
"MenuServices"), 1, $user->hasRight(
'contrat',
'lire'));
1519 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"contracts") {
1520 $newmenu->add(
"/contrat/services_list.php?leftmenu=contracts&search_status=0", $langs->trans(
"MenuInactiveServices"), 2, $user->hasRight(
'contrat',
'lire'));
1521 $newmenu->add(
"/contrat/services_list.php?leftmenu=contracts&search_status=4", $langs->trans(
"MenuRunningServices"), 2, $user->hasRight(
'contrat',
'lire'));
1522 $newmenu->add(
"/contrat/services_list.php?leftmenu=contracts&search_status=4%26filter=expired", $langs->trans(
"MenuExpiredServices"), 2, $user->hasRight(
'contrat',
'lire'));
1523 $newmenu->add(
"/contrat/services_list.php?leftmenu=contracts&search_status=5", $langs->trans(
"MenuClosedServices"), 2, $user->hasRight(
'contrat',
'lire'));
1526 $newmenu->add(
"/contrat/stats/index.php", $langs->trans(
"Statistics"), 1, $user->hasRight(
'contrat',
'lire'));
1532 $langs->load(
"interventions");
1533 $newmenu->add(
"/fichinter/index.php?leftmenu=ficheinter", $langs->trans(
"Interventions"), 0, $user->hasRight(
'ficheinter',
'lire'),
'', $mainmenu,
'ficheinter', 2200,
'',
'',
'',
img_picto(
'',
'intervention',
'class="paddingright pictofixedwidth"'));
1534 $newmenu->add(
"/fichinter/card.php?action=create&leftmenu=ficheinter", $langs->trans(
"NewIntervention"), 1, $user->hasRight(
'ficheinter',
'creer'),
'',
'',
'', 201);
1535 $newmenu->add(
"/fichinter/list.php?leftmenu=ficheinter", $langs->trans(
"List"), 1, $user->hasRight(
'ficheinter',
'lire'),
'',
'',
'', 202);
1536 $newmenu->add(
"/fichinter/card-rec.php?leftmenu=ficheinter", $langs->trans(
"ListOfTemplates"), 1, $user->hasRight(
'ficheinter',
'lire'),
'',
'',
'', 203);
1538 $newmenu->add(
"/fichinter/stats/index.php?leftmenu=ficheinter", $langs->trans(
"Statistics"), 1, $user->hasRight(
'ficheinter',
'lire'),
'',
'',
'', 204);
1556 global $user, $langs;
1558 if ($mainmenu ==
'billing') {
1559 $langs->load(
"companies");
1563 $langs->load(
"bills");
1564 $newmenu->add(
"/compta/facture/index.php?leftmenu=customers_bills", $langs->trans(
"BillsCustomers"), 0, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills', 0,
'',
'',
'',
img_picto(
'',
'bill',
'class="paddingright pictofixedwidth"'));
1565 $newmenu->add(
"/compta/facture/card.php?action=create", $langs->trans(
"NewBill"), 1, $user->hasRight(
'facture',
'creer'));
1566 $newmenu->add(
"/compta/facture/list.php?leftmenu=customers_bills", $langs->trans(
"List"), 1, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills_list');
1568 if ($usemenuhider || empty($leftmenu) || preg_match(
'/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) {
1569 $newmenu->add(
"/compta/facture/list.php?leftmenu=customers_bills_draft&search_status=0", $langs->trans(
"BillShortStatusDraft"), 2, $user->hasRight(
'facture',
'lire'));
1570 $newmenu->add(
"/compta/facture/list.php?leftmenu=customers_bills_notpaid&search_status=1", $langs->trans(
"BillShortStatusNotPaid"), 2, $user->hasRight(
'facture',
'lire'));
1571 $newmenu->add(
"/compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2", $langs->trans(
"BillShortStatusPaid"), 2, $user->hasRight(
'facture',
'lire'));
1572 $newmenu->add(
"/compta/facture/list.php?leftmenu=customers_bills_canceled&search_status=3", $langs->trans(
"BillShortStatusCanceled"), 2, $user->hasRight(
'facture',
'lire'));
1574 $newmenu->add(
"/compta/facture/invoicetemplate_list.php?leftmenu=customers_bills_templates", $langs->trans(
"ListOfTemplates"), 1, $user->hasRight(
'facture',
'creer'),
'', $mainmenu,
'customers_bills_templates');
1576 $newmenu->add(
"/compta/paiement/list.php?leftmenu=customers_bills_payment", $langs->trans(
"Payments"), 1, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills_payment');
1578 if (
getDolGlobalString(
'BILL_ADD_PAYMENT_VALIDATION') && preg_match(
'/customers_bills_payment/', $leftmenu)) {
1579 $newmenu->add(
"/compta/paiement/tovalidate.php?leftmenu=customers_bills_payment_tovalid", $langs->trans(
"MenuToValid"), 2, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills_payment_tovalid');
1581 if ($usemenuhider || empty($leftmenu) || preg_match(
'/customers_bills_payment/', $leftmenu)) {
1582 $newmenu->add(
"/compta/paiement/rapport.php?leftmenu=customers_bills_payment_report", $langs->trans(
"Reportings"), 2, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills_payment_report');
1586 $newmenu->add(
"/compta/facture/stats/index.php?leftmenu=customers_bills_stats", $langs->trans(
"Statistics"), 1, $user->hasRight(
'facture',
'lire'),
'', $mainmenu,
'customers_bills_stats');
1591 $langs->load(
"categories");
1592 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=17", $langs->trans(
"Categories"), 1, $user->rights->categorie->lire,
'', $mainmenu,
'cat');
1598 $langs->load(
"bills");
1600 $permInvoiceRightRead = (int) ($user->hasRight(
'fournisseur',
'facture',
'lire') || $user->hasRight(
'supplier_invoice',
'lire'));
1601 $permInvoiceRightCreate = (int) ($user->hasRight(
'fournisseur',
'facture',
'creer') || $user->hasRight(
'supplier_invoice',
'creer'));
1603 $newmenu->add(
"/fourn/facture/index.php?leftmenu=suppliers_bills", $langs->trans(
"BillsSuppliers"), 0, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills', 0,
'',
'',
'',
img_picto(
'',
'supplier_invoice',
'class="paddingright pictofixedwidth"'));
1604 $newmenu->add(
"/fourn/facture/card.php?leftmenu=suppliers_bills&action=create", $langs->trans(
"NewBill"), 1, $permInvoiceRightCreate,
'', $mainmenu,
'suppliers_bills_create');
1605 $newmenu->add(
"/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans(
"List"), 1, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_list');
1607 if ($usemenuhider || empty($leftmenu) || preg_match(
'/suppliers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) {
1608 $newmenu->add(
"/fourn/facture/list.php?leftmenu=suppliers_bills_draft&search_status=0", $langs->trans(
"BillShortStatusDraft"), 2, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_draft');
1609 $newmenu->add(
"/fourn/facture/list.php?leftmenu=suppliers_bills_notpaid&search_status=1", $langs->trans(
"BillShortStatusNotPaid"), 2, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_notpaid');
1610 $newmenu->add(
"/fourn/facture/list.php?leftmenu=suppliers_bills_paid&search_status=2", $langs->trans(
"BillShortStatusPaid"), 2, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_paid');
1613 $newmenu->add(
"/fourn/facture/list-rec.php?leftmenu=supplierinvoicestemplate_list", $langs->trans(
"ListOfTemplates"), 1, $permInvoiceRightRead,
'', $mainmenu,
'supplierinvoicestemplate_list');
1615 $newmenu->add(
"/fourn/paiement/list.php?leftmenu=suppliers_bills_payment", $langs->trans(
"Payments"), 1, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_payment');
1617 if ($usemenuhider || empty($leftmenu) || preg_match(
'/suppliers_bills_payment/', $leftmenu)) {
1618 $newmenu->add(
"/fourn/facture/rapport.php?leftmenu=suppliers_bills_payment_report", $langs->trans(
"Reportings"), 2, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_payment_report');
1622 $newmenu->add(
"/compta/facture/stats/index.php?mode=supplier&leftmenu=suppliers_bills_stats", $langs->trans(
"Statistics"), 1, $permInvoiceRightRead,
'', $mainmenu,
'suppliers_bills_stats');
1627 $langs->load(
"categories");
1628 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=21", $langs->trans(
"Categories"), 1, $user->rights->categorie->lire,
'', $mainmenu,
'cat');
1634 $langs->load(
"orders");
1636 $newmenu->add(
"/commande/list.php?leftmenu=orders&search_status=-3&search_billed=0&contextpage=billableorders", $langs->trans(
"MenuOrdersToBill2"), 0, $user->hasRight(
'commande',
'lire'),
'', $mainmenu,
'orders', 0,
'',
'',
'',
img_picto(
'',
'order',
'class="paddingright pictofixedwidth"'));
1644 $langs->load(
"supplier");
1645 $newmenu->add(
"/fourn/commande/list.php?leftmenu=orders&search_status=5&search_billed=0", $langs->trans(
"MenuOrdersSupplierToBill"), 0, $user->hasRight(
'commande',
'lire'),
'', $mainmenu,
'orders', 0,
'',
'',
'',
img_picto(
'',
'supplier_order',
'class="paddingright pictofixedwidth"'));
1653 $langs->load(
"donations");
1654 $newmenu->add(
"/don/index.php?leftmenu=donations&mainmenu=billing", $langs->trans(
"Donations"), 0, $user->hasRight(
'don',
'lire'),
'', $mainmenu,
'donations', 0,
'',
'',
'',
img_picto(
'',
'donation',
'class="paddingright pictofixedwidth"'));
1655 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"donations") {
1656 $newmenu->add(
"/don/card.php?leftmenu=donations&action=create", $langs->trans(
"NewDonation"), 1, $user->hasRight(
'don',
'creer'));
1657 $newmenu->add(
"/don/list.php?leftmenu=donations", $langs->trans(
"List"), 1, $user->hasRight(
'don',
'lire'));
1658 $newmenu->add(
"/don/paiement/list.php?leftmenu=donations", $langs->trans(
"Payments"), 1, $user->hasRight(
'don',
'lire'));
1660 $newmenu->add(
"/don/stats/index.php", $langs->trans(
"Statistics"), 1, $user->hasRight(
'don',
'lire'));
1667 $newmenu->add(
"/compta/charges/index.php?leftmenu=tax&mainmenu=billing", $langs->trans(
"MenuTaxesAndSpecialExpenses"), 0, $user->hasRight(
'tax',
'charges',
'lire'),
'', $mainmenu,
'tax', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
1669 $newmenu->add(
"/compta/sociales/list.php?leftmenu=tax_social", $langs->trans(
"MenuSocialContributions"), 1, $user->hasRight(
'tax',
'charges',
'lire'));
1670 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_social/i', $leftmenu)) {
1671 $newmenu->add(
"/compta/sociales/card.php?leftmenu=tax_social&action=create", $langs->trans(
"MenuNewSocialContribution"), 2, $user->hasRight(
'tax',
'charges',
'creer'));
1672 $newmenu->add(
"/compta/sociales/list.php?leftmenu=tax_social", $langs->trans(
"List"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1673 $newmenu->add(
"/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=billing", $langs->trans(
"Payments"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1679 $newmenu->add(
"/compta/tva/list.php?leftmenu=tax_vat&mainmenu=billing", $langs->transcountry(
"VAT",
$mysoc->country_code), 1, $user->hasRight(
'tax',
'charges',
'lire'),
'', $mainmenu,
'tax_vat');
1680 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_vat/i', $leftmenu)) {
1681 $newmenu->add(
"/compta/tva/card.php?leftmenu=tax_vat&action=create", $langs->trans(
"New"), 2, $user->hasRight(
'tax',
'charges',
'creer'));
1682 $newmenu->add(
"/compta/tva/list.php?leftmenu=tax_vat", $langs->trans(
"List"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1683 $newmenu->add(
"/compta/tva/payments.php?mode=tvaonly&leftmenu=tax_vat", $langs->trans(
"Payments"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1684 $newmenu->add(
"/compta/tva/index.php?leftmenu=tax_vat", $langs->trans(
"ReportByMonth"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1685 $newmenu->add(
"/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans(
"ReportByThirdparties"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1686 $newmenu->add(
"/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans(
"ReportByQuarter"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1690 if (
$mysoc->useLocalTax(1) && (isset(
$mysoc->localtax1_assuj) &&
$mysoc->localtax1_assuj ==
"1")) {
1691 $newmenu->add(
"/compta/localtax/list.php?leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1", $langs->transcountry(
"LT1",
$mysoc->country_code), 1, $user->hasRight(
'tax',
'charges',
'lire'));
1692 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_1_vat/i', $leftmenu)) {
1693 $newmenu->add(
"/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&localTaxType=1", $langs->trans(
"New"), 2, $user->hasRight(
'tax',
'charges',
'creer'));
1694 $newmenu->add(
"/compta/localtax/list.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans(
"List"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1695 $newmenu->add(
"/compta/localtax/index.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans(
"ReportByMonth"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1696 $newmenu->add(
"/compta/localtax/clients.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans(
"ReportByThirdparties"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1697 $newmenu->add(
"/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans(
"ReportByQuarter"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1701 if (
$mysoc->useLocalTax(2) && (isset(
$mysoc->localtax2_assuj) &&
$mysoc->localtax2_assuj ==
"1")) {
1702 $newmenu->add(
"/compta/localtax/list.php?leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2", $langs->transcountry(
"LT2",
$mysoc->country_code), 1, $user->hasRight(
'tax',
'charges',
'lire'));
1703 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_2_vat/i', $leftmenu)) {
1704 $newmenu->add(
"/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&localTaxType=2", $langs->trans(
"New"), 2, $user->hasRight(
'tax',
'charges',
'creer'));
1705 $newmenu->add(
"/compta/localtax/list.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans(
"List"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1706 $newmenu->add(
"/compta/localtax/index.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans(
"ReportByMonth"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1707 $newmenu->add(
"/compta/localtax/clients.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans(
"ReportByThirdparties"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1708 $newmenu->add(
"/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans(
"ReportByQuarter"), 2, $user->hasRight(
'tax',
'charges',
'lire'));
1716 $langs->load(
"salaries");
1717 $newmenu->add(
"/salaries/list.php?leftmenu=tax_salary&mainmenu=billing", $langs->trans(
"Salaries"), 0, $user->hasRight(
'salaries',
'read'),
'', $mainmenu,
'tax_salary', 0,
'',
'',
'',
img_picto(
'',
'salary',
'class="paddingright pictofixedwidth"'));
1718 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_salary/i', $leftmenu)) {
1719 $newmenu->add(
"/salaries/card.php?leftmenu=tax_salary&action=create", $langs->trans(
"New"), 1, $user->hasRight(
'salaries',
'write'));
1720 $newmenu->add(
"/salaries/list.php?leftmenu=tax_salary", $langs->trans(
"List"), 1, $user->hasRight(
'salaries',
'read'));
1721 $newmenu->add(
"/salaries/payments.php?leftmenu=tax_salary", $langs->trans(
"Payments"), 1, $user->hasRight(
'salaries',
'read'));
1723 $newmenu->add(
"/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans(
"Statistics"), 1, $user->hasRight(
'salaries',
'read'));
1730 $langs->load(
"loan");
1731 $newmenu->add(
"/loan/list.php?leftmenu=tax_loan&mainmenu=billing", $langs->trans(
"Loans"), 0, $user->hasRight(
'loan',
'read'),
'', $mainmenu,
'tax_loan', 0,
'',
'',
'',
img_picto(
'',
'loan',
'class="paddingright pictofixedwidth"'));
1732 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_loan/i', $leftmenu)) {
1733 $newmenu->add(
"/loan/card.php?leftmenu=tax_loan&action=create", $langs->trans(
"NewLoan"), 1, $user->hasRight(
'loan',
'write'));
1740 $langs->load(
"banks");
1741 $newmenu->add(
"/compta/bank/various_payment/list.php?leftmenu=tax_various&mainmenu=billing", $langs->trans(
"MenuVariousPayment"), 0, $user->hasRight(
'banque',
'lire'),
'', $mainmenu,
'tax_various', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
1742 if ($usemenuhider || empty($leftmenu) || preg_match(
'/^tax_various/i', $leftmenu)) {
1743 $newmenu->add(
"/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", $langs->trans(
"New"), 1, $user->hasRight(
'banque',
'modifier'));
1744 $newmenu->add(
"/compta/bank/various_payment/list.php?leftmenu=tax_various", $langs->trans(
"List"), 1, $user->hasRight(
'banque',
'lire'));
1762 global $user,
$conf, $langs;
1765 if ($mainmenu ==
'accountancy') {
1766 $langs->load(
"companies");
1774 $newmenu->add(
"/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"Setup"), 0, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin', 1,
'',
'',
'',
img_picto(
'',
'technic',
'class="paddingright pictofixedwidth"'));
1776 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_admin/', $leftmenu)) {
1778 $newmenu->add(
"/accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"General"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_general', 10);
1780 $newmenu->add(
"/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"AccountingJournals"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_journal', 30);
1781 $newmenu->add(
"/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"Pcg_version"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_chartmodel', 40);
1782 $newmenu->add(
"/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"Chartofaccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_chart', 41);
1783 $newmenu->add(
"/accountancy/admin/subaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"ChartOfSubaccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_chart', 41);
1786 $newmenu->add(
"/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"FiscalPeriod"), 1, $user->hasRight(
'accounting',
'fiscalyear',
'write'),
'', $mainmenu,
'fiscalyear', 45);
1788 $newmenu->add(
"/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"MenuDefaultAccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_default', 60);
1790 $newmenu->add(
"/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", $langs->trans(
"MenuBankAccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_bank', 70);
1793 $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->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_default', 80);
1796 $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->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_default', 90);
1799 $newmenu->add(
"/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"MenuExpenseReportAccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_default', 100);
1801 $newmenu->add(
"/accountancy/admin/template/list.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"MenuListBookkeepingTemplates"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_template', 110);
1802 $newmenu->add(
"/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"MenuProductsAccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_product', 110);
1803 $newmenu->add(
"/accountancy/admin/closure.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"MenuClosureAccounts"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_closure', 120);
1805 $newmenu->add(
"/accountancy/admin/report_list.php?id=32&search_country_id=" .
$mysoc->country_id .
"&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans(
"AccountingReport"), 1, $user->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_report', 125);
1807 $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->hasRight(
'accounting',
'chartofaccount'),
'', $mainmenu,
'accountancy_admin_chart', 145);
1811 $newmenu->add(
"/accountancy/index.php?leftmenu=accountancy_transfer", $langs->trans(
"TransferInAccounting"), 0, $user->hasRight(
'accounting',
'bind',
'write'),
'', $mainmenu,
'transfer', 1,
'',
'',
'',
img_picto(
'',
'long-arrow-alt-right',
'class="paddingright pictofixedwidth"'));
1813 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_transfer/', $leftmenu)) {
1817 $newmenu->add(
"/accountancy/customer/index.php?leftmenu=accountancy_transfer_dispatch_customer&mainmenu=accountancy", $langs->trans(
"CustomersVentilation"), 1, $user->hasRight(
'accounting',
'bind',
'write'),
'', $mainmenu,
'dispatch_customer');
1818 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_transfer_dispatch_customer/', $leftmenu)) {
1819 $newmenu->add(
"/accountancy/customer/list.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_customer", $langs->trans(
"ToBind"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1820 $newmenu->add(
"/accountancy/customer/lines.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_customer", $langs->trans(
"Binded"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1824 $newmenu->add(
"/accountancy/supplier/index.php?leftmenu=accountancy_transfer_dispatch_supplier&mainmenu=accountancy", $langs->trans(
"SuppliersVentilation"), 1, $user->hasRight(
'accounting',
'bind',
'write'),
'', $mainmenu,
'dispatch_supplier');
1825 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_transfer_dispatch_supplier/', $leftmenu)) {
1826 $newmenu->add(
"/accountancy/supplier/list.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_supplier", $langs->trans(
"ToBind"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1827 $newmenu->add(
"/accountancy/supplier/lines.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_supplier", $langs->trans(
"Binded"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1831 $newmenu->add(
"/accountancy/expensereport/index.php?leftmenu=accountancy_transfer_dispatch_expensereport&mainmenu=accountancy", $langs->trans(
"ExpenseReportsVentilation"), 1, $user->hasRight(
'accounting',
'bind',
'write'),
'', $mainmenu,
'dispatch_expensereport');
1832 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_transfer_dispatch_expensereport/', $leftmenu)) {
1833 $newmenu->add(
"/accountancy/expensereport/list.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_expensereport", $langs->trans(
"ToBind"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1834 $newmenu->add(
"/accountancy/expensereport/lines.php?mainmenu=accountancy&leftmenu=accountancy_transfer_dispatch_expensereport", $langs->trans(
"Binded"), 2, $user->hasRight(
'accounting',
'bind',
'write'));
1839 if (
isModEnabled(
'accounting') && $user->hasRight(
'accounting',
'comptarapport',
'lire') && $mainmenu ==
'accountancy') {
1840 $newmenu->add(
'', $langs->trans(
"RegistrationInAccounting"), 1, $user->hasRight(
'accounting',
'comptarapport',
'lire'),
'', $mainmenu,
'accountancy_journal');
1843 $sql =
"SELECT rowid, code, label, nature";
1844 $sql .=
" FROM ".MAIN_DB_PREFIX.
"accounting_journal";
1845 $sql .=
" WHERE entity = ".((int)
$conf->entity);
1847 $sql .=
" AND nature = 4";
1849 $sql .=
" AND active = 1";
1850 $sql .=
" ORDER BY nature ASC, label DESC";
1852 $resql =
$db->query($sql);
1854 $numr =
$db->num_rows($resql);
1858 while ($i < $numr) {
1859 $objp =
$db->fetch_object($resql);
1864 if ($objp->nature == 2
1869 if ($objp->nature == 6
1873 $nature =
"cashsells";
1875 if ($objp->nature == 3
1878 $nature =
"purchases";
1880 if ($objp->nature == 4
1884 if ($objp->nature == 5
1886 && !
getDolGlobalInt(
'ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS')) {
1887 $nature =
"expensereports";
1889 if ($objp->nature == 1
1891 $nature =
"various";
1893 if ($objp->nature == 8) {
1894 $nature =
"inventory";
1896 if ($objp->nature == 9) {
1902 if ($nature ==
'hasnew' || $nature ==
'inventory') {
1908 $langs->load(
'accountancy');
1910 $journallabelwithoutspan =
'';
1912 $journallabelwithoutspan = $langs->trans($objp->label);
1913 $journallabel =
'<span class="opacitymedium">('.$langs->trans($objp->label).
')</span>';
1916 $key = $langs->trans(
"AccountingJournalType".$objp->nature);
1917 $transferlabel = (($objp->nature && $key !=
"AccountingJournalType".$objp->nature) ? $key.($journallabelwithoutspan != $key ?
' '.$journallabelwithoutspan :
'') : $journallabelwithoutspan);
1920 $journalNaturePrefixUrl =
'treasury';
1922 $journalNaturePrefixUrl = $nature;
1924 $newmenu->add(
'/accountancy/journal/'.$journalNaturePrefixUrl.
'journal.php?mainmenu=accountancy&leftmenu=accountancy_transfer_journal&id_journal='.$objp->rowid, $transferlabel, 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
1930 $newmenu->add(
'', $langs->trans(
"NoJournalDefined"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
1940 $newmenu->add(
"/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_transfer_sourcefiles", $langs->trans(
"AccountantFiles"), 1, $user->hasRight(
'accounting',
'mouvements',
'lire'));
1947 $newmenu->add(
"/accountancy/index.php?leftmenu=accountancy_accountancy", $langs->trans(
"MenuAccountancy"), 0, (
int) ($user->hasRight(
'accounting',
'mouvements',
'lire') || $user->hasRight(
'accounting',
'comptarapport',
'lire')),
'', $mainmenu,
'accountancy', 1,
'',
'',
'',
img_picto(
'',
'accountancy',
'class="paddingright pictofixedwidth"'));
1949 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_accountancy/', $leftmenu)) {
1951 $newmenu->add(
"/accountancy/bookkeeping/listbyaccount.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans(
"Bookkeeping"), 1, $user->hasRight(
'accounting',
'mouvements',
'lire'));
1954 $newmenu->add(
"/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans(
"Journals"), 1, $user->hasRight(
'accounting',
'mouvements',
'lire'));
1957 $newmenu->add(
"/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans(
"AccountBalance"), 1, $user->hasRight(
'accounting',
'mouvements',
'lire'));
1960 $newmenu->add(
"/accountancy/bookkeeping/export.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans(
"MenuExportAccountancy"), 1, $user->hasRight(
'accounting',
'mouvements',
'lire'));
1963 $newmenu->add(
"/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_accountancy_closure", $langs->trans(
"MenuAccountancyClosure"), 1, $user->hasRight(
'accounting',
'fiscalyear',
'write'),
'', $mainmenu,
'closure');
1966 $newmenu->add(
"/accountancy/index.php?leftmenu=accountancy_accountancy_report", $langs->trans(
"Reportings"), 1, $user->hasRight(
'accounting',
'comptarapport',
'lire'),
'', $mainmenu,
'ca');
1968 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_accountancy_report/', $leftmenu)) {
1969 $newmenu->add(
"/compta/resultat/index.php?leftmenu=accountancy_accountancy_report", $langs->trans(
"MenuReportInOut"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
1970 $newmenu->add(
"/compta/resultat/clientfourn.php?leftmenu=accountancy_accountancy_report", $langs->trans(
"ByPredefinedAccountGroups"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
1973 $newmenu->add(
"/compta/resultat/projects.php?leftmenu=accountancy_accountancy_report", $langs->trans(
"ByProject"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
1980 $sql =
"SELECT rowid, code, label";
1981 $sql .=
" FROM ".MAIN_DB_PREFIX.
"c_accounting_report";
1982 $sql .=
" WHERE entity = ".((int)
$conf->entity);
1983 $sql .=
" AND fk_country = ".((int)
$mysoc->country_id);
1984 $sql .=
" AND active = 1";
1985 $sql .=
" ORDER BY label DESC";
1987 $resql =
$db->query($sql);
1989 $numr =
$db->num_rows($resql);
1993 while ($i < $numr) {
1994 $objp =
$db->fetch_object($resql);
1995 $newmenu->add(
'/compta/resultat/result.php?mainmenu=accountancy&leftmenu=accountancy_accountancy_report&id_report='.$objp->rowid, $langs->trans(
"Personalized") .
" - " . $objp->label, 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2000 $newmenu->add(
"/compta/resultat/result.php?mainmenu=accountancy&leftmenu=accountancy_accountancy_report", $langs->trans(
"ByPersonalizedAccountGroups"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2008 $newmenu->add(
"/compta/resultat/result.php?leftmenu=accountancy_accountancy_report", $langs->trans(
"ByPersonalizedAccountGroups"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2013 $modecompta =
'CREANCES-DETTES';
2014 if (
isModEnabled(
'accounting') && $user->hasRight(
'accounting',
'comptarapport',
'lire') && $mainmenu ==
'accountancy') {
2015 $modecompta =
'BOOKKEEPING';
2018 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_report/', $leftmenu)) {
2019 $newmenu->add(
"/compta/stats/index.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportTurnover"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2020 $newmenu->add(
"/compta/stats/casoc.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2021 $newmenu->add(
"/compta/stats/cabyuser.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByUsers"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2022 $newmenu->add(
"/compta/stats/cabyprodserv.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByProductsAndServices"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2023 $newmenu->add(
"/compta/stats/byratecountry.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByVatRate"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2027 $modecompta =
'RECETTES-DEPENSES';
2030 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_report/', $leftmenu)) {
2031 $newmenu->add(
"/compta/stats/index.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportTurnoverCollected"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2032 $newmenu->add(
"/compta/stats/casoc.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2033 $newmenu->add(
"/compta/stats/cabyuser.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByUsers"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2039 $modecompta =
'CREANCES-DETTES';
2040 if (
isModEnabled(
'accounting') && $user->hasRight(
'accounting',
'comptarapport',
'lire') && $mainmenu ==
'accountancy') {
2041 $modecompta =
'BOOKKEEPING';
2044 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_report/', $leftmenu)) {
2045 $newmenu->add(
"/compta/stats/supplier_turnover.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportPurchaseTurnover"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2046 $newmenu->add(
"/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2047 $newmenu->add(
"/compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByProductsAndServices"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2051 $modecompta =
'RECETTES-DEPENSES';
2052 if (
isModEnabled(
'accounting') && $user->hasRight(
'accounting',
'comptarapport',
'lire') && $mainmenu ==
'accountancy') {
2053 $modecompta =
'BOOKKEEPINGCOLLECTED';
2056 if ($usemenuhider || empty($leftmenu) || preg_match(
'/accountancy_report/', $leftmenu)) {
2057 $newmenu->add(
"/compta/stats/supplier_turnover.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportPurchaseTurnoverCollected"), 2, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2058 $newmenu->add(
"/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 3, $user->hasRight(
'accounting',
'comptarapport',
'lire'));
2067 $newmenu->add(
"/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_accountancy_files", $langs->trans(
"AccountantFiles"), 0, $user->hasRight(
'compta',
'resultat',
'lire'),
'', $mainmenu,
'files', 0,
'',
'',
'',
img_picto(
'',
'accountancy',
'class="paddingright pictofixedwidth"'));
2072 $newmenu->add(
"/compta/resultat/index.php?leftmenu=accountancy_report&mainmenu=accountancy", $langs->trans(
"Reportings"), 0, $user->hasRight(
'compta',
'resultat',
'lire'),
'', $mainmenu,
'ca', 0,
'',
'',
'',
img_picto(
'',
'accountancy',
'class="paddingright pictofixedwidth"'));
2074 if ($usemenuhider || empty($leftmenu) || preg_match(
'/report/', $leftmenu)) {
2075 $newmenu->add(
"/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans(
"MenuReportInOut"), 1, $user->hasRight(
'compta',
'resultat',
'lire'));
2076 $newmenu->add(
"/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans(
"ByPredefinedAccountGroups"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2077 $newmenu->add(
"/compta/resultat/projects.php?leftmenu=accountancy_report", $langs->trans(
"ByProject"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2091 $modecompta =
'CREANCES-DETTES';
2092 $newmenu->add(
"/compta/stats/index.php?leftmenu=report&modecompta=".$modecompta, $langs->trans(
"ReportTurnover"), 1, $user->hasRight(
'compta',
'resultat',
'lire'));
2093 $newmenu->add(
"/compta/stats/casoc.php?leftmenu=report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2094 $newmenu->add(
"/compta/stats/cabyuser.php?leftmenu=report&modecompta=".$modecompta, $langs->trans(
"ByUsers"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2095 $newmenu->add(
"/compta/stats/cabyprodserv.php?leftmenu=report&modecompta=".$modecompta, $langs->trans(
"ByProductsAndServices"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2096 $newmenu->add(
"/compta/stats/byratecountry.php?leftmenu=report&modecompta=".$modecompta, $langs->trans(
"ByVatRate"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2098 $modecompta =
'RECETTES-DEPENSES';
2099 $newmenu->add(
"/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportTurnoverCollected"), 1, $user->hasRight(
'compta',
'resultat',
'lire'));
2100 $newmenu->add(
"/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2101 $newmenu->add(
"/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByUsers"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2104 $modecompta =
'CREANCES-DETTES';
2105 $newmenu->add(
"/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ReportPurchaseTurnover"), 1, $user->hasRight(
'compta',
'resultat',
'lire'));
2106 $newmenu->add(
"/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByCompanies"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2107 $newmenu->add(
"/compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans(
"ByProductsAndServices"), 2, $user->hasRight(
'compta',
'resultat',
'lire'));
2117 $newmenu->add(
"/compta/journal/sellsjournal.php?leftmenu=accountancy_report", $langs->trans(
"SellsJournal"), 1, $user->hasRight(
'compta',
'resultat',
'lire'),
'',
'',
'', 50);
2118 $newmenu->add(
"/compta/journal/purchasesjournal.php?leftmenu=accountancy_report", $langs->trans(
"PurchasesJournal"), 1, $user->hasRight(
'compta',
'resultat',
'lire'),
'',
'',
'', 51);
2125 $newmenu->add(
"/intracommreport/list.php?leftmenu=intracommreport", $langs->trans(
"MenuIntracommReport"), 0, $user->hasRight(
'intracommreport',
'read'),
'', $mainmenu,
'intracommreport', 60,
'',
'',
'',
img_picto(
'',
'intracommreport',
'class="paddingright pictofixedwidth"'));
2126 if ($usemenuhider || empty($leftmenu) || preg_match(
'/intracommreport/', $leftmenu)) {
2128 $newmenu->add(
"/intracommreport/card.php?action=create&leftmenu=intracommreport", $langs->trans(
"MenuIntracommReportNew"), 1, $user->hasRight(
'intracommreport',
'write'),
'', $mainmenu,
'intracommreport', 1);
2129 $newmenu->add(
"/intracommreport/list.php?leftmenu=intracommreport", $langs->trans(
"MenuIntracommReportList"), 1, $user->hasRight(
'intracommreport',
'read'),
'', $mainmenu,
'intracommreport', 1);
2135 $newmenu->add(
"/asset/list.php?leftmenu=asset&mainmenu=accountancy", $langs->trans(
"MenuAssets"), 0, $user->hasRight(
'asset',
'read'),
'', $mainmenu,
'asset', 100,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
2136 if ($usemenuhider || empty($leftmenu) || preg_match(
'/asset/', $leftmenu)) {
2137 $newmenu->add(
"/asset/card.php?leftmenu=asset&action=create", $langs->trans(
"MenuNewAsset"), 1, $user->hasRight(
'asset',
'write'));
2138 $newmenu->add(
"/asset/list.php?leftmenu=asset&mainmenu=accountancy", $langs->trans(
"MenuListAssets"), 1, $user->hasRight(
'asset',
'read'));
2139 $newmenu->add(
"/asset/model/list.php?leftmenu=asset_model", $langs->trans(
"MenuAssetModels"), 1, (
int) ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'read')) || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'model_advance',
'read'))),
'', $mainmenu,
'asset_model');
2140 if ($usemenuhider || empty($leftmenu) || preg_match(
'/asset_model/', $leftmenu)) {
2141 $newmenu->add(
"/asset/model/card.php?leftmenu=asset_model&action=create", $langs->trans(
"MenuNewAssetModel"), 2, (
int) ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'write')) || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'model_advance',
'write'))));
2142 $newmenu->add(
"/asset/model/list.php?leftmenu=asset_model", $langs->trans(
"MenuListAssetModels"), 2, (
int) ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'read')) || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'asset',
'model_advance',
'read'))));
2161 global $user, $langs;
2163 if ($mainmenu ==
'bank') {
2165 $langs->loadLangs(array(
"withdrawals",
"banks",
"bills",
"categories"));
2169 $newmenu->add(
"/compta/bank/list.php?leftmenu=bank&mainmenu=bank&search_status=opened", $langs->trans(
"MenuBankCash"), 0, $user->hasRight(
'banque',
'lire'),
'', $mainmenu,
'bank', 0,
'',
'',
'',
img_picto(
'',
'bank_account',
'class="paddingright pictofixedwidth"'));
2171 $newmenu->add(
"/compta/bank/card.php?action=create&token=" .
newToken(), $langs->trans(
"MenuNewFinancialAccount"), 1, $user->hasRight(
'banque',
'configurer'));
2172 $newmenu->add(
"/compta/bank/list.php?leftmenu=bank&mainmenu=bank&search_status=opened", $langs->trans(
"List"), 1, $user->hasRight(
'banque',
'lire'),
'', $mainmenu,
'bank');
2173 $newmenu->add(
"/compta/bank/bankentries_list.php", $langs->trans(
"ListTransactions"), 1, $user->hasRight(
'banque',
'lire'));
2174 $newmenu->add(
"/compta/bank/budget.php", $langs->trans(
"ListTransactionsByCategory"), 1, $user->hasRight(
'banque',
'lire'));
2176 $newmenu->add(
"/compta/bank/transfer.php", $langs->trans(
"MenuBankInternalTransfer"), 1, $user->hasRight(
'banque',
'transfer'));
2180 $langs->load(
"categories");
2181 $newmenu->add(
"/categories/categorie_list.php?type=5", $langs->trans(
"Rubriques"), 1, $user->hasRight(
'categorie',
'creer'),
'', $mainmenu,
'tags');
2182 $newmenu->add(
"/categories/categorie_list.php?type=8", $langs->trans(
"RubriquesTransactions"), 1, $user->hasRight(
'banque',
'configurer'),
'', $mainmenu,
'tags');
2187 $newmenu->add(
"/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank", $langs->trans(
"PaymentByDirectDebit"), 0, $user->hasRight(
'prelevement',
'bons',
'lire'),
'', $mainmenu,
'withdraw', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
2189 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"withdraw") {
2190 $newmenu->add(
"/compta/prelevement/create.php?mainmenu=bank&token=" .
newToken(), $langs->trans(
"NewStandingOrder"), 1, $user->hasRight(
'prelevement',
'bons',
'creer'));
2192 $newmenu->add(
"/compta/prelevement/orders_list.php?mainmenu=bank", $langs->trans(
"List"), 1, $user->hasRight(
'prelevement',
'bons',
'lire'));
2193 $newmenu->add(
"/compta/prelevement/list.php?mainmenu=bank", $langs->trans(
"WithdrawalsLines"), 1, $user->hasRight(
'prelevement',
'bons',
'lire'));
2194 $newmenu->add(
"/compta/prelevement/rejets.php?mainmenu=bank", $langs->trans(
"Rejects"), 1, $user->hasRight(
'prelevement',
'bons',
'lire'));
2196 $newmenu->add(
"/compta/prelevement/stats.php?mainmenu=bank", $langs->trans(
"Statistics"), 1, $user->hasRight(
'prelevement',
'bons',
'lire'));
2203 $newmenu->add(
"/compta/paymentbybanktransfer/index.php?leftmenu=banktransfer&mainmenu=bank", $langs->trans(
"PaymentByBankTransfer"), 0, $user->hasRight(
'paymentbybanktransfer',
'read'),
'', $mainmenu,
'banktransfer', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
2205 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"banktransfer") {
2206 $newmenu->add(
"/compta/prelevement/create.php?type=bank-transfer&mainmenu=bank&token=" .
newToken(), $langs->trans(
"NewPaymentByBankTransfer"), 1, $user->hasRight(
'paymentbybanktransfer',
'create'));
2208 $newmenu->add(
"/compta/prelevement/orders_list.php?type=bank-transfer&mainmenu=bank", $langs->trans(
"List"), 1, $user->hasRight(
'paymentbybanktransfer',
'read'));
2209 $newmenu->add(
"/compta/prelevement/list.php?type=bank-transfer&mainmenu=bank", $langs->trans(
"PaymentByBankTransferLines"), 1, $user->hasRight(
'paymentbybanktransfer',
'read'));
2210 $newmenu->add(
"/compta/prelevement/rejets.php?type=bank-transfer&mainmenu=bank", $langs->trans(
"Rejects"), 1, $user->hasRight(
'paymentbybanktransfer',
'read'));
2212 $newmenu->add(
"/compta/prelevement/stats.php?type=bank-transfer&mainmenu=bank", $langs->trans(
"Statistics"), 1, $user->hasRight(
'paymentbybanktransfer',
'read'));
2219 $newmenu->add(
"/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank", $langs->trans(
"MenuChequeDeposits"), 0, $user->hasRight(
'banque',
'cheque'),
'', $mainmenu,
'checks', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
2220 if (preg_match(
'/checks/', $leftmenu)) {
2221 $newmenu->add(
"/compta/paiement/cheque/card.php?leftmenu=checks_bis&action=new&mainmenu=bank", $langs->trans(
"NewChequeDeposit"), 1, $user->hasRight(
'banque',
'cheque'));
2222 $newmenu->add(
"/compta/paiement/cheque/list.php?leftmenu=checks_bis&mainmenu=bank", $langs->trans(
"List"), 1, $user->hasRight(
'banque',
'cheque'));
2228 $permtomakecashfence = ($user->hasRight(
'cashdesk',
'run') || $user->hasRight(
'takepos',
'run'));
2229 $newmenu->add(
"/compta/cashcontrol/cashcontrol_list.php", $langs->trans(
"CashControl"), 0, (int) $permtomakecashfence,
'', $mainmenu,
'cashcontrol', 0,
'',
'',
'',
img_picto(
'',
'pos',
'class="paddingright pictofixedwidth"'));
2230 $newmenu->add(
"/compta/cashcontrol/cashcontrol_card.php?action=create&token=" .
newToken(), $langs->trans(
"NewCashFence"), 1, (int) $permtomakecashfence);
2231 $newmenu->add(
"/compta/cashcontrol/cashcontrol_list.php", $langs->trans(
"List"), 1, (int) $permtomakecashfence);
2248 global $user, $langs;
2250 if ($mainmenu ==
'products') {
2253 $newmenu->add(
"/product/index.php?leftmenu=product", $langs->trans(
"Products"), 0, $user->hasRight(
'product',
'read'),
'', $mainmenu,
'product', 0,
'',
'',
'',
img_picto(
'',
'product',
'class="paddingright pictofixedwidth"'));
2254 $newmenu->add(
"/product/card.php?leftmenu=product&action=create&type=0", $langs->trans(
"NewProduct"), 1, $user->hasRight(
'product',
'creer'));
2255 $newmenu->add(
"/product/list.php?leftmenu=product&type=0", $langs->trans(
"List"), 1, $user->hasRight(
'product',
'read'));
2257 $newmenu->add(
"/product/reassort.php?type=0", $langs->trans(
"MenuStocks"), 1, (
int) ($user->hasRight(
'product',
'read') && $user->hasRight(
'stock',
'lire')));
2260 $langs->load(
"stocks");
2261 $newmenu->add(
"/product/reassortlot.php?type=0&search_subjecttolotserial=1", $langs->trans(
"StocksByLotSerial"), 1, (
int) ($user->hasRight(
'product',
'read') && $user->hasRight(
'stock',
'lire')));
2262 $newmenu->add(
"/product/stock/productlot_list.php", $langs->trans(
"LotSerial"), 1, (
int) ($user->hasRight(
'product',
'read') && $user->hasRight(
'stock',
'lire')));
2265 $newmenu->add(
"/variants/list.php", $langs->trans(
"VariantAttributes"), 1, $user->hasRight(
'product',
'read'));
2269 $newmenu->add(
"/product/stats/index.php?id=all&leftmenu=stats&type=0", $langs->trans(
"Statistics"), 1, $user->hasRight(
'product',
'read'));
2275 $langs->load(
"categories");
2276 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=product", $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
2282 $newmenu->add(
"/product/index.php?leftmenu=service", $langs->trans(
"Services"), 0, $user->hasRight(
'service',
'read'),
'', $mainmenu,
'service', 0,
'',
'',
'',
img_picto(
'',
'service',
'class="paddingright pictofixedwidth"'));
2283 $newmenu->add(
"/product/card.php?leftmenu=service&action=create&type=1", $langs->trans(
"NewService"), 1, $user->hasRight(
'service',
'creer'));
2284 $newmenu->add(
"/product/list.php?leftmenu=service&type=1", $langs->trans(
"List"), 1, $user->hasRight(
'service',
'read'));
2287 $newmenu->add(
"/product/reassort.php?type=1", $langs->trans(
"MenuStocks"), 1, (
int) ($user->hasRight(
'service',
'read') && $user->hasRight(
'stock',
'lire')));
2290 $newmenu->add(
"/variants/list.php", $langs->trans(
"VariantAttributes"), 1, $user->hasRight(
'service',
'read'));
2294 $newmenu->add(
"/product/stats/index.php?id=all&leftmenu=stats&type=1", $langs->trans(
"Statistics"), 1, $user->hasRight(
'service',
'read'));
2299 $langs->load(
"categories");
2300 $newmenu->add(
"/categories/categorie_list.php?leftmenu=cat&type=service", $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
2306 $langs->load(
"stocks");
2307 $newmenu->add(
"/product/index.php?leftmenu=stock", $langs->trans(
"Warehouses"), 0, $user->hasRight(
'stock',
'lire'),
'', $mainmenu,
'stock', 0,
'',
'',
'',
img_picto(
'',
'stock',
'class="paddingright pictofixedwidth"'));
2308 $newmenu->add(
"/product/stock/card.php?action=create", $langs->trans(
"MenuNewWarehouse"), 1, $user->hasRight(
'stock',
'creer'));
2309 $newmenu->add(
"/product/stock/list.php", $langs->trans(
"List"), 1, $user->hasRight(
'stock',
'lire'));
2310 $newmenu->add(
"/product/stock/movement_list.php", $langs->trans(
"Movements"), 1, $user->hasRight(
'stock',
'mouvement',
'lire'));
2312 $newmenu->add(
"/product/stock/massstockmove.php?init=1", $langs->trans(
"MassStockTransferShort"), 1, $user->hasRight(
'stock',
'mouvement',
'creer'));
2314 $newmenu->add(
"/product/stock/replenish.php", $langs->trans(
"Replenishment"), 1, (
int) ($user->hasRight(
'stock',
'mouvement',
'creer') && $user->hasRight(
'fournisseur',
'lire')));
2316 $newmenu->add(
"/product/stock/stockatdate.php", $langs->trans(
"StockAtDate"), 1, (
int) ($user->hasRight(
'product',
'read') && $user->hasRight(
'stock',
'lire')));
2320 $newmenu->add(
"/categories/categorie_list.php?leftmenu=stock&type=9", $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
2325 $newmenu->add(
'/product/stock/stocktransfer/stocktransfer_list.php', $langs->trans(
"ModuleStockTransferName"), 0, $user->hasRight(
'stocktransfer',
'stocktransfer',
'read'),
'', $mainmenu,
'stocktransfer', 0,
'',
'',
'',
img_picto(
'',
'stock',
'class="paddingright pictofixedwidth"'));
2326 $newmenu->add(
'/product/stock/stocktransfer/stocktransfer_card.php?action=create', $langs->trans(
'StockTransferNew'), 1, $user->hasRight(
'stocktransfer',
'stocktransfer',
'write'));
2327 $newmenu->add(
'/product/stock/stocktransfer/stocktransfer_list.php', $langs->trans(
'List'), 1, $user->hasRight(
'stocktransfer',
'stocktransfer',
'read'));
2332 $langs->load(
"stocks");
2334 $newmenu->add(
"/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans(
"Inventories"), 0, $user->hasRight(
'stock',
'lire'),
'', $mainmenu,
'stock', 0,
'',
'',
'',
img_picto(
'',
'inventory',
'class="paddingright pictofixedwidth"'));
2335 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"stock_inventories") {
2336 $newmenu->add(
"/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans(
"NewInventory"), 1, $user->hasRight(
'stock',
'creer'));
2337 $newmenu->add(
"/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans(
"List"), 1, $user->hasRight(
'stock',
'lire'));
2340 $newmenu->add(
"/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans(
"Inventories"), 0, $user->hasRight(
'stock',
'inventory_advance',
'read'),
'', $mainmenu,
'stock', 0,
'',
'',
'',
img_picto(
'',
'inventory',
'class="paddingright pictofixedwidth"'));
2341 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"stock_inventories") {
2342 $newmenu->add(
"/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans(
"NewInventory"), 1, $user->hasRight(
'stock',
'inventory_advance',
'write'));
2343 $newmenu->add(
"/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans(
"List"), 1, $user->hasRight(
'stock',
'inventory_advance',
'read'));
2350 $langs->load(
"sendings");
2351 $newmenu->add(
"/expedition/index.php?leftmenu=sendings", $langs->trans(
"Shipments"), 0, $user->hasRight(
'expedition',
'lire'),
'', $mainmenu,
'sendings', 0,
'',
'',
'',
img_picto(
'',
'shipment',
'class="paddingright pictofixedwidth"'));
2352 $newmenu->add(
"/expedition/card.php?action=create&leftmenu=sendings", $langs->trans(
"NewSending"), 1, $user->hasRight(
'expedition',
'creer'));
2353 $newmenu->add(
"/expedition/list.php?leftmenu=sendings", $langs->trans(
"List"), 1, $user->hasRight(
'expedition',
'lire'));
2354 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"sendings") {
2355 $newmenu->add(
"/expedition/list.php?leftmenu=sendings&search_status=0", $langs->trans(
"StatusSendingDraftShort"), 2, $user->hasRight(
'expedition',
'lire'));
2356 $newmenu->add(
"/expedition/list.php?leftmenu=sendings&search_status=1", $langs->trans(
"StatusSendingValidatedShort"), 2, $user->hasRight(
'expedition',
'lire'));
2357 $newmenu->add(
"/expedition/list.php?leftmenu=sendings&search_status=2", $langs->trans(
"StatusSendingProcessedShort"), 2, $user->hasRight(
'expedition',
'lire'));
2360 $newmenu->add(
"/expedition/stats/index.php?leftmenu=sendings", $langs->trans(
"Statistics"), 1, $user->hasRight(
'expedition',
'lire'));
2366 $langs->load(
"receptions");
2367 $newmenu->add(
"/reception/index.php?leftmenu=receptions", $langs->trans(
"Receptions"), 0, $user->hasRight(
'reception',
'lire'),
'', $mainmenu,
'receptions', 0,
'',
'',
'',
img_picto(
'',
'dollyrevert',
'class="pictofixedwidth", style="text-align: right;"'));
2368 $newmenu->add(
"/reception/card.php?action=create&leftmenu=receptions", $langs->trans(
"NewReception"), 1, $user->hasRight(
'reception',
'creer'));
2369 $newmenu->add(
"/reception/list.php?leftmenu=receptions", $langs->trans(
"List"), 1, $user->hasRight(
'reception',
'lire'));
2370 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"receptions") {
2371 $newmenu->add(
"/reception/list.php?leftmenu=receptions&search_status=0", $langs->trans(
"StatusReceptionDraftShort"), 2, $user->hasRight(
'reception',
'lire'));
2373 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"receptions") {
2374 $newmenu->add(
"/reception/list.php?leftmenu=receptions&search_status=1", $langs->trans(
"StatusReceptionValidatedShort"), 2, $user->hasRight(
'reception',
'lire'));
2376 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"receptions") {
2377 $newmenu->add(
"/reception/list.php?leftmenu=receptions&search_status=2", $langs->trans(
"StatusReceptionProcessedShort"), 2, $user->hasRight(
'reception',
'lire'));
2380 $newmenu->add(
"/reception/stats/index.php?leftmenu=receptions", $langs->trans(
"Statistics"), 1, $user->hasRight(
'reception',
'lire'));
2396function get_left_menu_mrp($mainmenu, &$newmenu, $usemenuhider = 1, $leftmenu =
'none', $type_user = 0)
2398 global $user,
$conf, $langs;
2400 if ($mainmenu ==
'mrp') {
2403 $langs->load(
"mrp");
2405 $newmenu->add(
"", $langs->trans(
"MenuBOM"), 0, $user->hasRight(
'bom',
'read'),
'', $mainmenu,
'bom', 0,
'',
'',
'',
img_picto(
'',
'bom',
'class="paddingright pictofixedwidth"'));
2406 $newmenu->add(
"/bom/bom_card.php?leftmenu=bom&action=create", $langs->trans(
"NewBOM"), 1, $user->hasRight(
'bom',
'write'),
'', $mainmenu,
'bom');
2407 $newmenu->add(
"/bom/bom_list.php?leftmenu=bom", $langs->trans(
"List"), 1, $user->hasRight(
'bom',
'read'),
'', $mainmenu,
'bom');
2411 $langs->load(
"mrp");
2413 $newmenu->add(
"", $langs->trans(
"MenuMRP"), 0, $user->hasRight(
'mrp',
'read'),
'', $mainmenu,
'mrp', 0,
'',
'',
'',
img_picto(
'',
'mrp',
'class="paddingright pictofixedwidth"'));
2414 $newmenu->add(
"/mrp/mo_card.php?leftmenu=mrp&action=create", $langs->trans(
"NewMO"), 1, $user->hasRight(
'mrp',
'write'),
'', $mainmenu,
'');
2415 $newmenu->add(
"/mrp/mo_list.php?leftmenu=mrp", $langs->trans(
"List"), 1, $user->hasRight(
'mrp',
'read'),
'', $mainmenu,
'');
2432 global $user, $langs;
2434 if ($mainmenu ==
'project') {
2436 $langs->load(
"projects");
2438 $search_project_user =
GETPOSTINT(
'search_project_user');
2442 'perms' => (
string) (
int) $user->hasRight(
'projet',
'lire'),
2443 'module' =>
'projet'
2445 $listofmodulesforexternal = explode(
',',
getDolGlobalString(
'MAIN_MODULES_FOR_EXTERNAL'));
2448 $titleboth = $langs->trans(
"LeadsOrProjects");
2449 $titlenew = $langs->trans(
"NewLeadOrProject");
2451 $titleboth = $langs->trans(
"Projects");
2452 $titlenew = $langs->trans(
"NewProject");
2455 $titleboth = $langs->trans(
"Leads");
2456 $titlenew = $langs->trans(
"NewLead");
2460 $newmenu->add(
dolBuildUrl(
'/projet/index.php', [
'leftmenu' =>
'projects',
'search_project_user' => ($search_project_user ? $search_project_user :
'')]), $titleboth, 0, $user->hasRight(
'projet',
'lire'),
'', $mainmenu,
'projects', 0,
'',
'',
'',
img_picto(
'',
'project',
'class="paddingright pictofixedwidth"'));
2461 $newmenu->add(
dolBuildUrl(
'/projet/card.php', [
'leftmenu' =>
'projects',
'action' =>
'create',
'search_project_user' => ($search_project_user ? $search_project_user :
'')]), $titlenew, 1, $user->hasRight(
'projet',
'creer'));
2464 $newmenu->add(
"/projet/list.php?leftmenu=projects".($search_project_user ?
'&search_project_user='.$search_project_user :
'').
'&search_status=99', $langs->trans(
"List"), 1, $showmode,
'',
'project',
'list');
2466 $newmenu->add(
"/projet/list.php?leftmenu=projects".($search_project_user ?
'&search_project_user='.$search_project_user :
''), $langs->trans(
"List"), 1, $showmode,
'',
'project',
'list');
2467 $newmenu->add(
'/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99&search_opp_status=openedopp&contextpage=lead', $langs->trans(
"ListOpenLeads"), 2, $showmode);
2468 $newmenu->add(
'/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', $langs->trans(
"ListOpenProjects"), 2, $showmode);
2470 $newmenu->add(
dolBuildUrl(
'/projet/list.php', [
'mainmenu' =>
'project',
'leftmenu' =>
'list',
'search_usage_opportunity' => 1,
'search_status' => 99]), $langs->trans(
"List"), 2, $showmode);
2474 $newmenu->add(
dolBuildUrl(
'/projet/stats/index.php', [
'leftmenu' =>
'projects']), $langs->trans(
"Statistics"), 1, $user->hasRight(
'projet',
'lire'));
2479 $langs->load(
"categories");
2480 $newmenu->add(
dolBuildUrl(
'/categories/categorie_list.php', [
'leftmenu' =>
'cat',
'type' => 6]), $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'lire'),
'', $mainmenu,
'cat');
2485 $newmenu->add(
"/projet/activity/index.php?leftmenu=tasks".($search_project_user ?
'&search_project_user='.$search_project_user :
''), $langs->trans(
"Activities"), 0, $user->hasRight(
'projet',
'lire'),
'',
'project',
'tasks', 0,
'',
'',
'',
img_picto(
'',
'projecttask',
'class="paddingright pictofixedwidth"'));
2486 $newmenu->add(
"/projet/tasks.php?leftmenu=tasks&action=create", $langs->trans(
"NewTask"), 1, $user->hasRight(
'projet',
'creer'));
2487 $newmenu->add(
"/projet/tasks/list.php?leftmenu=tasks".($search_project_user ?
'&search_project_user='.$search_project_user :
''), $langs->trans(
"List"), 1, $user->hasRight(
'projet',
'lire'));
2489 $newmenu->add(
"/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans(
"Statistics"), 1, $user->hasRight(
'projet',
'lire'));
2492 $optionTimesheet =
getDolGlobalString(
'PROJECT_OPEN_ALWAYS_ON_TIMESHEET',
"perweek");
2493 $newmenu->add(
"/projet/activity/".$optionTimesheet.
".php?leftmenu=tasks".($search_project_user ?
'&search_project_user='.$search_project_user :
''), $langs->trans(
"TimeEntry"), 0, $user->hasRight(
'projet',
'lire'),
'',
'project',
'timespent', 0,
'',
'',
'',
img_picto(
'',
'timespent',
'class="paddingright pictofixedwidth"'));
2494 $newmenu->add(
"/projet/tasks/time.php?leftmenu=tasks".($search_project_user ?
'&search_project_user='.$search_project_user :
''), $langs->trans(
"List"), 1, $user->hasRight(
'projet',
'lire'));
2510function get_left_menu_hrm($mainmenu, &$newmenu, $usemenuhider = 1, $leftmenu =
'none', $type_user = 0)
2512 global $user, $langs;
2514 if ($mainmenu ==
'hrm') {
2517 $langs->load(
"hrm");
2519 $newmenu->add(
dolBuildUrl(
'/user/list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm',
'contextpage' =>
'employeelist']), $langs->trans(
"Employees"), 0, $user->hasRight(
'user',
'user',
'read'),
'', $mainmenu,
'hrm', 0,
'',
'',
'',
img_picto(
'',
'user',
'class="paddingright pictofixedwidth"'));
2520 $newmenu->add(
dolBuildUrl(
'/user/card.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm',
'action' =>
'create',
'employee' => 1]), $langs->trans(
"NewEmployee"), 1, $user->hasRight(
'user',
'user',
'write'));
2521 $newmenu->add(
dolBuildUrl(
'/user/list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm',
'contextpage' =>
'employeelist']), $langs->trans(
"List"), 1, $user->hasRight(
'user',
'user',
'read'));
2523 $newmenu->add(
dolBuildUrl(
'/hrm/skill_list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"SkillsManagement"), 0, $user->hasRight(
'hrm',
'all',
'read'),
'', $mainmenu,
'hrm_sm', 0,
'',
'',
'',
img_picto(
'',
'shapes',
'class="paddingright pictofixedwidth"'));
2526 $newmenu->add(
dolBuildUrl(
'/hrm/skill_list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"Skills"), 1, $user->hasRight(
'hrm',
'all',
'read'),
'', $mainmenu,
'hrm_sm', 0,
'',
'',
'',
img_picto(
'',
'shapes',
'class="paddingright pictofixedwidth"'));
2531 $newmenu->add(
dolBuildUrl(
'/hrm/job_list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"JobsProfiles"), 1, $user->hasRight(
'hrm',
'all',
'read'),
'', $mainmenu,
'hrm_sm', 0,
'',
'',
'',
img_picto(
'',
'technic',
'class="paddingright pictofixedwidth"'));
2536 $newmenu->add(
dolBuildUrl(
'/hrm/position_list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"EmployeePositions"), 1, $user->hasRight(
'hrm',
'all',
'read'),
'', $mainmenu,
'hrm_sm', 0,
'',
'',
'',
img_picto(
'',
'user-cog',
'class="paddingright pictofixedwidth"'));
2541 $newmenu->add(
dolBuildUrl(
'/hrm/evaluation_list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"Evals"), 1, $user->hasRight(
'hrm',
'evaluation',
'read'),
'', $mainmenu,
'hrm_sm', 0,
'',
'',
'',
img_picto(
'',
'user',
'class="paddingright pictofixedwidth"'));
2544 $newmenu->add(
dolBuildUrl(
'/hrm/compare.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'hrm_sm']), $langs->trans(
"SkillComparison"), 1, (
int) ($user->hasRight(
'hrm',
'evaluation',
'read') || $user->hasRight(
'hrm',
'compare_advance',
'read')));
2550 $langs->loadLangs(array(
"holiday",
"trips"));
2552 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"CPTitreMenu"), 0, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday', 0,
'',
'',
'',
img_picto(
'',
'holiday',
'class="paddingright pictofixedwidth"'));
2553 $newmenu->add(
dolBuildUrl(
'/holiday/card.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday',
'action' =>
'create']), $langs->trans(
"New"), 1, $user->hasRight(
'holiday',
'write'),
'', $mainmenu);
2554 $newmenu->add(
dolBuildUrl(
'/holiday/card_group.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday',
'action' =>
'create']), $langs->trans(
"NewHolidayForGroup"), 1, (
int) ($user->hasRight(
'holiday',
'writeall') && $user->hasRight(
'holiday',
'readall')),
'', $mainmenu,
'holiday_sm');
2555 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"List"), 1, $user->hasRight(
'holiday',
'read'),
'', $mainmenu);
2556 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"holiday") {
2557 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'search_status' => 1,
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"DraftCP"), 2, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2558 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'search_status' => 2,
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"ToReviewCP"), 2, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2559 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'search_status' => 3,
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"ApprovedCP"), 2, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2560 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'search_status' => 4,
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"CancelCP"), 2, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2561 $newmenu->add(
dolBuildUrl(
'/holiday/list.php', [
'search_status' => 5,
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"RefuseCP"), 2, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2563 $newmenu->add(
dolBuildUrl(
'/holiday/define_holiday.php', [
'mainmenu' =>
'hrm']), $langs->trans(
"MenuConfCP"), 1, $user->hasRight(
'holiday',
'read'),
'', $mainmenu,
'holiday_sm');
2564 $newmenu->add(
dolBuildUrl(
'/holiday/month_report.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"MenuReportMonth"), 1, $user->hasRight(
'holiday',
'readall'),
'', $mainmenu,
'holiday_sm');
2565 $newmenu->add(
dolBuildUrl(
'/holiday/view_log.php', [
'mainmenu' =>
'hrm',
'leftmenu' =>
'holiday']), $langs->trans(
"MenuLogCP"), 1, $user->hasRight(
'holiday',
'define_holiday'),
'', $mainmenu,
'holiday_sm');
2570 $langs->loadLangs(array(
"trips",
"bills"));
2571 $newmenu->add(
dolBuildUrl(
'/expensereport/index.php', [
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"TripsAndExpenses"), 0, $user->hasRight(
'expensereport',
'lire'),
'', $mainmenu,
'expensereport', 0,
'',
'',
'',
img_picto(
'',
'expensereport',
'class="paddingright pictofixedwidth"'));
2572 $newmenu->add(
dolBuildUrl(
'/expensereport/card.php', [
'action' =>
'create',
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"New"), 1, $user->hasRight(
'expensereport',
'creer'));
2573 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"List"), 1, $user->hasRight(
'expensereport',
'lire'));
2574 if ($usemenuhider || empty($leftmenu) || $leftmenu ==
"expensereport") {
2575 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 0,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Draft"), 2, $user->hasRight(
'expensereport',
'lire'));
2576 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 2,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Validated"), 2, $user->hasRight(
'expensereport',
'lire'));
2577 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 5,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Approved"), 2, $user->hasRight(
'expensereport',
'lire'));
2578 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 6,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Paid"), 2, $user->hasRight(
'expensereport',
'lire'));
2579 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 4,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Canceled"), 2, $user->hasRight(
'expensereport',
'lire'));
2580 $newmenu->add(
dolBuildUrl(
'/expensereport/list.php', [
'search_status' => 99,
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Refused"), 2, $user->hasRight(
'expensereport',
'lire'));
2583 $newmenu->add(
dolBuildUrl(
'/expensereport/payment/list.php', [
'leftmenu' =>
'expensereport_payments',
'mainmenu' =>
'hrm']), $langs->trans(
"Payments"), 1, (
int) ($user->hasRight(
'expensereport',
'read')));
2586 $newmenu->add(
dolBuildUrl(
'/expensereport/stats/index.php', [
'leftmenu' =>
'expensereport',
'mainmenu' =>
'hrm']), $langs->trans(
"Statistics"), 1, $user->hasRight(
'expensereport',
'lire'));
2592 $langs->load(
"projects");
2594 $search_project_user =
GETPOSTINT(
'search_project_user');
2596 $optionTimesheet =
getDolGlobalString(
'PROJECT_OPEN_ALWAYS_ON_TIMESHEET',
"perweek");
2597 $newmenu->add(
dolBuildUrl(
'/projet/activity/'.$optionTimesheet.
'.php', [
'leftmenu' =>
'tasks',
'search_project_user' => ($search_project_user ? $search_project_user :
'')]), $langs->trans(
"TimeEntry"), 0, $user->hasRight(
'projet',
'lire'),
'', $mainmenu,
'timespent', 0,
'',
'',
'',
img_picto(
'',
'timespent',
'class="paddingright pictofixedwidth"'));
2616 global $user, $langs;
2618 if ($mainmenu ==
'tools') {
2620 $titleindex = $langs->trans(
"Categories");
2621 $newmenu->add(
dolBuildUrl(
'/categories/index.php', [
'leftmenu' =>
'category']), $titleindex, 0, $user->hasRight(
'category',
'read'),
'', $mainmenu,
'category', 5,
'',
'',
'',
img_picto(
'',
'category',
'class="paddingright pictofixedwidth"'));
2624 if (!
getDolGlobalInt(
'MENU_HIDE_EMAIL_TEMPLATES') && empty($user->socid)) {
2625 $langs->load(
"mails");
2626 $newmenu->add(
dolBuildUrl(
'/admin/mails_templates.php', [
'leftmenu' =>
'email_templates']), $langs->trans(
"EMailTemplates"), 0, 1,
'', $mainmenu,
'email_templates', 10,
'',
'',
'',
img_picto(
'',
'email',
'class="paddingright pictofixedwidth"'));
2630 $titleindex = $langs->trans(
"EMailings");
2631 $titlenew = $langs->trans(
"NewMailing");
2632 $titlelist = $langs->trans(
"List");
2634 $titleindex .=
' | '.$langs->trans(
"SMSings");
2635 $titlenew .=
' | '.$langs->trans(
"NewSMSing");
2637 $newmenu->add(
dolBuildUrl(
'/comm/mailing/index.php', [
'leftmenu' =>
'mailing']), $titleindex, 0, $user->hasRight(
'mailing',
'lire'),
'', $mainmenu,
'mailing', 15,
'',
'',
'',
img_picto(
'',
'mail-bulk',
'class="paddingright pictofixedwidth"'));
2638 $newmenu->add(
dolBuildUrl(
'/comm/mailing/card.php', [
'leftmenu' =>
'mailing',
'action' =>
'create']), $titlenew, 1, $user->hasRight(
'mailing',
'creer'));
2639 $newmenu->add(
dolBuildUrl(
'/comm/mailing/list.php', [
'leftmenu' =>
'mailing']), $titlelist, 1, $user->hasRight(
'mailing',
'lire'));
2642 $title =
"ImportExportArea";
2644 $title =
"FormatedImport";
2647 $title =
"FormatedExport";
2650 $langs->load(
"exports");
2651 $newmenu->add(
dolBuildUrl(
'/imports/index.php', [
'leftmenu' =>
'import']), $langs->trans($title), 0, (
int) ($user->hasRight(
'import',
'run') || $user->hasRight(
'export',
'lire')),
'', $mainmenu,
'import', 20,
'',
'',
'',
img_picto(
'',
'technic',
'class="paddingright pictofixedwidth"'));
2652 $newmenu->add(
dolBuildUrl(
'/imports/import.php', [
'leftmenu' =>
'import']), $langs->trans(
"NewImport"), 1, $user->hasRight(
'import',
'run'));
2653 $newmenu->add(
dolBuildUrl(
'/exports/export.php', [
'leftmenu' =>
'export']), $langs->trans(
"NewExport"), 1, $user->hasRight(
'export',
'lire'));
2662 $newmenu->add(
dolBuildUrl(
'/core/customreports.php', [
'leftmenu' =>
'customreports']), $langs->trans(
"BICustomReports"), 0, $user->isExternalUser() ? 0 : 1,
'', $mainmenu,
'customreports', 100,
'',
'',
'',
img_picto(
'',
'graph',
'class="paddingright pictofixedwidth"'));
2678 global $user, $langs;
2680 if ($mainmenu ==
'members') {
2683 $langs->loadLangs(array(
"members",
"compta"));
2685 $newmenu->add(
dolBuildUrl(
'/adherents/index.php', [
'leftmenu' =>
'members',
'mainmenu' =>
'members']), $langs->trans(
"Members"), 0, $user->hasRight(
'adherent',
'read'),
'', $mainmenu,
'members', 0,
'',
'',
'',
img_picto(
'',
'member',
'class="paddingright pictofixedwidth"'));
2686 $newmenu->add(
dolBuildUrl(
'/adherents/card.php', [
'leftmenu' =>
'members',
'action' =>
'create']), $langs->trans(
"NewMember"), 1, $user->hasRight(
'adherent',
'write'));
2687 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members']), $langs->trans(
"List"), 1, $user->hasRight(
'adherent',
'read'));
2688 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => -1]), $langs->trans(
"MenuMembersToValidate"), 2, $user->hasRight(
'adherent',
'read'));
2689 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => 1]), $langs->trans(
"MenuMembersValidated"), 2, $user->hasRight(
'adherent',
'read'));
2690 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => 1,
'filter' =>
'waitingsubscription']), $langs->trans(
"WaitingSubscription"), 3, $user->hasRight(
'adherent',
'read'));
2691 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => 1,
'filter' =>
'uptodate']), $langs->trans(
"UpToDate"), 3, $user->hasRight(
'adherent',
'read'));
2692 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => 1,
'filter' =>
'outofdate']), $langs->trans(
"OutOfDate"), 3, $user->hasRight(
'adherent',
'read'));
2693 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => 0]), $langs->trans(
"MenuMembersResiliated"), 2, $user->hasRight(
'adherent',
'read'));
2694 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' => -2]), $langs->trans(
"MenuMembersExcluded"), 2, $user->hasRight(
'adherent',
'read'));
2696 $newmenu->add(
dolBuildUrl(
'/adherents/stats/geo.php', [
'leftmenu' =>
'members']), $langs->trans(
"MenuMembersStats"), 1, $user->hasRight(
'adherent',
'read'));
2699 $newmenu->add(
dolBuildUrl(
'/adherents/cartes/carte.php', [
'leftmenu' =>
'export']), $langs->trans(
"MembersCards"), 1, $user->hasRight(
'adherent',
'export'));
2702 $langs->load(
"categories");
2703 $newmenu->add(
dolBuildUrl(
'/categories/categorie_list.php', [
'leftmenu'=>
'cat',
'type' => 3]), $langs->trans(
"Categories"), 1, $user->hasRight(
'categorie',
'read'),
'', $mainmenu,
'cat');
2706 $newmenu->add(
dolBuildUrl(
'/adherents/index.php', [
'leftmenu' =>
'members',
'mainmenu'=>
'members']), $langs->trans(
"Subscriptions"), 0, $user->hasRight(
'adherent',
'cotisation',
'read'),
'', $mainmenu,
'members', 0,
'',
'',
'',
img_picto(
'',
'payment',
'class="paddingright pictofixedwidth"'));
2707 $newmenu->add(
dolBuildUrl(
'/adherents/list.php', [
'leftmenu' =>
'members',
'statut' =>
'-1,1',
'mainmenu' =>
'members']), $langs->trans(
"NewMembership"), 1, $user->hasRight(
'adherent',
'cotisation',
'write'));
2708 $newmenu->add(
dolBuildUrl(
'/adherents/subscription/list.php', [
'leftmenu' =>
'members']), $langs->trans(
"List"), 1, $user->hasRight(
'adherent',
'cotisation',
'read'));
2710 $newmenu->add(
dolBuildUrl(
'/adherents/stats/index.php', [
'leftmenu' =>
'members']), $langs->trans(
"MenuMembersStats"), 1, $user->hasRight(
'adherent',
'read'));
2717 $newmenu->add(
dolBuildUrl(
'/adherents/type.php', [
'leftmenu' =>
'setup',
'mainmenu' =>
'members']), $langs->trans(
"MembersTypes"), 0, $user->hasRight(
'adherent',
'configurer'),
'', $mainmenu,
'setup', 0,
'',
'',
'',
img_picto(
'',
'members',
'class="paddingright pictofixedwidth"'));
2718 $newmenu->add(
dolBuildUrl(
'/adherents/type.php', [
'leftmenu' =>
'setup',
'mainmenu' =>
'members',
'action' =>
'create']), $langs->trans(
"New"), 1, $user->hasRight(
'adherent',
'configurer'));
2719 $newmenu->add(
dolBuildUrl(
'/adherents/type.php', [
'leftmenu' =>
'setup',
'mainmenu' =>
'members']), $langs->trans(
"List"), 1, $user->hasRight(
'adherent',
'configurer'));
$id
Support class for third parties, contacts, members, users or resources.
print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout=0, $mode='')
Core function to output the top menu eldy.
get_left_menu_home($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu HOME.
print_start_menu_entry($idsel, $classname, $showmode)
Output start menu entry.
print_end_menu_entry($showmode)
Output end menu entry.
get_left_menu_members($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu MEMBERS.
print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname, $atarget, $menuval=array())
Output menu entry.
get_left_menu_products($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu PRODUCTS-SERVICES.
get_left_menu_bank($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu BANK.
get_left_menu_hrm($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu HRM.
get_left_menu_commercial($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu COMMERCIAL (propal, commande, supplier_proposal, supplier_order, contrat,...
print_end_menu_array()
Output menu array.
get_left_menu_projects($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu PROJECTS.
get_left_menu_tools($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu TOOLS.
print_start_menu_array()
Output start menu array.
get_left_menu_mrp($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu PRODUCTS-SERVICES MRP - GPAO.
get_left_menu_thridparties($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left Menu THIRDPARTIES.
get_left_menu_accountancy($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left COMPTA-FINANCIAL (accountancy)
get_left_menu_billing($mainmenu, &$newmenu, $usemenuhider=1, $leftmenu='none', $type_user=0)
Get left COMPTA-FINANCIAL.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
isVisibleToUserType($type_user, &$menuentry, &$listofmodulesforexternal)
Function to test if an entry is enabled or not.
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
dolBuildUrl($url, $params=[], $addtoken=false, $anchor='')
Return path of url.
getDolUserString($key, $default='', $tmpuser=null)
Return Dolibarr user constant string value.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by the value of a given key, which produces ascending (default) or descending out...
newToken()
Return the value of token currently saved into session with name 'newtoken'.
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '...' if string larger than length.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php