Passed
Push — master ( 4e88da...5feb35 )
by Alxarafe
26:36
created

EldyLib   F

Complexity

Total Complexity 528

Size/Duplication

Total Lines 2277
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 1081
dl 0
loc 2277
rs 1.276
c 0
b 0
f 0
wmc 528

7 Methods

Rating   Name   Duplication   Size   Complexity  
F print_eldy_menu() 0 410 109
A print_text_menu_entry() 0 20 5
A print_end_menu_entry() 0 6 2
A print_end_menu_array() 0 5 1
A print_start_menu_array() 0 6 2
F print_left_eldy_menu() 0 1744 407
A print_start_menu_entry() 0 6 2

How to fix   Complexity   

Complex Class

Complex classes like EldyLib often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use EldyLib, and based on these observations, apply Extract Interface, too.

1
<?php
2
/* Copyright (C) 2010-2014 Laurent Destailleur  <[email protected]>
3
 * Copyright (C) 2010      Regis Houssin        <[email protected]>
4
 * Copyright (C) 2012-2015 Juanjo Menent        <[email protected]>
5
 * Copyright (C) 2013      Cédric Salvador      <[email protected]>
6
 * Copyright (C) 2015      Marcos García        <[email protected]>
7
 * Copyright (C) 2018      Ferran Marcet        <[email protected]>
8
 * Copyright (C) 2018       Frédéric France         <[email protected]>
9
 * Copyright (C) 2018-2019  Alxarafe                <[email protected]>
10
 *
11
 * This program is free software; you can redistribute it and/or modify
12
 * it under the terms of the GNU General Public License as published by
13
 * the Free Software Foundation; either version 3 of the License, or
14
 * (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23
 * or see http://www.gnu.org/
24
 */
25
namespace Alixar\Helpers;
26
27
/**
28
 *  \file		htdocs/core/menus/standard/eldy.lib.php
29
 *  \brief		Library for file eldy menus
30
 */
31
use Alxarafe\Helpers\Config;
32
use Alixar\Base\Menubase;
33
use Alixar\Base\Conf;
34
use Alixar\Helpers\DolUtils;
35
36
class EldyLib
37
{
38
39
    /**
40
     * Core function to output top menu eldy
41
     *
42
     * @param 	DoliDB	Config::$dbEngine				Database handler
43
     * @param 	string	$atarget		Target (Example: '' or '_top')
44
     * @param 	int		$type_user     	0=Menu for backoffice, 1=Menu for front office
45
     * @param  	array	$tabMenu        If array with menu entries already loaded, we put this array here (in most cases, it's empty)
46
     * @param	Menu	$menu			Object Menu to return back list of menu entries
0 ignored issues
show
Bug introduced by
The type Alixar\Helpers\Menu was not found. Did you mean Menu? If so, make sure to prefix the type with \.
Loading history...
47
     * @param	int		$noout			1=Disable output (Initialise &$menu only).
48
     * @param	string	$mode			'top', 'topnb', 'left', 'jmobile'
49
     * @return	int						0
50
     */
51
    static function print_eldy_menu($dba, $atarget, $type_user, &$tabMenu, &$menu, $noout = 0, $mode = '')
52
    {
53
        //global Globals::$user, $conf, $langs, $dolibarr_main_db_name;
54
55
        $mainmenu = (empty($_SESSION["mainmenu"]) ? '' : $_SESSION["mainmenu"]);
56
        $leftmenu = (empty($_SESSION["leftmenu"]) ? '' : $_SESSION["leftmenu"]);
57
58
        $id = 'mainmenu';
59
        $listofmodulesforexternal = explode(',', Conf::$global->MAIN_MODULES_FOR_EXTERNAL ?? '');
60
61
        if (empty($noout)) {
62
            EldyLib::print_start_menu_array();
63
        }
64
65
        $usemenuhider = (DolUtils::GETPOST('testmenuhider', 'int') || !empty(Conf::$global->MAIN_TESTMENUHIDER));
66
67
// Show/Hide vertical menu
68
        if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty(Conf::$global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
69
            $showmode = 1;
70
            $classname = 'class="tmenu menuhider"';
71
            $idsel = 'menu';
72
73
            $menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);
74
        }
75
76
// Home
77
        $showmode = 1;
78
        $classname = "";
79
        if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "home") {
80
            $classname = 'class="tmenusel"';
81
            $_SESSION['idmenu'] = '';
82
        } else {
83
            $classname = 'class="tmenu"';
84
        }
85
        $idsel = 'home';
86
87
        $titlehome = Globals::$langs->trans("Home");
88
        if (!empty(Conf::$global->THEME_TOPMENU_DISABLE_IMAGE)) {
89
            $titlehome = '&nbsp; <span class="fa fa-home"></span> &nbsp;';
90
        }
91
//$menu->add('/index.php?mainmenu=home&leftmenu=home', $titlehome, 0, $showmode, $atarget, "home", '', 10, $id, $idsel, $classname);
92
        $menu->add('?mainmenu=home&leftmenu=home', $titlehome, 0, $showmode, $atarget, "home", '', 10, $id, $idsel, $classname);
93
94
// Members
95
        $tmpentry = array(
96
            'enabled' => (!empty($conf->adherent->enabled)),
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $conf seems to be never defined.
Loading history...
97
            'perms' => (!empty(Globals::$user->rights->adherent->lire)),
98
            'module' => 'adherent',
99
        );
100
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
101
        if ($showmode) {
102
            $classname = "";
103
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "members") {
104
                $classname = 'class="tmenusel"';
105
                $_SESSION['idmenu'] = '';
106
            } else {
107
                $classname = 'class="tmenu"';
108
            }
109
            $idsel = 'members';
110
111
//$menu->add('/adherents/index.php?mainmenu=members&leftmenu=', Globals::$langs->trans("MenuMembers"), 0, $showmode, $atarget, "members", '', 18, $id, $idsel, $classname);
112
            $menu->add('?controller=adherents&method=index&mainmenu=members&leftmenu=', Globals::$langs->trans("MenuMembers"), 0, $showmode, $atarget, "members", '', 18, $id, $idsel, $classname);
113
        }
114
115
// Third parties
116
        $tmpentry = array(
117
            'enabled' => ((!empty($conf->societe->enabled) && (empty(Conf::$global->SOCIETE_DISABLE_PROSPECTS) || empty(Conf::$global->SOCIETE_DISABLE_CUSTOMERS))) || !empty($conf->fournisseur->enabled)),
118
            'perms' => (!empty(Globals::$user->rights->societe->lire) || !empty(Globals::$user->rights->fournisseur->lire)),
119
            'module' => 'societe|fournisseur',
120
        );
121
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
122
        if ($showmode) {
123
// Load translation files required by the page
124
            Globals::$langs->loadLangs(array("companies", "suppliers"));
125
126
            $classname = "";
127
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "companies") {
128
                $classname = 'class="tmenusel"';
129
                $_SESSION['idmenu'] = '';
130
            } else {
131
                $classname = 'class="tmenu"';
132
            }
133
            $idsel = 'companies';
134
135
//$menu->add('/societe/index.php?mainmenu=companies&leftmenu=', Globals::$langs->trans("ThirdParties"), 0, $showmode, $atarget, "companies", '', 20, $id, $idsel, $classname);
136
            $menu->add('?controller=societe&method=index&mainmenu=companies&leftmenu=', Globals::$langs->trans("ThirdParties"), 0, $showmode, $atarget, "companies", '', 20, $id, $idsel, $classname);
137
        }
138
139
// Products-Services
140
        $tmpentry = array(
141
            'enabled' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)),
142
            'perms' => (!empty(Globals::$user->rights->produit->lire) || !empty(Globals::$user->rights->service->lire)),
143
            'module' => 'product|service',
144
        );
145
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
146
        if ($showmode) {
147
            Globals::$langs->load("products");
148
149
            $classname = "";
150
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "products") {
151
                $classname = 'class="tmenusel"';
152
                $_SESSION['idmenu'] = '';
153
            } else {
154
                $classname = 'class="tmenu"';
155
            }
156
            $idsel = 'products';
157
158
            $chaine = "";
159
            if (!empty($conf->product->enabled)) {
160
                $chaine .= Globals::$langs->trans("TMenuProducts");
161
            }
162
            if (!empty($conf->product->enabled) && !empty($conf->service->enabled)) {
163
                $chaine .= " | ";
164
            }
165
            if (!empty($conf->service->enabled)) {
166
                $chaine .= Globals::$langs->trans("TMenuServices");
167
            }
168
169
//$menu->add('/product/index.php?mainmenu=products&leftmenu=', $chaine, 0, $showmode, $atarget, "products", '', 30, $id, $idsel, $classname);
170
            $menu->add('?controller=product&method=index&mainmenu=products&leftmenu=', $chaine, 0, $showmode, $atarget, "products", '', 30, $id, $idsel, $classname);
171
        }
172
173
// Projects
174
        $tmpentry = array('enabled' => (!empty($conf->projet->enabled)),
175
            'perms' => (!empty(Globals::$user->rights->projet->lire)),
176
            'module' => 'projet');
177
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
178
        if ($showmode) {
179
            Globals::$langs->load("projects");
180
181
            $classname = "";
182
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "project") {
183
                $classname = 'class="tmenusel"';
184
                $_SESSION['idmenu'] = '';
185
            } else {
186
                $classname = 'class="tmenu"';
187
            }
188
            $idsel = 'project';
189
190
            $title = Globals::$langs->trans("LeadsOrProjects"); // Leads and opportunities by default
191
            $showmodel = $showmodep = $showmode;
192
            if (empty(Conf::$global->PROJECT_USE_OPPORTUNITIES)) {
193
                $title = Globals::$langs->trans("Projects");
194
                $showmodel = 0;
195
            }
196
            if (Conf::$global->PROJECT_USE_OPPORTUNITIES == 2) {
197
                $title = Globals::$langs->trans("Leads");
198
                $showmodep = 0;
199
            }
200
201
//$menu->add('/projet/index.php?mainmenu=project&leftmenu=', $title, 0, $showmode, $atarget, "project", '', 35, $id, $idsel, $classname);
202
            $menu->add('?controller=projet&method=index&mainmenu=project&leftmenu=', $title, 0, $showmode, $atarget, "project", '', 35, $id, $idsel, $classname);
203
//$menu->add('/projet/index.php?mainmenu=project&leftmenu=&search_opp_status=openedopp', Globals::$langs->trans("ListLeads"), 0, $showmodel & Conf::$global->PROJECT_USE_OPPORTUNITIES, $atarget, "project", '', 70, $id, $idsel, $classname);
204
//$menu->add('/projet/index.php?mainmenu=project&leftmenu=&search_opp_status=notopenedopp', Globals::$langs->trans("ListProjects"), 0, $showmodep, $atarget, "project", '', 70, $id, $idsel, $classname);
205
        }
206
207
// Commercial
208
        $menuqualified = 0;
209
        if (!empty($conf->propal->enabled)) {
210
            $menuqualified++;
211
        }
212
        if (!empty($conf->commande->enabled)) {
213
            $menuqualified++;
214
        }
215
        if (!empty($conf->supplier_order->enabled)) {
216
            $menuqualified++;
217
        }
218
        if (!empty($conf->supplier_proposal->enabled)) {
219
            $menuqualified++;
220
        }
221
        if (!empty($conf->contrat->enabled)) {
222
            $menuqualified++;
223
        }
224
        if (!empty($conf->ficheinter->enabled)) {
225
            $menuqualified++;
226
        }
227
        $tmpentry = array(
228
            'enabled' => $menuqualified,
229
            'perms' => (!empty(Globals::$user->rights->societe->lire) || !empty(Globals::$user->rights->societe->contact->lire)),
230
            'module' => 'propal|commande|supplier_order|contrat|ficheinter',
231
        );
232
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
233
        if ($showmode) {
234
            Globals::$langs->load("commercial");
235
236
            $classname = "";
237
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "commercial") {
238
                $classname = 'class="tmenusel"';
239
                $_SESSION['idmenu'] = '';
240
            } else {
241
                $classname = 'class="tmenu"';
242
            }
243
            $idsel = 'commercial';
244
245
//$menu->add('/comm/index.php?mainmenu=commercial&leftmenu=', Globals::$langs->trans("Commercial"), 0, $showmode, $atarget, "commercial", "", 40, $id, $idsel, $classname);
246
            $menu->add('?controller=comm&method=index&mainmenu=commercial&leftmenu=', Globals::$langs->trans("Commercial"), 0, $showmode, $atarget, "commercial", "", 40, $id, $idsel, $classname);
247
        }
248
249
// Billing - Financial
250
        $menuqualified = 0;
251
        if (!empty($conf->facture->enabled)) {
252
            $menuqualified++;
253
        }
254
        if (!empty($conf->don->enabled)) {
255
            $menuqualified++;
256
        }
257
        if (!empty($conf->tax->enabled)) {
258
            $menuqualified++;
259
        }
260
        if (!empty($conf->salaries->enabled)) {
261
            $menuqualified++;
262
        }
263
        if (!empty($conf->supplier_invoice->enabled)) {
264
            $menuqualified++;
265
        }
266
        if (!empty($conf->loan->enabled)) {
267
            $menuqualified++;
268
        }
269
        $tmpentry = array(
270
            'enabled' => $menuqualified,
271
            'perms' => (!empty(Globals::$user->rights->facture->lire) || !empty(Globals::$user->rights->don->lire) || !empty(Globals::$user->rights->tax->charges->lire) || !empty(Globals::$user->rights->salaries->read) || !empty(Globals::$user->rights->fournisseur->facture->lire) || !empty(Globals::$user->rights->loan->read)),
272
            'module' => 'facture|supplier_invoice|don|tax|salaries|loan',
273
        );
274
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
275
        if ($showmode) {
276
            Globals::$langs->load("compta");
277
278
            $classname = "";
279
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "billing") {
280
                $classname = 'class="tmenusel"';
281
                $_SESSION['idmenu'] = '';
282
            } else {
283
                $classname = 'class="tmenu"';
284
            }
285
            $idsel = 'billing';
286
287
//$menu->add('/compta/index.php?mainmenu=billing&leftmenu=', Globals::$langs->trans("MenuFinancial"), 0, $showmode, $atarget, "billing", '', 50, $id, $idsel, $classname);
288
            $menu->add('?controller=compta&method=index&mainmenu=billing&leftmenu=', Globals::$langs->trans("MenuFinancial"), 0, $showmode, $atarget, "billing", '', 50, $id, $idsel, $classname);
289
        }
290
291
// Bank
292
        $tmpentry = array(
293
            'enabled' => (!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)),
294
            'perms' => (!empty(Globals::$user->rights->banque->lire) || !empty(Globals::$user->rights->prelevement->lire)),
295
            'module' => 'banque|prelevement',
296
        );
297
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
298
        if ($showmode) {
299
// Load translation files required by the page
300
            Globals::$langs->loadLangs(array("compta", "banks"));
301
302
            $classname = "";
303
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "bank") {
304
                $classname = 'class="tmenusel"';
305
                $_SESSION['idmenu'] = '';
306
            } else
307
                $classname = 'class="tmenu"';
308
            $idsel = 'bank';
309
310
//$menu->add('/compta/bank/list.php?mainmenu=bank&leftmenu=', Globals::$langs->trans("MenuBankCash"), 0, $showmode, $atarget, "bank", '', 52, $id, $idsel, $classname);
311
            $menu->add('?controller=compta/bank&method=list&mainmenu=bank&leftmenu=', Globals::$langs->trans("MenuBankCash"), 0, $showmode, $atarget, "bank", '', 52, $id, $idsel, $classname);
312
        }
313
314
// Accounting
315
        $menuqualified = 0;
316
        if (!empty($conf->comptabilite->enabled)) {
317
            $menuqualified++;
318
        }
319
        if (!empty($conf->accounting->enabled)) {
320
            $menuqualified++;
321
        }
322
        if (!empty($conf->asset->enabled)) {
323
            $menuqualified++;
324
        }
325
        $tmpentry = array(
326
            'enabled' => $menuqualified,
327
            'perms' => (!empty(Globals::$user->rights->compta->resultat->lire) || !empty(Globals::$user->rights->accounting->mouvements->lire) || !empty(Globals::$user->rights->asset->read)),
328
            'module' => 'comptabilite|accounting',
329
        );
330
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
331
        if ($showmode) {
332
            Globals::$langs->load("compta");
333
334
            $classname = "";
335
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") {
336
                $classname = 'class="tmenusel"';
337
                $_SESSION['idmenu'] = '';
338
            } else {
339
                $classname = 'class="tmenu"';
340
            }
341
            $idsel = 'accountancy';
342
343
//$menu->add('/accountancy/index.php?mainmenu=accountancy&leftmenu=', Globals::$langs->trans("MenuAccountancy"), 0, $showmode, $atarget, "accountancy", '', 54, $id, $idsel, $classname);
344
            $menu->add('?controller=accountancy&method=index&mainmenu=accountancy&leftmenu=', Globals::$langs->trans("MenuAccountancy"), 0, $showmode, $atarget, "accountancy", '', 54, $id, $idsel, $classname);
345
        }
346
347
// HRM
348
        $tmpentry = array(
349
            'enabled' => (!empty($conf->hrm->enabled) || !empty($conf->holiday->enabled) || !empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled)),
350
            'perms' => (!empty(Globals::$user->rights->hrm->employee->read) || !empty(Globals::$user->rights->holiday->write) || !empty(Globals::$user->rights->deplacement->lire) || !empty(Globals::$user->rights->expensereport->lire)),
351
            'module' => 'hrm|holiday|deplacement|expensereport',
352
        );
353
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
354
        if ($showmode) {
355
            Globals::$langs->load("holiday");
356
357
            $classname = "";
358
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "hrm") {
359
                $classname = 'class="tmenusel"';
360
                $_SESSION['idmenu'] = '';
361
            } else {
362
                $classname = 'class="tmenu"';
363
            }
364
            $idsel = 'hrm';
365
366
//$menu->add('/hrm/index.php?mainmenu=hrm&leftmenu=', Globals::$langs->trans("HRM"), 0, $showmode, $atarget, "hrm", '', 80, $id, $idsel, $classname);
367
            $menu->add('?controller=hrm&method=index&mainmenu=hrm&leftmenu=', Globals::$langs->trans("HRM"), 0, $showmode, $atarget, "hrm", '', 80, $id, $idsel, $classname);
368
        }
369
370
// Tools
371
        $tmpentry = array(
372
            'enabled' => 1,
373
            'perms' => 1,
374
            'module' => '',
375
        );
376
        $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
377
        if ($showmode) {
378
            Globals::$langs->load("other");
379
380
            $classname = "";
381
            if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "tools") {
382
                $classname = 'class="tmenusel"';
383
                $_SESSION['idmenu'] = '';
384
            } else {
385
                $classname = 'class="tmenu"';
386
            }
387
            $idsel = 'tools';
388
389
//$menu->add('/core/tools.php?mainmenu=tools&leftmenu=', Globals::$langs->trans("Tools"), 0, $showmode, $atarget, "tools", '', 90, $id, $idsel, $classname);
390
            $menu->add('?controller=core&method=tools&mainmenu=tools&leftmenu=', Globals::$langs->trans("Tools"), 0, $showmode, $atarget, "tools", '', 90, $id, $idsel, $classname);
391
        }
392
393
// Show personalized menus
394
        $menuArbo = new Menubase(Config::$dbEngine, 'eldy');
395
        $newTabMenu = $menuArbo->menuTopCharger('', '', $type_user, 'eldy', $tabMenu); // Return tabMenu with only top entries
396
397
        $num = count($newTabMenu);
398
        for ($i = 0; $i < $num; $i++) {
399
            $idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']);
400
401
            $showmode = DolUtils::isVisibleToUserType($type_user, $newTabMenu[$i], $listofmodulesforexternal);
402
            if ($showmode == 1) {
403
                $substitarray = array('__LOGIN__' => Globals::$user->login, '__USER_ID__' => Globals::$user->id, '__USER_SUPERVISOR_ID__' => Globals::$user->fk_user);
404
                $substitarray['__USERID__'] = Globals::$user->id; // For backward compatibility
405
                $newTabMenu[$i]['url'] = DolUtils::make_substitutions($newTabMenu[$i]['url'], $substitarray);
406
407
// url = url from host, shorturl = relative path into dolibarr sources
408
                $url = $shorturl = $newTabMenu[$i]['url'];
409
                if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) { // Do not change url content for external links
410
                    $tmp = explode('?', $newTabMenu[$i]['url'], 2);
411
                    $url = $shorturl = $tmp[0];
412
                    $param = (isset($tmp[1]) ? $tmp[1] : '');
413
414
                    if (!preg_match('/mainmenu/i', $param) || !preg_match('/leftmenu/i', $param)) {
415
                        $param .= ($param ? '&' : '') . 'mainmenu=' . $newTabMenu[$i]['mainmenu'] . '&leftmenu=';
416
                    }
417
//$url.="idmenu=".$newTabMenu[$i]['rowid'];    // Already done by menuLoad
418
                    $url = DolUtils::dol_buildpath($url, 1) . ($param ? '?' . $param : '');
419
//$shorturl = $shorturl.($param?'?'.$param:'');
420
                    $shorturl = $url;
421
                    if (BASE_URI) {
422
                        $shorturl = preg_replace('/^' . preg_quote(BASE_URI, '/') . '/', '', $shorturl);
423
                    }
424
                }
425
426
// Define the class (top menu selected or not)
427
                if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) {
428
                    $classname = 'class="tmenusel"';
429
                } else if (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) {
430
                    $classname = 'class="tmenusel"';
431
                } else {
432
                    $classname = 'class="tmenu"';
433
                }
434
            } else if ($showmode == 2) {
435
                $classname = 'class="tmenu"';
436
            }
437
438
            $menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), $newTabMenu[$i]['position'], $id, $idsel, $classname);
439
        }
440
441
// Sort on position
442
        $menu->liste = DolUtils::dol_sort_array($menu->liste, 'position');
443
444
// Output menu entries
445
        if (empty($noout)) {
446
            foreach ($menu->liste as $menkey => $menuval) {
447
                self::print_start_menu_entry($menuval['idsel'], $menuval['classname'], $menuval['enabled']);
448
                self::print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url'] != '#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? BASE_URI : '') . $menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget));
449
                self::print_end_menu_entry($menuval['enabled']);
450
            }
451
        }
452
453
        $showmode = 1;
454
        if (empty($noout)) {
455
            self::print_start_menu_entry('', 'class="tmenuend"', $showmode);
456
            self::print_end_menu_entry($showmode);
457
            self::print_end_menu_array();
458
        }
459
460
        return 0;
461
    }
462
463
    /**
464
     * Output start menu array
465
     *
466
     * @return	void
467
     */
468
    static function print_start_menu_array()
469
    {
470
        global $conf;
471
472
        print '<div class="tmenudiv">';
473
        print '<ul class="tmenu"' . (empty(Conf::$global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"') . '>';
474
    }
475
476
    /**
477
     * Output start menu entry
478
     *
479
     * @param	string	$idsel		Text
480
     * @param	string	$classname	String to add a css class
481
     * @param	int		$showmode	0 = hide, 1 = allowed or 2 = not allowed
482
     * @return	void
483
     */
484
    static function print_start_menu_entry($idsel, $classname, $showmode)
485
    {
486
        if ($showmode) {
487
            print '<li ' . $classname . ' id="mainmenutd_' . $idsel . '">';
488
//print '<div class="tmenuleft tmenusep"></div>';
489
            print '<div class="tmenucenter">';
490
        }
491
    }
492
493
    /**
494
     * Output menu entry
495
     *
496
     * @param	string	$text		Text
497
     * @param	int		$showmode	0 = hide, 1 = allowed or 2 = not allowed
498
     * @param	string	$url		Url
499
     * @param	string	$id			Id
500
     * @param	string	$idsel		Id sel
501
     * @param	string	$classname	Class name
502
     * @param	string	$atarget	Target
503
     * @return	void
504
     */
505
    static function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname, $atarget)
506
    {
507
        // global Globals::$langs;
508
509
        if ($showmode == 1) {
510
            print '<a class="tmenuimage" tabindex="-1" href="' . $url . '"' . ($atarget ? ' target="' . $atarget . '"' : '') . '>';
511
            print '<div class="' . $id . ' ' . $idsel . ' topmenuimage"><span class="' . $id . ' tmenuimage" id="mainmenuspan_' . $idsel . '"></span></div>';
512
            print '</a>';
513
            print '<a ' . $classname . ' id="mainmenua_' . $idsel . '" href="' . $url . '"' . ($atarget ? ' target="' . $atarget . '"' : '') . '>';
514
            print '<span class="mainmenuaspan">';
515
            print $text;
516
            print '</span>';
517
            print '</a>';
518
        } elseif ($showmode == 2) {
519
            print '<div class="' . $id . ' ' . $idsel . ' topmenuimage tmenudisabled"><span class="' . $id . '" id="mainmenuspan_' . $idsel . '"></span></div>';
520
            print '<a class="tmenudisabled" id="mainmenua_' . $idsel . '" href="#" title="' . dol_escape_htmltag(Globals::$langs->trans("NotAllowed")) . '">';
521
            print '<span class="mainmenuaspan">';
522
            print $text;
523
            print '</span>';
524
            print '</a>';
525
        }
526
    }
527
528
    /**
529
     * Output end menu entry
530
     *
531
     * @param	int		$showmode	0 = hide, 1 = allowed or 2 = not allowed
532
     * @return	void
533
     */
534
    static function print_end_menu_entry($showmode)
535
    {
536
        if ($showmode) {
537
            print '</div></li>';
538
        }
539
        print "\n";
540
    }
541
542
    /**
543
     * Output menu array
544
     *
545
     * @return	void
546
     */
547
    static function print_end_menu_array()
548
    {
549
        print '</ul>';
550
        print '</div>';
551
        print "\n";
552
    }
553
554
    /**
555
     * Core function to output left menu eldy
556
     * Fill &$menu (example with $forcemainmenu='home' $forceleftmenu='all', return left menu tree of Home)
557
     *
558
     * @param	DoliDB		Config::$dbEngine                 Database handler
559
     * @param 	array		$menu_array_before  Table of menu entries to show before entries of menu handler (menu->liste filled with menu->add)
560
     * @param   array		$menu_array_after   Table of menu entries to show after entries of menu handler (menu->liste filled with menu->add)
561
     * @param	array		$tabMenu       		If array with menu entries already loaded, we put this array here (in most cases, it's empty)
562
     * @param	Menu		$menu				Object Menu to return back list of menu entries
563
     * @param	int			$noout				Disable output (Initialise &$menu only).
564
     * @param	string		$forcemainmenu		'x'=Force mainmenu to mainmenu='x'
565
     * @param	string		$forceleftmenu		'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session.
566
     * @param	array		$moredata			An array with more data to output
567
     * @return	int								nb of menu entries
568
     */
569
    function print_left_eldy_menu($dba, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null)
570
    {
571
        // global Globals::$user, $conf, Globals::$langs, $dolibarr_main_db_name, $mysoc;
572
//var_dump($tabMenu);
573
574
        $newmenu = $menu;
575
576
        $mainmenu = ($forcemainmenu ? $forcemainmenu : $_SESSION["mainmenu"]);
577
        $leftmenu = ($forceleftmenu ? '' : (empty($_SESSION["leftmenu"]) ? 'none' : $_SESSION["leftmenu"]));
578
579
        $usemenuhider = (DolUtils::GETPOST('testmenuhider', 'int') || !empty(Conf::$global->MAIN_TESTMENUHIDER));
580
581
// Show logo company
582
        if (empty(Conf::$global->MAIN_MENU_INVERT) && empty($noout) && !empty(Conf::$global->MAIN_SHOW_LOGO) && empty(Conf::$global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
583
            $mysoc->logo_mini = Conf::$global->MAIN_INFO_SOCIETE_LOGO_MINI;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $mysoc seems to be never defined.
Loading history...
584
            if (!empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output . '/logos/thumbs/' . $mysoc->logo_mini)) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $conf seems to be never defined.
Loading history...
585
                $urllogo = DOL_BASE_URI . '/viewimage.php?cache=1&modulepart=mycompany&file=' . urlencode('logos/thumbs/' . $mysoc->logo_mini);
586
            } else {
587
                $urllogo = DOL_BASE_URI . '/theme/dolibarr_logo.png';
588
            }
589
            $title = Globals::$langs->trans("GoIntoSetupToChangeLogo");
590
            print "\n" . '<!-- Show logo on menu -->' . "\n";
591
            print '<div class="blockvmenuimpair blockvmenulogo">' . "\n";
592
            print '<div class="menu_titre" id="menu_titre_logo"></div>';
593
            print '<div class="menu_top" id="menu_top_logo"></div>';
594
            print '<div class="menu_contenu" id="menu_contenu_logo">';
595
            print '<div class="center"><img class="mycompany" title="' . dol_escape_htmltag($title) . '" alt="" src="' . $urllogo . '" style="max-width: 70%"></div>' . "\n";
596
            print '</div>';
597
            print '<div class="menu_end" id="menu_end_logo"></div>';
598
            print '</div>' . "\n";
599
        }
600
601
        if (is_array($moredata) && !empty($moredata['searchform'])) { // searchform can contains select2 code or link to show old search form or link to switch on search page
602
            print "\n";
603
            print "<!-- Begin SearchForm -->\n";
604
            print '<div id="blockvmenusearch" class="blockvmenusearch">' . "\n";
605
            print $moredata['searchform'];
606
            print '</div>' . "\n";
607
            print "<!-- End SearchForm -->\n";
608
        }
609
610
        if (is_array($moredata) && !empty($moredata['bookmarks'])) {
611
            print "\n";
612
            print "<!-- Begin Bookmarks -->\n";
613
            print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . "\n";
614
            print $moredata['bookmarks'];
615
            print '</div>' . "\n";
616
            print "<!-- End Bookmarks -->\n";
617
        }
618
619
        /**
620
         * We update newmenu with entries found into database
621
         * --------------------------------------------------
622
         */
623
        if ($mainmenu) { // If this is empty, loading hard coded menu and loading personalised menu will fail
624
            /*
625
             * Menu HOME
626
             */
627
            if ($mainmenu == 'home') {
628
                Globals::$langs->load("users");
629
630
// Home - dashboard
631
//$newmenu->add("/index.php?mainmenu=home&leftmenu=home", Globals::$langs->trans("MyDashboard"), 0, 1, '', $mainmenu, 'home', 0, '', '', '', '<i class="fa fa-bar-chart fa-fw paddingright"></i>');
632
                $newmenu->add(BASE_URI . "?controller=home&method=home&mainmenu=home&leftmenu=home", Globals::$langs->trans("MyDashboard"), 0, 1, '', $mainmenu, 'home', 0, '', '', '', '<i class="fa fa-bar-chart fa-fw paddingright"></i>');
633
634
// Setup
635
//$newmenu->add("/admin/index.php?mainmenu=home&leftmenu=setup", Globals::$langs->trans("Setup"), 0, Globals::$user->admin, '', $mainmenu, 'setup', 0, '', '', '', '<i class="fa fa-wrench fa-fw paddingright"></i>');
636
                $newmenu->add(BASE_URI . "?controller=admin&method=index&mainmenu=home&leftmenu=setup", Globals::$langs->trans("Setup"), 0, Globals::$user->admin, '', $mainmenu, 'setup', 0, '', '', '', '<i class="fa fa-wrench fa-fw paddingright"></i>');
637
638
                if ($usemenuhider || empty($leftmenu) || $leftmenu == "setup") {
639
// Load translation files required by the page
640
                    Globals::$langs->loadLangs(array("admin", "help"));
641
642
                    $warnpicto = '';
643
                    if (empty(Conf::$global->MAIN_INFO_SOCIETE_NOM) || empty(Conf::$global->MAIN_INFO_SOCIETE_COUNTRY)) {
644
                        Globals::$langs->load("errors");
645
                        $warnpicto = ' ' . img_warning(Globals::$langs->trans("WarningMandatorySetupNotComplete"));
646
                    }
647
//$newmenu->add("/admin/company.php?mainmenu=home", Globals::$langs->trans("MenuCompanySetup") . $warnpicto, 1);
648
                    $newmenu->add(BASE_URI . "?controller=admin&method=company&mainmenu=home", Globals::$langs->trans("MenuCompanySetup") . $warnpicto, 1);
649
                    $warnpicto = '';
650
                    if (count($conf->modules) <= (empty(Conf::$global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : Conf::$global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) { // If only user module enabled
651
                        Globals::$langs->load("errors");
652
                        $warnpicto = ' ' . img_warning(Globals::$langs->trans("WarningMandatorySetupNotComplete"));
653
                    }
654
                    /*
655
                      $newmenu->add("/admin/modules.php?mainmenu=home", Globals::$langs->trans("Modules") . $warnpicto, 1);
656
                      $newmenu->add("/admin/menus.php?mainmenu=home", Globals::$langs->trans("Menus"), 1);
657
                      $newmenu->add("/admin/ihm.php?mainmenu=home", Globals::$langs->trans("GUISetup"), 1);
658
659
                      $newmenu->add("/admin/translation.php?mainmenu=home", Globals::$langs->trans("Translation"), 1);
660
                      $newmenu->add("/admin/defaultvalues.php?mainmenu=home", Globals::$langs->trans("DefaultValues"), 1);
661
                      $newmenu->add("/admin/boxes.php?mainmenu=home", Globals::$langs->trans("Boxes"), 1);
662
                      $newmenu->add("/admin/delais.php?mainmenu=home", Globals::$langs->trans("MenuWarnings"), 1);
663
                      $newmenu->add("/admin/security_other.php?mainmenu=home", Globals::$langs->trans("Security"), 1);
664
                      $newmenu->add("/admin/limits.php?mainmenu=home", Globals::$langs->trans("MenuLimits"), 1);
665
                      $newmenu->add("/admin/pdf.php?mainmenu=home", Globals::$langs->trans("PDF"), 1);
666
                      $newmenu->add("/admin/mails.php?mainmenu=home", Globals::$langs->trans("Emails"), 1);
667
                      $newmenu->add("/admin/sms.php?mainmenu=home", Globals::$langs->trans("SMS"), 1);
668
                      $newmenu->add("/admin/dict.php?mainmenu=home", Globals::$langs->trans("Dictionary"), 1);
669
                      $newmenu->add("/admin/const.php?mainmenu=home", Globals::$langs->trans("OtherSetup"), 1);
670
                     */
671
                    $newmenu->add(BASE_URI . "?controller=admin&method=modules&mainmenu=home", Globals::$langs->trans("Modules") . $warnpicto, 1);
672
                    $newmenu->add(BASE_URI . "?controller=admin&method=menus&mainmenu=home", Globals::$langs->trans("Menus"), 1);
673
                    $newmenu->add(BASE_URI . "?controller=admin&method=ihm&mainmenu=home", Globals::$langs->trans("GUISetup"), 1);
674
675
                    $newmenu->add(BASE_URI . "?controller=admin&method=translation&mainmenu=home", Globals::$langs->trans("Translation"), 1);
676
                    $newmenu->add(BASE_URI . "?controller=admin&method=defaultvalues&mainmenu=home", Globals::$langs->trans("DefaultValues"), 1);
677
                    $newmenu->add(BASE_URI . "?controller=admin&method=boxes&mainmenu=home", Globals::$langs->trans("Boxes"), 1);
678
                    $newmenu->add(BASE_URI . "?controller=admin&method=delais&mainmenu=home", Globals::$langs->trans("MenuWarnings"), 1);
679
                    $newmenu->add(BASE_URI . "?controller=admin&method=security_other&mainmenu=home", Globals::$langs->trans("Security"), 1);
680
                    $newmenu->add(BASE_URI . "?controller=admin&method=limits&mainmenu=home", Globals::$langs->trans("MenuLimits"), 1);
681
                    $newmenu->add(BASE_URI . "?controller=admin&method=pdf&mainmenu=home", Globals::$langs->trans("PDF"), 1);
682
                    $newmenu->add(BASE_URI . "?controller=admin&method=mails&mainmenu=home", Globals::$langs->trans("Emails"), 1);
683
                    $newmenu->add(BASE_URI . "?controller=admin&method=sms&mainmenu=home", Globals::$langs->trans("SMS"), 1);
684
                    $newmenu->add(BASE_URI . "?controller=admin&method=dict&mainmenu=home", Globals::$langs->trans("Dictionary"), 1);
685
                    $newmenu->add(BASE_URI . "?controller=admin&method=const&mainmenu=home", Globals::$langs->trans("OtherSetup"), 1);
686
                }
687
688
// System tools
689
//$newmenu->add("/admin/tools/index.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("AdminTools"), 0, Globals::$user->admin, '', $mainmenu, 'admintools', 0, '', '', '', '<i class="fa fa-server fa-fw paddingright"></i>');
690
                $newmenu->add(BASE_URI . "?controller=admin/tools&method=index&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("AdminTools"), 0, Globals::$user->admin, '', $mainmenu, 'admintools', 0, '', '', '', '<i class="fa fa-server fa-fw paddingright"></i>');
691
692
                if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/', $leftmenu)) {
693
// Load translation files required by the page
694
                    Globals::$langs->loadLangs(array('admin', 'help'));
695
696
//$newmenu->add('/admin/system/dolibarr.php?mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('InfoDolibarr'), 1);
697
                    $newmenu->add(BASE_URI . "?controller=admin/system&method=dolibarr&mainmenu=home&leftmenu=admintools_info", Globals::$langs->trans('InfoDolibarr'), 1);
698
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == 'admintools_info') {
699
                        /*
700
                          $newmenu->add('/admin/system/modules.php?mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('Modules'), 2);
701
                          $newmenu->add('/admin/triggers.php?mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('Triggers'), 2);
702
                          $newmenu->add('/admin/system/filecheck.php?mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('FileCheck'), 2);
703
                         */
704
                        $newmenu->add(BASE_URI . '?controller=admin/system&method=modules&mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('Modules'), 2);
705
                        $newmenu->add(BASE_URI . '?controller=admin&method=triggers&mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('Triggers'), 2);
706
                        $newmenu->add(BASE_URI . '?controller=admin/system&method=filecheck&mainmenu=home&leftmenu=admintools_info', Globals::$langs->trans('FileCheck'), 2);
707
                    }
708
                    /*
709
                      $newmenu->add('/admin/system/browser.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoBrowser'), 1);
710
                      $newmenu->add('/admin/system/os.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoOS'), 1);
711
                      $newmenu->add('/admin/system/web.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoWebServer'), 1);
712
                      $newmenu->add('/admin/system/phpinfo.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoPHP'), 1);
713
                      //if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', Globals::$langs->trans('XDebug'),1);
714
                      $newmenu->add('/admin/system/database.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoDatabase'), 1);
715
                      if (function_exists('eaccelerator_info'))
716
                      $newmenu->add("/admin/tools/eaccelerator.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("EAccelerator"), 1);
717
                      //$newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("InfoPerf"),1);
718
                      $newmenu->add("/admin/tools/dolibarr_export.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Backup"), 1);
719
                      $newmenu->add("/admin/tools/dolibarr_import.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Restore"), 1);
720
                      $newmenu->add("/admin/tools/update.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("MenuUpgrade"), 1);
721
                      $newmenu->add("/admin/tools/purge.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Purge"), 1);
722
                      $newmenu->add("/admin/tools/listevents.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Audit"), 1);
723
                      $newmenu->add("/admin/tools/listsessions.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Sessions"), 1);
724
                      $newmenu->add('/admin/system/about.php?mainmenu=home&leftmenu=admintools', Globals::$langs->trans('ExternalResources'), 1);
725
                     */
726
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=browser&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoBrowser'), 1);
727
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=os&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoOS'), 1);
728
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=web&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoWebServer'), 1);
729
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=phpinfo&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoPHP'), 1);
730
//if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', Globals::$langs->trans('XDebug'),1);
731
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=database&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('InfoDatabase'), 1);
732
                    if (function_exists('eaccelerator_info')) {
733
                        $newmenu->add(BASE_URI . "?controller=admin/tools&method=eaccelerator&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("EAccelerator"), 1);
734
                    }
735
//$newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("InfoPerf"),1);
736
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=dolibarr_export&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Backup"), 1);
737
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=dolibarr_import&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Restore"), 1);
738
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=update&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("MenuUpgrade"), 1);
739
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=purge&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Purge"), 1);
740
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=listevents&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Audit"), 1);
741
                    $newmenu->add(BASE_URI . "?controller=admin/tools&method=listsessions&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("Sessions"), 1);
742
                    $newmenu->add(BASE_URI . '?controller=admin/system&method=about&mainmenu=home&leftmenu=admintools', Globals::$langs->trans('ExternalResources'), 1);
743
744
                    if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) {
745
                        Globals::$langs->load("products");
746
//$newmenu->add("/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools", Globals::$langs->trans("ProductVatMassChange"), 1, Globals::$user->admin);
747
                        $newmenu->add(BASE_URI . "?controller=product/admin&method=product_tools&mainmenu=home&leftmenu=admintools", Globals::$langs->trans("ProductVatMassChange"), 1, Globals::$user->admin);
748
                    }
749
                }
750
751
//$newmenu->add("/user/home.php?leftmenu=users", Globals::$langs->trans("MenuUsersAndGroups"), 0, Globals::$user->rights->user->user->lire, '', $mainmenu, 'users', 0, '', '', '', '<i class="fa fa-users fa-fw paddingright"></i>');
752
                $newmenu->add(BASE_URI . "?controller=user&method=home&leftmenu=users", Globals::$langs->trans("MenuUsersAndGroups"), 0, Globals::$user->rights->user->user->lire, '', $mainmenu, 'users', 0, '', '', '', '<i class="fa fa-users fa-fw paddingright"></i>');
753
                if (Globals::$user->rights->user->user->lire) {
754
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "users") {
755
                        $newmenu->add("", Globals::$langs->trans("Users"), 1, Globals::$user->rights->user->user->lire || Globals::$user->admin);
756
                        /*
757
                          $newmenu->add("/user/card.php?leftmenu=users&action=create", Globals::$langs->trans("NewUser"), 2, (Globals::$user->rights->user->user->creer || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE), '', 'home');
758
                          $newmenu->add("/user/list.php?leftmenu=users", Globals::$langs->trans("ListOfUsers"), 2, Globals::$user->rights->user->user->lire || Globals::$user->admin);
759
                          $newmenu->add("/user/hierarchy.php?leftmenu=users", Globals::$langs->trans("HierarchicView"), 2, Globals::$user->rights->user->user->lire || Globals::$user->admin);
760
                          if (!empty($conf->categorie->enabled)) {
761
                          Globals::$langs->load("categories");
762
                          $newmenu->add("/categories/index.php?leftmenu=users&type=7", Globals::$langs->trans("UsersCategoriesShort"), 2, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
763
                          }
764
                          $newmenu->add("", Globals::$langs->trans("Groups"), 1, (Globals::$user->rights->user->user->lire || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
765
                          $newmenu->add("/user/group/card.php?leftmenu=users&action=create", Globals::$langs->trans("NewGroup"), 2, ((Conf::$global->MAIN_USE_ADVANCED_PERMS ? Globals::$user->rights->user->group_advance->write : Globals::$user->rights->user->user->creer) || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
766
                          $newmenu->add("/user/group/list.php?leftmenu=users", Globals::$langs->trans("ListOfGroups"), 2, ((Conf::$global->MAIN_USE_ADVANCED_PERMS ? Globals::$user->rights->user->group_advance->read : Globals::$user->rights->user->user->lire) || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
767
                         */
768
                        $newmenu->add(BASE_URI . "?controller=user&method=card&leftmenu=users&action=create", Globals::$langs->trans("NewUser"), 2, (Globals::$user->rights->user->user->creer || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE), '', 'home');
769
                        $newmenu->add(BASE_URI . "?controller=user&method=list&leftmenu=users", Globals::$langs->trans("ListOfUsers"), 2, Globals::$user->rights->user->user->lire || Globals::$user->admin);
770
                        $newmenu->add(BASE_URI . "?controller=user&method=hierarchy&leftmenu=users", Globals::$langs->trans("HierarchicView"), 2, Globals::$user->rights->user->user->lire || Globals::$user->admin);
771
                        if (!empty($conf->categorie->enabled)) {
772
                            Globals::$langs->load("categories");
773
                            $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=users&type=7", Globals::$langs->trans("UsersCategoriesShort"), 2, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
774
                        }
775
                        $newmenu->add("", Globals::$langs->trans("Groups"), 1, (Globals::$user->rights->user->user->lire || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
776
                        $newmenu->add(BASE_URI . "?controller=user/group&method=card&leftmenu=users&action=create", Globals::$langs->trans("NewGroup"), 2, ((Conf::$global->MAIN_USE_ADVANCED_PERMS ? Globals::$user->rights->user->group_advance->write : Globals::$user->rights->user->user->creer) || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
777
                        $newmenu->add(BASE_URI . "?controller=user/group&method=list&leftmenu=users", Globals::$langs->trans("ListOfGroups"), 2, ((Conf::$global->MAIN_USE_ADVANCED_PERMS ? Globals::$user->rights->user->group_advance->read : Globals::$user->rights->user->user->lire) || Globals::$user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && Conf::$global->MULTICOMPANY_TRANSVERSE_MODE));
778
                    }
779
                }
780
            }
781
782
            /*
783
             * Menu THIRDPARTIES
784
             */
785
            if ($mainmenu == 'companies') {
786
// Societes
787
                if (!empty($conf->societe->enabled)) {
788
                    Globals::$langs->load("companies");
789
//$newmenu->add("/societe/index.php?leftmenu=thirdparties", Globals::$langs->trans("ThirdParty"), 0, Globals::$user->rights->societe->lire, '', $mainmenu, 'thirdparties');
790
                    $newmenu->add(BASE_URI . "?controller=societe&method=index&leftmenu=thirdparties", Globals::$langs->trans("ThirdParty"), 0, Globals::$user->rights->societe->lire, '', $mainmenu, 'thirdparties');
791
792
                    if (Globals::$user->rights->societe->creer) {
793
//$newmenu->add("/societe/card.php?action=create", Globals::$langs->trans("MenuNewThirdParty"), 1);
794
                        $newmenu->add(BASE_URI . "?controller=societe&method=card&action=create", Globals::$langs->trans("MenuNewThirdParty"), 1);
795
                        if (!$conf->use_javascript_ajax) {
796
//$newmenu->add("/societe/card.php?action=create&private=1", Globals::$langs->trans("MenuNewPrivateIndividual"), 1);
797
                            $newmenu->add(BASE_URI . "?controller=societe&method=card&action=create&private=1", Globals::$langs->trans("MenuNewPrivateIndividual"), 1);
798
                        }
799
                    }
800
                }
801
802
//$newmenu->add("/societe/list.php?leftmenu=thirdparties", Globals::$langs->trans("List"), 1);
803
                $newmenu->add(BASE_URI . "?controller=societe&method=list&leftmenu=thirdparties", Globals::$langs->trans("List"), 1);
804
805
// Prospects
806
                if (!empty($conf->societe->enabled) && empty(Conf::$global->SOCIETE_DISABLE_PROSPECTS)) {
807
                    Globals::$langs->load("commercial");
808
//$newmenu->add("/societe/list.php?type=p&leftmenu=prospects", Globals::$langs->trans("ListProspectsShort"), 1, Globals::$user->rights->societe->lire, '', $mainmenu, 'prospects');
809
                    $newmenu->add(BASE_URI . "?controller=societe&method=list&type=p&leftmenu=prospects", Globals::$langs->trans("ListProspectsShort"), 1, Globals::$user->rights->societe->lire, '', $mainmenu, 'prospects');
810
                    /* no more required, there is a filter that can do more
811
                      if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=-1", Globals::$langs->trans("LastProspectDoNotContact"), 2, Globals::$user->rights->societe->lire);
812
                      if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=0", Globals::$langs->trans("LastProspectNeverContacted"), 2, Globals::$user->rights->societe->lire);
813
                      if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=1", Globals::$langs->trans("LastProspectToContact"), 2, Globals::$user->rights->societe->lire);
814
                      if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=2", Globals::$langs->trans("LastProspectContactInProcess"), 2, Globals::$user->rights->societe->lire);
815
                      if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=3", Globals::$langs->trans("LastProspectContactDone"), 2, Globals::$user->rights->societe->lire);
816
                     */
817
//$newmenu->add("/societe/card.php?leftmenu=prospects&action=create&type=p", Globals::$langs->trans("MenuNewProspect"), 2, Globals::$user->rights->societe->creer);
818
                    $newmenu->add(BASE_URI . "?controller=societe&method=card&leftmenu=prospects&action=create&type=p", Globals::$langs->trans("MenuNewProspect"), 2, Globals::$user->rights->societe->creer);
819
//$newmenu->add("/contact/list.php?leftmenu=customers&type=p", Globals::$langs->trans("Contacts"), 2, Globals::$user->rights->societe->contact->lire);
820
                }
821
822
// Customers/Prospects
823
                if (!empty($conf->societe->enabled) && empty(Conf::$global->SOCIETE_DISABLE_CUSTOMERS)) {
824
                    Globals::$langs->load("commercial");
825
//$newmenu->add("/societe/list.php?type=c&leftmenu=customers", Globals::$langs->trans("ListCustomersShort"), 1, Globals::$user->rights->societe->lire, '', $mainmenu, 'customers');
826
                    $newmenu->add(BASE_URI . "?controller=societe&method=list&type=c&leftmenu=customers", Globals::$langs->trans("ListCustomersShort"), 1, Globals::$user->rights->societe->lire, '', $mainmenu, 'customers');
827
828
//$newmenu->add("/societe/card.php?leftmenu=customers&action=create&type=c", Globals::$langs->trans("MenuNewCustomer"), 2, Globals::$user->rights->societe->creer);
829
                    $newmenu->add(BASE_URI . "?controller=societe&method=card&leftmenu=customers&action=create&type=c", Globals::$langs->trans("MenuNewCustomer"), 2, Globals::$user->rights->societe->creer);
830
//$newmenu->add("/contact/list.php?leftmenu=customers&type=c", Globals::$langs->trans("Contacts"), 2, Globals::$user->rights->societe->contact->lire);
831
                }
832
833
// Suppliers
834
                if (!empty($conf->societe->enabled) && (!empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled))) {
835
                    Globals::$langs->load("suppliers");
836
//$newmenu->add("/societe/list.php?type=f&leftmenu=suppliers", Globals::$langs->trans("ListSuppliersShort"), 1, (Globals::$user->rights->fournisseur->lire || Globals::$user->rights->supplier_proposal->lire), '', $mainmenu, 'suppliers');
837
//$newmenu->add("/societe/card.php?leftmenu=suppliers&action=create&type=f", Globals::$langs->trans("MenuNewSupplier"), 2, Globals::$user->rights->societe->creer && (Globals::$user->rights->fournisseur->lire || Globals::$user->rights->supplier_proposal->lire));
838
                    $newmenu->add(BASE_URI . "?controller=societe&method=list&type=f&leftmenu=suppliers", Globals::$langs->trans("ListSuppliersShort"), 1, (Globals::$user->rights->fournisseur->lire || Globals::$user->rights->supplier_proposal->lire), '', $mainmenu, 'suppliers');
839
                    $newmenu->add(BASE_URI . "?controller=societe&method=card&leftmenu=suppliers&action=create&type=f", Globals::$langs->trans("MenuNewSupplier"), 2, Globals::$user->rights->societe->creer && (Globals::$user->rights->fournisseur->lire || Globals::$user->rights->supplier_proposal->lire));
840
                }
841
842
// Categories
843
                if (!empty($conf->categorie->enabled)) {
844
                    Globals::$langs->load("categories");
845
                    if (empty(Conf::$global->SOCIETE_DISABLE_PROSPECTS) || empty(Conf::$global->SOCIETE_DISABLE_CUSTOMERS)) {
846
// Categories prospects/customers
847
                        $menutoshow = Globals::$langs->trans("CustomersProspectsCategoriesShort");
848
                        if (!empty(Conf::$global->SOCIETE_DISABLE_PROSPECTS)) {
849
                            $menutoshow = Globals::$langs->trans("CustomersCategoriesShort");
850
                        }
851
                        if (!empty(Conf::$global->SOCIETE_DISABLE_CUSTOMERS)) {
852
                            $menutoshow = Globals::$langs->trans("ProspectsCategoriesShort");
853
                        }
854
//$newmenu->add("/categories/index.php?leftmenu=cat&type=2", $menutoshow, 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
855
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=cat&type=2", $menutoshow, 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
856
                    }
857
// Categories suppliers
858
                    if (!empty($conf->fournisseur->enabled)) {
859
//$newmenu->add("/categories/index.php?leftmenu=catfournish&type=1", Globals::$langs->trans("SuppliersCategoriesShort"), 1, Globals::$user->rights->categorie->lire);
860
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=catfournish&type=1", Globals::$langs->trans("SuppliersCategoriesShort"), 1, Globals::$user->rights->categorie->lire);
861
                    }
862
                }
863
864
// Contacts
865
//$newmenu->add("/societe/index.php?leftmenu=thirdparties", (!empty(Conf::$global->SOCIETE_ADDRESSES_MANAGEMENT) ? Globals::$langs->trans("Contacts") : Globals::$langs->trans("ContactsAddresses")), 0, Globals::$user->rights->societe->contact->lire, '', $mainmenu, 'contacts');
866
//$newmenu->add("/contact/card.php?leftmenu=contacts&action=create", (!empty(Conf::$global->SOCIETE_ADDRESSES_MANAGEMENT) ? Globals::$langs->trans("NewContact") : Globals::$langs->trans("NewContactAddress")), 1, Globals::$user->rights->societe->contact->creer);
867
//$newmenu->add("/contact/list.php?leftmenu=contacts", Globals::$langs->trans("List"), 1, Globals::$user->rights->societe->contact->lire);
868
                $newmenu->add(BASE_URI . "?controller=societe&method=index&leftmenu=thirdparties", (!empty(Conf::$global->SOCIETE_ADDRESSES_MANAGEMENT) ? Globals::$langs->trans("Contacts") : Globals::$langs->trans("ContactsAddresses")), 0, Globals::$user->rights->societe->contact->lire, '', $mainmenu, 'contacts');
869
                $newmenu->add(BASE_URI . "?controller=contact&method=card&leftmenu=contacts&action=create", (!empty(Conf::$global->SOCIETE_ADDRESSES_MANAGEMENT) ? Globals::$langs->trans("NewContact") : Globals::$langs->trans("NewContactAddress")), 1, Globals::$user->rights->societe->contact->creer);
870
                $newmenu->add(BASE_URI . "?controller=contact&method=list&leftmenu=contacts", Globals::$langs->trans("List"), 1, Globals::$user->rights->societe->contact->lire);
871
                if (empty(Conf::$global->SOCIETE_DISABLE_PROSPECTS)) {
872
//$newmenu->add("/contact/list.php?leftmenu=contacts&type=p", Globals::$langs->trans("Prospects"), 2, Globals::$user->rights->societe->contact->lire);
873
                    $newmenu->add(BASE_URI . "?controller=contact&method=list&leftmenu=contacts&type=p", Globals::$langs->trans("Prospects"), 2, Globals::$user->rights->societe->contact->lire);
874
                }
875
                if (empty(Conf::$global->SOCIETE_DISABLE_CUSTOMERS)) {
876
//$newmenu->add("/contact/list.php?leftmenu=contacts&type=c", Globals::$langs->trans("Customers"), 2, Globals::$user->rights->societe->contact->lire);
877
                    $newmenu->add(BASE_URI . "?controller=contact&method=list&leftmenu=contacts&type=c", Globals::$langs->trans("Customers"), 2, Globals::$user->rights->societe->contact->lire);
878
                }
879
                if (!empty($conf->fournisseur->enabled)) {
880
//$newmenu->add("/contact/list.php?leftmenu=contacts&type=f", Globals::$langs->trans("Suppliers"), 2, Globals::$user->rights->societe->contact->lire);
881
                    $newmenu->add(BASE_URI . "?controller=contact&method=list&leftmenu=contacts&type=f", Globals::$langs->trans("Suppliers"), 2, Globals::$user->rights->societe->contact->lire);
882
                }
883
//$newmenu->add("/contact/list.php?leftmenu=contacts&type=o", Globals::$langs->trans("ContactOthers"), 2, Globals::$user->rights->societe->contact->lire);
884
                $newmenu->add(BASE_URI . "?controller=contact&methos=list&leftmenu=contacts&type=o", Globals::$langs->trans("ContactOthers"), 2, Globals::$user->rights->societe->contact->lire);
885
//$newmenu->add("/contact/list.php?userid=Globals::$user->id", Globals::$langs->trans("MyContacts"), 1, Globals::$user->rights->societe->contact->lire);
886
// Categories
887
                if (!empty($conf->categorie->enabled)) {
888
                    Globals::$langs->load("categories");
889
// Categories Contact
890
//$newmenu->add("/categories/index.php?leftmenu=catcontact&type=4", Globals::$langs->trans("ContactCategoriesShort"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
891
                    $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=catcontact&type=4", Globals::$langs->trans("ContactCategoriesShort"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
892
                }
893
            }
894
895
            /*
896
             * Menu COMMERCIAL
897
             */
898
            if ($mainmenu == 'commercial') {
899
                Globals::$langs->load("companies");
900
901
// Customer proposal
902
                if (!empty($conf->propal->enabled)) {
903
                    Globals::$langs->load("propal");
904
//$newmenu->add("/comm/propal/index.php?leftmenu=propals", Globals::$langs->trans("Proposals"), 0, Globals::$user->rights->propale->lire, '', $mainmenu, 'propals', 100);
905
//$newmenu->add("/comm/propal/card.php?action=create&leftmenu=propals", Globals::$langs->trans("NewPropal"), 1, Globals::$user->rights->propale->creer);
906
//$newmenu->add("/comm/propal/list.php?leftmenu=propals", Globals::$langs->trans("List"), 1, Globals::$user->rights->propale->lire);
907
                    $newmenu->add(BASE_URI . "?controller=comm/propal&method=index&leftmenu=propals", Globals::$langs->trans("Proposals"), 0, Globals::$user->rights->propale->lire, '', $mainmenu, 'propals', 100);
908
                    $newmenu->add(BASE_URI . "?controller=comm/propal&method=card&action=create&leftmenu=propals", Globals::$langs->trans("NewPropal"), 1, Globals::$user->rights->propale->creer);
909
                    $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals", Globals::$langs->trans("List"), 1, Globals::$user->rights->propale->lire);
910
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "propals") {
911
                        /*
912
                          $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=0", Globals::$langs->trans("PropalsDraft"), 2, Globals::$user->rights->propale->lire);
913
                          $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=1", Globals::$langs->trans("PropalsOpened"), 2, Globals::$user->rights->propale->lire);
914
                          $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2", Globals::$langs->trans("PropalStatusSigned"), 2, Globals::$user->rights->propale->lire);
915
                          $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=3", Globals::$langs->trans("PropalStatusNotSigned"), 2, Globals::$user->rights->propale->lire);
916
                          $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=4", Globals::$langs->trans("PropalStatusBilled"), 2, Globals::$user->rights->propale->lire);
917
                         */
918
                        $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals&viewstatut=0", Globals::$langs->trans("PropalsDraft"), 2, Globals::$user->rights->propale->lire);
919
                        $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals&viewstatut=1", Globals::$langs->trans("PropalsOpened"), 2, Globals::$user->rights->propale->lire);
920
                        $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals&viewstatut=2", Globals::$langs->trans("PropalStatusSigned"), 2, Globals::$user->rights->propale->lire);
921
                        $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals&viewstatut=3", Globals::$langs->trans("PropalStatusNotSigned"), 2, Globals::$user->rights->propale->lire);
922
                        $newmenu->add(BASE_URI . "?controller=comm/propal&method=list&leftmenu=propals&viewstatut=4", Globals::$langs->trans("PropalStatusBilled"), 2, Globals::$user->rights->propale->lire);
923
//$newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2,3,4", Globals::$langs->trans("PropalStatusClosedShort"), 2, Globals::$user->rights->propale->lire);
924
                    }
925
//$newmenu->add("/comm/propal/stats/index.php?leftmenu=propals", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->propale->lire);
926
                    $newmenu->add(BASE_URI . "?controller=comm/propal/stats&method=index&leftmenu=propals", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->propale->lire);
927
                }
928
929
// Customers orders
930
                if (!empty($conf->commande->enabled)) {
931
                    Globals::$langs->load("orders");
932
//$newmenu->add("/commande/index.php?leftmenu=orders", Globals::$langs->trans("CustomersOrders"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders', 200);
933
//$newmenu->add("/commande/card.php?action=create&leftmenu=orders", Globals::$langs->trans("NewOrder"), 1, Globals::$user->rights->commande->creer);
934
//$newmenu->add("/commande/list.php?leftmenu=orders", Globals::$langs->trans("List"), 1, Globals::$user->rights->commande->lire);
935
                    $newmenu->add(BASE_URI . "?controller=commande&method=index&leftmenu=orders", Globals::$langs->trans("CustomersOrders"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders', 200);
936
                    $newmenu->add(BASE_URI . "?controller=commande&method=card&action=create&leftmenu=orders", Globals::$langs->trans("NewOrder"), 1, Globals::$user->rights->commande->creer);
937
                    $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders", Globals::$langs->trans("List"), 1, Globals::$user->rights->commande->lire);
938
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders") {
939
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=0", Globals::$langs->trans("StatusOrderDraftShort"), 2, Globals::$user->rights->commande->lire);
940
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=1", Globals::$langs->trans("StatusOrderValidated"), 2, Globals::$user->rights->commande->lire);
941
                        $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=0", Globals::$langs->trans("StatusOrderDraftShort"), 2, Globals::$user->rights->commande->lire);
942
                        $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=1", Globals::$langs->trans("StatusOrderValidated"), 2, Globals::$user->rights->commande->lire);
943
                        if (!empty($conf->expedition->enabled)) {
944
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=2", Globals::$langs->trans("StatusOrderSentShort"), 2, Globals::$user->rights->commande->lire);
945
                            $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=2", Globals::$langs->trans("StatusOrderSentShort"), 2, Globals::$user->rights->commande->lire);
946
                        }
947
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=3", Globals::$langs->trans("StatusOrderDelivered"), 2, Globals::$user->rights->commande->lire);
948
                        $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=3", Globals::$langs->trans("StatusOrderDelivered"), 2, Globals::$user->rights->commande->lire);
949
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=4", Globals::$langs->trans("StatusOrderProcessed"), 2, Globals::$user->rights->commande->lire);
950
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-1", Globals::$langs->trans("StatusOrderCanceledShort"), 2, Globals::$user->rights->commande->lire);
951
                        $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=-1", Globals::$langs->trans("StatusOrderCanceledShort"), 2, Globals::$user->rights->commande->lire);
952
                    }
953
//$newmenu->add("/commande/stats/index.php?leftmenu=orders", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->commande->lire);
954
                    $newmenu->add(BASE_URI . "?controller=commande/stats&method=index&leftmenu=orders", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->commande->lire);
955
                }
956
957
// Suppliers orders
958
                if (!empty($conf->supplier_order->enabled)) {
959
                    Globals::$langs->load("orders");
960
//$newmenu->add("/fourn/commande/index.php?leftmenu=orders_suppliers", Globals::$langs->trans("SuppliersOrders"), 0, Globals::$user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers', 400);
961
//$newmenu->add("/fourn/commande/card.php?action=create&leftmenu=orders_suppliers", Globals::$langs->trans("NewOrder"), 1, Globals::$user->rights->fournisseur->commande->creer);
962
//$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers", Globals::$langs->trans("List"), 1, Globals::$user->rights->fournisseur->commande->lire);
963
                    $newmenu->add(BASE_URI . "?controller=fourn/commande&method=index&leftmenu=orders_suppliers", Globals::$langs->trans("SuppliersOrders"), 0, Globals::$user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers', 400);
964
                    $newmenu->add(BASE_URI . "?controller=fourn/commande&method=card&action=create&leftmenu=orders_suppliers", Globals::$langs->trans("NewOrder"), 1, Globals::$user->rights->fournisseur->commande->creer);
965
                    $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers", Globals::$langs->trans("List"), 1, Globals::$user->rights->fournisseur->commande->lire);
966
967
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders_suppliers") {
968
//$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", Globals::$langs->trans("StatusOrderDraftShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
969
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=0", Globals::$langs->trans("StatusOrderDraftShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
970
                        if (empty(Conf::$global->SUPPLIER_ORDER_HIDE_VALIDATED)) {
971
//$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", Globals::$langs->trans("StatusOrderValidated"), 2, Globals::$user->rights->fournisseur->commande->lire);
972
                            $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=1", Globals::$langs->trans("StatusOrderValidated"), 2, Globals::$user->rights->fournisseur->commande->lire);
973
                        }
974
                        /*
975
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", Globals::$langs->trans("StatusOrderApprovedShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
976
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", Globals::$langs->trans("StatusOrderOnProcessShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
977
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", Globals::$langs->trans("StatusOrderReceivedPartiallyShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
978
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", Globals::$langs->trans("StatusOrderReceivedAll"), 2, Globals::$user->rights->fournisseur->commande->lire);
979
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", Globals::$langs->trans("StatusOrderCanceled"), 2, Globals::$user->rights->fournisseur->commande->lire);
980
                          $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", Globals::$langs->trans("StatusOrderRefused"), 2, Globals::$user->rights->fournisseur->commande->lire);
981
                         */
982
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=2", Globals::$langs->trans("StatusOrderApprovedShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
983
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=3", Globals::$langs->trans("StatusOrderOnProcessShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
984
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=4", Globals::$langs->trans("StatusOrderReceivedPartiallyShort"), 2, Globals::$user->rights->fournisseur->commande->lire);
985
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=5", Globals::$langs->trans("StatusOrderReceivedAll"), 2, Globals::$user->rights->fournisseur->commande->lire);
986
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=6,7", Globals::$langs->trans("StatusOrderCanceled"), 2, Globals::$user->rights->fournisseur->commande->lire);
987
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders_suppliers&statut=9", Globals::$langs->trans("StatusOrderRefused"), 2, Globals::$user->rights->fournisseur->commande->lire);
988
                    }
989
// Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", Globals::$langs->trans("StatusOrderBilled"), 2, Globals::$user->rights->fournisseur->commande->lire);
990
//$newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->commande->lire);
991
                    $newmenu->add(BASE_URI . "?controller=commande/stats&method=index&leftmenu=orders_suppliers&mode=supplier", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->commande->lire);
992
                }
993
994
// Contrat
995
                if (!empty($conf->contrat->enabled)) {
996
                    Globals::$langs->load("contracts");
997
                    /*
998
                      $newmenu->add("/contrat/index.php?leftmenu=contracts", Globals::$langs->trans("ContractsSubscriptions"), 0, Globals::$user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000);
999
                      $newmenu->add("/contrat/card.php?action=create&leftmenu=contracts", Globals::$langs->trans("NewContractSubscription"), 1, Globals::$user->rights->contrat->creer);
1000
                      $newmenu->add("/contrat/list.php?leftmenu=contracts", Globals::$langs->trans("List"), 1, Globals::$user->rights->contrat->lire);
1001
                      $newmenu->add("/contrat/services_list.php?leftmenu=contracts", Globals::$langs->trans("MenuServices"), 1, Globals::$user->rights->contrat->lire);
1002
                     */
1003
                    $newmenu->add(BASE_URI . "?controller=contrat&method=index&leftmenu=contracts", Globals::$langs->trans("ContractsSubscriptions"), 0, Globals::$user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000);
1004
                    $newmenu->add(BASE_URI . "?controller=contrat&method=card&action=create&leftmenu=contracts", Globals::$langs->trans("NewContractSubscription"), 1, Globals::$user->rights->contrat->creer);
1005
                    $newmenu->add(BASE_URI . "?controller=contrat&method=list&leftmenu=contracts", Globals::$langs->trans("List"), 1, Globals::$user->rights->contrat->lire);
1006
                    $newmenu->add(BASE_URI . "?controller=contrat&method=services_list&leftmenu=contracts", Globals::$langs->trans("MenuServices"), 1, Globals::$user->rights->contrat->lire);
1007
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "contracts") {
1008
                        /*
1009
                          $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=0", Globals::$langs->trans("MenuInactiveServices"), 2, Globals::$user->rights->contrat->lire);
1010
                          $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4", Globals::$langs->trans("MenuRunningServices"), 2, Globals::$user->rights->contrat->lire);
1011
                          $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4&filter=expired", Globals::$langs->trans("MenuExpiredServices"), 2, Globals::$user->rights->contrat->lire);
1012
                          $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=5", Globals::$langs->trans("MenuClosedServices"), 2, Globals::$user->rights->contrat->lire);
1013
                         */
1014
                        $newmenu->add(BASE_URI . "?controller=contrat&method=services_list&leftmenu=contracts&mode=0", Globals::$langs->trans("MenuInactiveServices"), 2, Globals::$user->rights->contrat->lire);
1015
                        $newmenu->add(BASE_URI . "?controller=contrat&method=services_list&leftmenu=contracts&mode=4", Globals::$langs->trans("MenuRunningServices"), 2, Globals::$user->rights->contrat->lire);
1016
                        $newmenu->add(BASE_URI . "?controller=contrat&method=services_list&leftmenu=contracts&mode=4&filter=expired", Globals::$langs->trans("MenuExpiredServices"), 2, Globals::$user->rights->contrat->lire);
1017
                        $newmenu->add(BASE_URI . "?controller=contrat&method=services_list&leftmenu=contracts&mode=5", Globals::$langs->trans("MenuClosedServices"), 2, Globals::$user->rights->contrat->lire);
1018
                    }
1019
                }
1020
1021
// Interventions
1022
                if (!empty($conf->ficheinter->enabled)) {
1023
                    Globals::$langs->load("interventions");
1024
                    /*
1025
                      $newmenu->add("/fichinter/index.php?leftmenu=ficheinter", Globals::$langs->trans("Interventions"), 0, Globals::$user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 2200);
1026
                      $newmenu->add("/fichinter/card.php?action=create&leftmenu=ficheinter", Globals::$langs->trans("NewIntervention"), 1, Globals::$user->rights->ficheinter->creer, '', '', '', 201);
1027
                      $newmenu->add("/fichinter/list.php?leftmenu=ficheinter", Globals::$langs->trans("List"), 1, Globals::$user->rights->ficheinter->lire, '', '', '', 202);
1028
                      $newmenu->add("/fichinter/card-red.php?leftmenu=ficheinter", Globals::$langs->trans("ModelList"), 1, Globals::$user->rights->ficheinter->lire, '', '', '', 203);
1029
                      $newmenu->add("/fichinter/stats/index.php?leftmenu=ficheinter", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->commande->lire);
1030
                     */
1031
                    $newmenu->add(BASE_URI . "?controller=fichinter&method=index&leftmenu=ficheinter", Globals::$langs->trans("Interventions"), 0, Globals::$user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 2200);
1032
                    $newmenu->add(BASE_URI . "?controller=fichinter&method=card&action=create&leftmenu=ficheinter", Globals::$langs->trans("NewIntervention"), 1, Globals::$user->rights->ficheinter->creer, '', '', '', 201);
1033
                    $newmenu->add(BASE_URI . "?controller=fichinter&method=list&leftmenu=ficheinter", Globals::$langs->trans("List"), 1, Globals::$user->rights->ficheinter->lire, '', '', '', 202);
1034
                    $newmenu->add(BASE_URI . "?controller=fichinter&method=card-red&leftmenu=ficheinter", Globals::$langs->trans("ModelList"), 1, Globals::$user->rights->ficheinter->lire, '', '', '', 203);
1035
                    $newmenu->add(BASE_URI . "?controller=fichinter/stats&method=index&leftmenu=ficheinter", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->commande->lire);
1036
                }
1037
            }
1038
1039
            /*
1040
             * Menu COMPTA-FINANCIAL
1041
             */
1042
            if ($mainmenu == 'billing') {
1043
                Globals::$langs->load("companies");
1044
1045
// Customers invoices
1046
                if (!empty($conf->facture->enabled)) {
1047
                    Globals::$langs->load("bills");
1048
                    /*
1049
                      $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", Globals::$langs->trans("BillsCustomers"), 0, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills');
1050
                      $newmenu->add("/compta/facture/card.php?action=create", Globals::$langs->trans("NewBill"), 1, Globals::$user->rights->facture->creer);
1051
                      $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", Globals::$langs->trans("List"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_list');
1052
                     */
1053
                    $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills", Globals::$langs->trans("BillsCustomers"), 0, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills');
1054
                    $newmenu->add(BASE_URI . "?controller=compta/facture&method=card&action=create", Globals::$langs->trans("NewBill"), 1, Globals::$user->rights->facture->creer);
1055
                    $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills", Globals::$langs->trans("List"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_list');
1056
1057
                    if ($usemenuhider || empty($leftmenu) || preg_match('/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) {
1058
                        /*
1059
                          $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_draft&search_status=0", Globals::$langs->trans("BillShortStatusDraft"), 2, Globals::$user->rights->facture->lire);
1060
                          $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_notpaid&search_status=1", Globals::$langs->trans("BillShortStatusNotPaid"), 2, Globals::$user->rights->facture->lire);
1061
                          $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2", Globals::$langs->trans("BillShortStatusPaid"), 2, Globals::$user->rights->facture->lire);
1062
                          $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_canceled&search_status=3", Globals::$langs->trans("BillShortStatusCanceled"), 2, Globals::$user->rights->facture->lire);
1063
                         */
1064
                        $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills_draft&search_status=0", Globals::$langs->trans("BillShortStatusDraft"), 2, Globals::$user->rights->facture->lire);
1065
                        $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills_notpaid&search_status=1", Globals::$langs->trans("BillShortStatusNotPaid"), 2, Globals::$user->rights->facture->lire);
1066
                        $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills_paid&search_status=2", Globals::$langs->trans("BillShortStatusPaid"), 2, Globals::$user->rights->facture->lire);
1067
                        $newmenu->add(BASE_URI . "?controller=compta/facture&method=list&leftmenu=customers_bills_canceled&search_status=3", Globals::$langs->trans("BillShortStatusCanceled"), 2, Globals::$user->rights->facture->lire);
1068
                    }
1069
//$newmenu->add("/compta/facture/invoicetemplate_list.php?leftmenu=customers_bills_templates", Globals::$langs->trans("ListOfTemplates"), 1, Globals::$user->rights->facture->creer, '', $mainmenu, 'customers_bills_templates');    // No need to see recurring invoices, if user has no permission to create invoice.
1070
//$newmenu->add("/compta/paiement/list.php?leftmenu=customers_bills_payment", Globals::$langs->trans("Payments"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_payment');
1071
                    $newmenu->add(BASE_URI . "?controller=compta/facture&method=invoicetemplate_list&leftmenu=customers_bills_templates", Globals::$langs->trans("ListOfTemplates"), 1, Globals::$user->rights->facture->creer, '', $mainmenu, 'customers_bills_templates');    // No need to see recurring invoices, if user has no permission to create invoice.
1072
                    $newmenu->add(BASE_URI . "?controller=compta/paiement&method=list&leftmenu=customers_bills_payment", Globals::$langs->trans("Payments"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_payment');
1073
1074
                    if (!empty(Conf::$global->BILL_ADD_PAYMENT_VALIDATION)) {
1075
//$newmenu->add("/compta/paiement/tovalidate.php?leftmenu=customers_bills_tovalid", Globals::$langs->trans("MenuToValid"), 2, Globals::$user->rights->facture->lire, '', $mainmenu, 'customer_bills_tovalid');
1076
                        $newmenu->add(BASE_URI . "?controller=compta/paiement&method=tovalidate&leftmenu=customers_bills_tovalid", Globals::$langs->trans("MenuToValid"), 2, Globals::$user->rights->facture->lire, '', $mainmenu, 'customer_bills_tovalid');
1077
                    }
1078
//$newmenu->add("/compta/paiement/rapport.php?leftmenu=customers_bills_reports", Globals::$langs->trans("Reportings"), 2, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_reports');
1079
//$newmenu->add("/compta/facture/stats/index.php?leftmenu=customers_bills_stats", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_stats');
1080
                    $newmenu->add(BASE_URI . "?controller=compta/paiement&method=rapport&leftmenu=customers_bills_reports", Globals::$langs->trans("Reportings"), 2, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_reports');
1081
                    $newmenu->add(BASE_URI . "?controller=compta/facture/stats&method=index&leftmenu=customers_bills_stats", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->facture->lire, '', $mainmenu, 'customers_bills_stats');
1082
                }
1083
1084
// Suppliers invoices
1085
                if (!empty($conf->societe->enabled) && !empty($conf->supplier_invoice->enabled)) {
1086
                    Globals::$langs->load("bills");
1087
//$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", Globals::$langs->trans("BillsSuppliers"), 0, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');
1088
//$newmenu->add("/fourn/facture/card.php?leftmenu=suppliers_bills&action=create", Globals::$langs->trans("NewBill"), 1, Globals::$user->rights->fournisseur->facture->creer, '', $mainmenu, 'suppliers_bills_create');
1089
//$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", Globals::$langs->trans("List"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_list');
1090
                    $newmenu->add(BASE_URI . "?controller=fourn/facture&method=list&leftmenu=suppliers_bills", Globals::$langs->trans("BillsSuppliers"), 0, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');
1091
                    $newmenu->add(BASE_URI . "?controller=fourn/facture&method=card&leftmenu=suppliers_bills&action=create", Globals::$langs->trans("NewBill"), 1, Globals::$user->rights->fournisseur->facture->creer, '', $mainmenu, 'suppliers_bills_create');
1092
                    $newmenu->add(BASE_URI . "?controller=fourn/facture&method=list&leftmenu=suppliers_bills", Globals::$langs->trans("List"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_list');
1093
1094
                    if ($usemenuhider || empty($leftmenu) || preg_match('/suppliers_bills/', $leftmenu)) {
1095
//$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_draft&search_status=0", Globals::$langs->trans("BillShortStatusDraft"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_draft');
1096
//$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_notpaid&search_status=1", Globals::$langs->trans("BillShortStatusNotPaid"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_notpaid');
1097
//$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_paid&search_status=2", Globals::$langs->trans("BillShortStatusPaid"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_paid');
1098
                        $newmenu->add(BASE_URI . "?controller=fourn/facture&method=list&leftmenu=suppliers_bills_draft&search_status=0", Globals::$langs->trans("BillShortStatusDraft"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_draft');
1099
                        $newmenu->add(BASE_URI . "?controller=fourn/facture&method=list&leftmenu=suppliers_bills_notpaid&search_status=1", Globals::$langs->trans("BillShortStatusNotPaid"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_notpaid');
1100
                        $newmenu->add(BASE_URI . "?controller=fourn/facture&method=list&leftmenu=suppliers_bills_paid&search_status=2", Globals::$langs->trans("BillShortStatusPaid"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_paid');
1101
                    }
1102
1103
//$newmenu->add("/fourn/facture/paiement.php?leftmenu=suppliers_bills_payment", Globals::$langs->trans("Payments"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment');
1104
//$newmenu->add("/fourn/facture/rapport.php?leftmenu=suppliers_bills_report", Globals::$langs->trans("Reportings"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_report');
1105
//$newmenu->add("/compta/facture/stats/index.php?mode=supplier&leftmenu=suppliers_bills_stats", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_stats');
1106
                    $newmenu->add(BASE_URI . "?controller=fourn/facture&method=paiement&leftmenu=suppliers_bills_payment", Globals::$langs->trans("Payments"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment');
1107
                    $newmenu->add(BASE_URI . "?controller=fourn/facture&method=rapport&leftmenu=suppliers_bills_report", Globals::$langs->trans("Reportings"), 2, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_report');
1108
                    $newmenu->add(BASE_URI . "?controller=compta/facture/stats&method=index&mode=supplier&leftmenu=suppliers_bills_stats", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_stats');
1109
                }
1110
1111
// Orders
1112
                if (!empty($conf->commande->enabled)) {
1113
                    Globals::$langs->load("orders");
1114
                    if (!empty($conf->facture->enabled)) {
1115
//$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-3&billed=0&contextpage=billableorders", Globals::$langs->trans("MenuOrdersToBill2"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders');
1116
                        $newmenu->add(BASE_URI . "?controller=commande&method=list&leftmenu=orders&viewstatut=-3&billed=0&contextpage=billableorders", Globals::$langs->trans("MenuOrdersToBill2"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders');
1117
                    }
1118
//                  if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", Globals::$langs->trans("StatusOrderToBill"), 1, Globals::$user->rights->commande->lire);
1119
                }
1120
1121
// Supplier Orders to bill
1122
                if (!empty($conf->supplier_invoice->enabled)) {
1123
                    if (!empty(Conf::$global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE)) {
1124
                        Globals::$langs->load("supplier");
1125
//$newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5&billed=0", Globals::$langs->trans("MenuOrdersSupplierToBill"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders');
1126
                        $newmenu->add(BASE_URI . "?controller=fourn/commande&method=list&leftmenu=orders&search_status=5&billed=0", Globals::$langs->trans("MenuOrdersSupplierToBill"), 0, Globals::$user->rights->commande->lire, '', $mainmenu, 'orders');
1127
//                  if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", Globals::$langs->trans("StatusOrderToBill"), 1, Globals::$user->rights->commande->lire);
1128
                    }
1129
                }
1130
1131
1132
// Donations
1133
                if (!empty($conf->don->enabled)) {
1134
                    Globals::$langs->load("donations");
1135
//$newmenu->add("/don/index.php?leftmenu=donations&mainmenu=billing", Globals::$langs->trans("Donations"), 0, Globals::$user->rights->don->lire, '', $mainmenu, 'donations');
1136
                    $newmenu->add(BASE_URI . "?controller=don&method=index&leftmenu=donations&mainmenu=billing", Globals::$langs->trans("Donations"), 0, Globals::$user->rights->don->lire, '', $mainmenu, 'donations');
1137
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "donations") {
1138
//$newmenu->add("/don/card.php?leftmenu=donations&action=create", Globals::$langs->trans("NewDonation"), 1, Globals::$user->rights->don->creer);
1139
//$newmenu->add("/don/list.php?leftmenu=donations", Globals::$langs->trans("List"), 1, Globals::$user->rights->don->lire);
1140
                        $newmenu->add(BASE_URI . "?controller=don&method=card&leftmenu=donations&action=create", Globals::$langs->trans("NewDonation"), 1, Globals::$user->rights->don->creer);
1141
                        $newmenu->add(BASE_URI . "?controller=don&method=list&leftmenu=donations", Globals::$langs->trans("List"), 1, Globals::$user->rights->don->lire);
1142
                    }
1143
// if ($leftmenu=="donations") $newmenu->add("/don/stats/index.php",Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->don->lire);
1144
                }
1145
1146
// Taxes and social contributions
1147
                if (!empty($conf->tax->enabled) || !empty($conf->salaries->enabled) || !empty($conf->loan->enabled) || !empty($conf->banque->enabled)) {
1148
                    global $mysoc;
1149
1150
                    $permtoshowmenu = ((!empty($conf->tax->enabled) && Globals::$user->rights->tax->charges->lire) || (!empty($conf->salaries->enabled) && !empty(Globals::$user->rights->salaries->read)) || (!empty($conf->loan->enabled) && Globals::$user->rights->loan->read) || (!empty($conf->banque->enabled) && Globals::$user->rights->banque->lire));
1151
//$newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=billing", Globals::$langs->trans("MenuSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax');
1152
                    $newmenu->add(BASE_URI . "?controller=compta/charges&method=index&leftmenu=tax&mainmenu=billing", Globals::$langs->trans("MenuSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax');
1153
1154
// Social contributions
1155
                    if (!empty($conf->tax->enabled)) {
1156
//$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", Globals::$langs->trans("MenuSocialContributions"), 1, Globals::$user->rights->tax->charges->lire);
1157
                        $newmenu->add(BASE_URI . "?controller=compta/sociales&method=list&leftmenu=tax_social", Globals::$langs->trans("MenuSocialContributions"), 1, Globals::$user->rights->tax->charges->lire);
1158
                        if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i', $leftmenu)) {
1159
//$newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create", Globals::$langs->trans("MenuNewSocialContribution"), 2, Globals::$user->rights->tax->charges->creer);
1160
//$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1161
//$newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=billing&mode=sconly", Globals::$langs->trans("Payments"), 2, Globals::$user->rights->tax->charges->lire);
1162
                            $newmenu->add(BASE_URI . "?controller=compta/sociales&method=card&leftmenu=tax_social&action=create", Globals::$langs->trans("MenuNewSocialContribution"), 2, Globals::$user->rights->tax->charges->creer);
1163
                            $newmenu->add(BASE_URI . "?controller=compta/sociales&method=list&leftmenu=tax_social", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1164
                            $newmenu->add(BASE_URI . "?controller=compta/sociales&method=payments&leftmenu=tax_social&mainmenu=billing&mode=sconly", Globals::$langs->trans("Payments"), 2, Globals::$user->rights->tax->charges->lire);
1165
                        }
1166
// VAT
1167
                        if (empty(Conf::$global->TAX_DISABLE_VAT_MENUS)) {
1168
//$newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&mainmenu=billing", Globals::$langs->transcountry("VAT", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');
1169
                            $newmenu->add(BASE_URI . "?controller=compta/tva&method=list&leftmenu=tax_vat&mainmenu=billing", Globals::$langs->transcountry("VAT", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');
1170
                            if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i', $leftmenu)) {
1171
                                /*
1172
                                  $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1173
                                  $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1174
                                  $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1175
                                  $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1176
                                  $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1177
                                 */
1178
                                $newmenu->add(BASE_URI . "?controller=compta/tva&method=card&leftmenu=tax_vat&action=create", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1179
                                $newmenu->add(BASE_URI . "?controller=compta/tva&method=list&leftmenu=tax_vat", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1180
                                $newmenu->add(BASE_URI . "?controller=compta/tva&method=index&leftmenu=tax_vat", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1181
                                $newmenu->add(BASE_URI . "?controller=compta/tva&method=clients&leftmenu=tax_vat", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1182
                                $newmenu->add(BASE_URI . "?controller=compta/tva&method=quadri_detail&leftmenu=tax_vat", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1183
                            }
1184
                            global $mysoc;
1185
1186
//Local Taxes 1
1187
                            if ($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj == "1")) {
1188
//$newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1", Globals::$langs->transcountry("LT1", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire);
1189
                                $newmenu->add(BASE_URI . "?controller=compta/localtax&method=list&leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1", Globals::$langs->transcountry("LT1", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire);
1190
                                if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i', $leftmenu)) {
1191
                                    /*
1192
                                      $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&localTaxType=1", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1193
                                      $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1194
                                      $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1195
                                      $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1196
                                      $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1197
                                     */
1198
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=card&leftmenu=tax_1_vat&action=create&localTaxType=1", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1199
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=list&leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1200
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=index&leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1201
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=clients&leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1202
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=quadri_detail&leftmenu=tax_1_vat&localTaxType=1", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1203
                                }
1204
                            }
1205
//Local Taxes 2
1206
                            if ($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj == "1")) {
1207
//$newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2", Globals::$langs->transcountry("LT2", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire);
1208
                                $newmenu->add(BASE_URI . "?controller=compta/localtax&method=list&leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2", Globals::$langs->transcountry("LT2", $mysoc->country_code), 1, Globals::$user->rights->tax->charges->lire);
1209
                                if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i', $leftmenu)) {
1210
                                    /*
1211
                                      $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&localTaxType=2", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1212
                                      $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1213
                                      $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1214
                                      $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1215
                                      $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1216
                                     */
1217
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=card&leftmenu=tax_2_vat&action=create&localTaxType=2", Globals::$langs->trans("New"), 2, Globals::$user->rights->tax->charges->creer);
1218
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=list&leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("List"), 2, Globals::$user->rights->tax->charges->lire);
1219
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=index&leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByMonth"), 2, Globals::$user->rights->tax->charges->lire);
1220
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=clients&leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByCustomers"), 2, Globals::$user->rights->tax->charges->lire);
1221
                                    $newmenu->add(BASE_URI . "?controller=compta/localtax&method=quadri_detail&leftmenu=tax_2_vat&localTaxType=2", Globals::$langs->trans("ReportByQuarter"), 2, Globals::$user->rights->tax->charges->lire);
1222
                                }
1223
                            }
1224
                        }
1225
                    }
1226
1227
// Salaries
1228
                    if (!empty($conf->salaries->enabled)) {
1229
                        Globals::$langs->load("salaries");
1230
//$newmenu->add("/compta/salaries/list.php?leftmenu=tax_salary&mainmenu=billing", Globals::$langs->trans("Salaries"), 1, Globals::$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
1231
                        $newmenu->add(BASE_URI . "?controller=compta/salaries&method=list&leftmenu=tax_salary&mainmenu=billing", Globals::$langs->trans("Salaries"), 1, Globals::$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
1232
                        if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i', $leftmenu)) {
1233
//$newmenu->add("/compta/salaries/card.php?leftmenu=tax_salary&action=create", Globals::$langs->trans("NewPayment"), 2, Globals::$user->rights->salaries->write);
1234
//$newmenu->add("/compta/salaries/list.php?leftmenu=tax_salary", Globals::$langs->trans("Payments"), 2, Globals::$user->rights->salaries->read);
1235
//$newmenu->add("/compta/salaries/stats/index.php?leftmenu=tax_salary", Globals::$langs->trans("Statistics"), 2, Globals::$user->rights->salaries->read);
1236
                            $newmenu->add(BASE_URI . "?controller=compta/salaries&method=card&leftmenu=tax_salary&action=create", Globals::$langs->trans("NewPayment"), 2, Globals::$user->rights->salaries->write);
1237
                            $newmenu->add(BASE_URI . "?controller=compta/salaries&method=list&leftmenu=tax_salary", Globals::$langs->trans("Payments"), 2, Globals::$user->rights->salaries->read);
1238
                            $newmenu->add(BASE_URI . "?controller=compta/salaries/stats&method=index&leftmenu=tax_salary", Globals::$langs->trans("Statistics"), 2, Globals::$user->rights->salaries->read);
1239
                        }
1240
                    }
1241
1242
// Loan
1243
                    if (!empty($conf->loan->enabled)) {
1244
                        Globals::$langs->load("loan");
1245
//$newmenu->add("/loan/list.php?leftmenu=tax_loan&mainmenu=billing", Globals::$langs->trans("Loans"), 1, Globals::$user->rights->loan->read, '', $mainmenu, 'tax_loan');
1246
                        $newmenu->add(BASE_URI . "?controller=loan&method=list&leftmenu=tax_loan&mainmenu=billing", Globals::$langs->trans("Loans"), 1, Globals::$user->rights->loan->read, '', $mainmenu, 'tax_loan');
1247
                        if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i', $leftmenu)) {
1248
//$newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create", Globals::$langs->trans("NewLoan"), 2, Globals::$user->rights->loan->write);
1249
                            $newmenu->add(BASE_URI . "?controller=loan&method=card&leftmenu=tax_loan&action=create", Globals::$langs->trans("NewLoan"), 2, Globals::$user->rights->loan->write);
1250
//$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",Globals::$langs->trans("Payments"),2,Globals::$user->rights->loan->read);
1251
                        }
1252
                    }
1253
1254
// Various payment
1255
                    if (!empty($conf->banque->enabled) && empty(Conf::$global->BANK_USE_OLD_VARIOUS_PAYMENT)) {
1256
                        Globals::$langs->load("banks");
1257
//$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&mainmenu=billing", Globals::$langs->trans("MenuVariousPayment"), 1, Globals::$user->rights->banque->lire, '', $mainmenu, 'tax_various');
1258
                        $newmenu->add(BASE_URI . "?controller=compta/bank/various_payment&method=list&leftmenu=tax_various&mainmenu=billing", Globals::$langs->trans("MenuVariousPayment"), 1, Globals::$user->rights->banque->lire, '', $mainmenu, 'tax_various');
1259
                        if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i', $leftmenu)) {
1260
//$newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", Globals::$langs->trans("New"), 2, Globals::$user->rights->banque->modifier);
1261
//$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various", Globals::$langs->trans("List"), 2, Globals::$user->rights->banque->lire);
1262
                            $newmenu->add(BASE_URI . "?controller=compta/bank/various_payment&method=card&leftmenu=tax_various&action=create", Globals::$langs->trans("New"), 2, Globals::$user->rights->banque->modifier);
1263
                            $newmenu->add(BASE_URI . "?controller=compta/bank/various_payment&method=list&leftmenu=tax_various", Globals::$langs->trans("List"), 2, Globals::$user->rights->banque->lire);
1264
                        }
1265
                    }
1266
                }
1267
            }
1268
1269
            /*
1270
             * Menu COMPTA-FINANCIAL
1271
             */
1272
            if ($mainmenu == 'accountancy') {
1273
                Globals::$langs->load("companies");
1274
1275
// Accounting Expert
1276
                if (!empty($conf->accounting->enabled)) {
1277
                    Globals::$langs->load("accountancy");
1278
1279
                    $permtoshowmenu = (!empty($conf->accounting->enabled) || Globals::$user->rights->accounting->bind->write || Globals::$user->rights->compta->resultat->lire);
1280
//$newmenu->add("/accountancy/index.php?leftmenu=accountancy", Globals::$langs->trans("MenuAccountancy"), 0, $permtoshowmenu, '', $mainmenu, 'accountancy');
1281
                    $newmenu->add(BASE_URI . "?controller=accountancy&method=index&leftmenu=accountancy", Globals::$langs->trans("MenuAccountancy"), 0, $permtoshowmenu, '', $mainmenu, 'accountancy');
1282
1283
// Chart of account
1284
//$newmenu->add("/accountancy/index.php?leftmenu=accountancy_admin", Globals::$langs->trans("Setup"), 1, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin', 1);
1285
                    $newmenu->add(BASE_URI . "?controller=accountancy&method=index&leftmenu=accountancy_admin", Globals::$langs->trans("Setup"), 1, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin', 1);
1286
                    if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/', $leftmenu)) {
1287
                        /*
1288
                          $newmenu->add("/accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("General"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_general', 10);
1289
                          $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("AccountingJournals"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 20);
1290
                          $newmenu->add("/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("Pcg_version"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 30);
1291
                          $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("Chartofaccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 40);
1292
                          $newmenu->add("/accountancy/admin/categories_list.php?id=32&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("AccountingCategory"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);
1293
                          $newmenu->add("/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuDefaultAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 50);
1294
                         */
1295
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=index&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("General"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_general', 10);
1296
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=journals_list&id=35&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("AccountingJournals"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 20);
1297
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=accountmodel&id=31&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("Pcg_version"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 30);
1298
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=account&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("Chartofaccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 40);
1299
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=categories_list&id=32&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("AccountingCategory"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);
1300
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=defaultaccounts&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuDefaultAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 50);
1301
                        if (!empty($conf->banque->enabled)) {
1302
//$newmenu->add("/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", Globals::$langs->trans("MenuBankAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_bank', 51);
1303
                            $newmenu->add(BASE_URI . "?controller=compta/bank&method=list&mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", Globals::$langs->trans("MenuBankAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_bank', 51);
1304
                        }
1305
                        if (!empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled)) {
1306
//$newmenu->add("/admin/dict.php?id=10&from=accountancy&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuVatAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 52);
1307
                            $newmenu->add(BASE_URI . "?controller=admin&method=dict&id=10&from=accountancy&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuVatAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 52);
1308
                        }
1309
                        if (!empty($conf->tax->enabled)) {
1310
//$newmenu->add("/admin/dict.php?id=7&from=accountancy&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuTaxAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 53);
1311
                            $newmenu->add(BASE_URI . "?controller=admin&method=dict&id=7&from=accountancy&search_country_id=" . $mysoc->country_id . "&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuTaxAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 53);
1312
                        }
1313
                        if (!empty($conf->expensereport->enabled)) {
1314
//$newmenu->add("/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuExpenseReportAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 54);
1315
                            $newmenu->add(BASE_URI . "?controller=admin&method=dict&id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuExpenseReportAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 54);
1316
                        }
1317
//$newmenu->add("/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuProductsAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_product', 55);
1318
//$newmenu->add("/accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("ExportOptions"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 60);
1319
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=productaccount&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("MenuProductsAccounts"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_product', 55);
1320
                        $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=export&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("ExportOptions"), 2, Globals::$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 60);
1321
1322
// Fiscal year
1323
                        if (Conf::$global->MAIN_FEATURES_LEVEL > 1) {
1324
// Not yet used. In a future will lock some periods.
1325
//$newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("FiscalPeriod"), 2, Globals::$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
1326
                            $newmenu->add(BASE_URI . "?controller=accountancy/admin&method=fiscalyear&mainmenu=accountancy&leftmenu=accountancy_admin", Globals::$langs->trans("FiscalPeriod"), 2, Globals::$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
1327
                        }
1328
                    }
1329
1330
// Binding
1331
                    if (!empty($conf->facture->enabled)) {
1332
//$newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&mainmenu=accountancy", Globals::$langs->trans("CustomersVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer');
1333
                        $newmenu->add(BASE_URI . "?controller=accountancy/customer&method=index&leftmenu=accountancy_dispatch_customer&mainmenu=accountancy", Globals::$langs->trans("CustomersVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer');
1334
                        if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/', $leftmenu)) {
1335
//$newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1336
//$newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1337
                            $newmenu->add(BASE_URI . "?controller=accountancy/customer&method=list&mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1338
                            $newmenu->add(BASE_URI . "?controller=accountancy/customer&method=lines&mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1339
                        }
1340
                    }
1341
                    if (!empty($conf->supplier_invoice->enabled)) {
1342
//$newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&mainmenu=accountancy", Globals::$langs->trans("SuppliersVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier');
1343
                        $newmenu->add(BASE_URI . "?controller=accountancy/supplier&method=index&leftmenu=accountancy_dispatch_supplier&mainmenu=accountancy", Globals::$langs->trans("SuppliersVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier');
1344
                        if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/', $leftmenu)) {
1345
//$newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1346
//$newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1347
                            $newmenu->add(BASE_URI . "?controller=accountancy/supplier&method=list&mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1348
                            $newmenu->add(BASE_URI . "?controller=accountancy/supplier&method=lines&mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1349
                        }
1350
                    }
1351
1352
                    if (!empty($conf->expensereport->enabled)) {
1353
//$newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&mainmenu=accountancy", Globals::$langs->trans("ExpenseReportsVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport');
1354
                        $newmenu->add(BASE_URI . "?controller=accountancy/expensereport&method=index&leftmenu=accountancy_dispatch_expensereport&mainmenu=accountancy", Globals::$langs->trans("ExpenseReportsVentilation"), 1, Globals::$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport');
1355
                        if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/', $leftmenu)) {
1356
//$newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1357
//$newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1358
                            $newmenu->add(BASE_URI . "?controller=accountancy/expensereport&method=list&mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", Globals::$langs->trans("ToBind"), 2, Globals::$user->rights->accounting->bind->write);
1359
                            $newmenu->add(BASE_URI . "?controller=accountancy/expensereport&method=lines&mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", Globals::$langs->trans("Binded"), 2, Globals::$user->rights->accounting->bind->write);
1360
                        }
1361
                    }
1362
1363
// Journals
1364
                    if (!empty($conf->accounting->enabled) && !empty(Globals::$user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') {
1365
                        $newmenu->add('', Globals::$langs->trans("Journalization"), 1, Globals::$user->rights->accounting->comptarapport->lire);
1366
1367
// Multi journal
1368
                        $sql = "SELECT rowid, code, label, nature";
1369
                        $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_journal";
1370
                        $sql .= " WHERE entity = " . $conf->entity;
1371
                        $sql .= " AND active = 1";
1372
                        $sql .= " ORDER BY label DESC";
1373
1374
                        $resql = Config::$dbEngine->query($sql);
0 ignored issues
show
Bug introduced by
The method query() does not exist on Alxarafe\Database\Engine. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1374
                        /** @scrutinizer ignore-call */ $resql = Config::$dbEngine->query($sql);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
1375
                        if ($resql) {
1376
                            $numr = Config::$dbEngine->num_rows($resql);
0 ignored issues
show
Bug introduced by
The method num_rows() does not exist on Alxarafe\Database\Engine. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1376
                            /** @scrutinizer ignore-call */ $numr = Config::$dbEngine->num_rows($resql);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
1377
                            $i = 0;
1378
1379
                            if ($numr > 0) {
1380
                                while ($i < $numr) {
1381
                                    $objp = Config::$dbEngine->fetch_object($resql);
0 ignored issues
show
Bug introduced by
The method fetch_object() does not exist on Alxarafe\Database\Engine. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1381
                                    /** @scrutinizer ignore-call */ $objp = Config::$dbEngine->fetch_object($resql);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
1382
1383
                                    $nature = '';
1384
1385
// Must match array $sourceList defined into journals_list.php
1386
                                    if ($objp->nature == 2 && !empty($conf->facture->enabled))
1387
                                        $nature = "sells";
1388
                                    if ($objp->nature == 3 && !empty($conf->fournisseur->enabled))
1389
                                        $nature = "purchases";
1390
                                    if ($objp->nature == 4 && !empty($conf->banque->enabled))
1391
                                        $nature = "bank";
1392
                                    if ($objp->nature == 5 && !empty($conf->expensereport->enabled))
1393
                                        $nature = "expensereports";
1394
                                    if ($objp->nature == 1)
1395
                                        $nature = "various";
1396
                                    if ($objp->nature == 8)
1397
                                        $nature = "inventory";
1398
                                    if ($objp->nature == 9)
1399
                                        $nature = "hasnew";
1400
1401
// To enable when page exists
1402
                                    if (empty(Conf::$global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) {
1403
                                        if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory')
1404
                                            $nature = '';
1405
                                    }
1406
1407
                                    if ($nature) {
1408
                                        Globals::$langs->load('accountancy');
1409
                                        $journallabel = Globals::$langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...
1410
//$newmenu->add('/accountancy/journal/' . $nature . 'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=' . $objp->rowid, $journallabel, 2, Globals::$user->rights->accounting->comptarapport->lire);
1411
                                        $newmenu->add(BASE_URI . '?controller=accountancy/journal&method=' . $nature . 'journal&mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=' . $objp->rowid, $journallabel, 2, Globals::$user->rights->accounting->comptarapport->lire);
1412
                                    }
1413
                                    $i++;
1414
                                }
1415
                            } else {
1416
// Should not happend. Entries are added
1417
                                $newmenu->add('', Globals::$langs->trans("NoJournalDefined"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1418
                            }
1419
                        } else
1420
                            dol_print_error(Config::$dbEngine);
1421
                        Config::$dbEngine->free($resql);
0 ignored issues
show
Bug introduced by
The method free() does not exist on Alxarafe\Database\Engine. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1421
                        Config::$dbEngine->/** @scrutinizer ignore-call */ free($resql);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
1422
                    }
1423
1424
// General Ledger
1425
//$newmenu->add("/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_generalledger", Globals::$langs->trans("Bookkeeping"), 1, Globals::$user->rights->accounting->mouvements->lire);
1426
                    $newmenu->add(BASE_URI . "?controller=accountancy/bookkeeping&method=list&mainmenu=accountancy&leftmenu=accountancy_generalledger", Globals::$langs->trans("Bookkeeping"), 1, Globals::$user->rights->accounting->mouvements->lire);
1427
1428
// Balance
1429
//$newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_balance", Globals::$langs->trans("AccountBalance"), 1, Globals::$user->rights->accounting->mouvements->lire);
1430
                    $newmenu->add(BASE_URI . "?controller=accountancy/bookkeeping&method=balance&mainmenu=accountancy&leftmenu=accountancy_balance", Globals::$langs->trans("AccountBalance"), 1, Globals::$user->rights->accounting->mouvements->lire);
1431
1432
// Files
1433
                    if (!empty(Conf::$global->MAIN_FEATURES_LEVEL) && Conf::$global->MAIN_FEATURES_LEVEL > 2) {
1434
//$newmenu->add("/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files", Globals::$langs->trans("AccountantFiles"), 1, Globals::$user->rights->accounting->mouvements->lire);
1435
                        $newmenu->add(BASE_URI . "?controller=compta&method=compta-files&mainmenu=accountancy&leftmenu=accountancy_files", Globals::$langs->trans("AccountantFiles"), 1, Globals::$user->rights->accounting->mouvements->lire);
1436
                    }
1437
1438
// Reports
1439
                    Globals::$langs->load("compta");
1440
1441
//$newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report", Globals::$langs->trans("Reportings"), 1, Globals::$user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');
1442
                    $newmenu->add(BASE_URI . "?controller=compta/resultat&method=index&mainmenu=accountancy&leftmenu=accountancy_report", Globals::$langs->trans("Reportings"), 1, Globals::$user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');
1443
1444
                    if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {
1445
//$newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", Globals::$langs->trans("MenuReportInOut"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1446
//$newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", Globals::$langs->trans("ByPredefinedAccountGroups"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1447
//$newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", Globals::$langs->trans("ByPersonalizedAccountGroups"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1448
                        $newmenu->add(BASE_URI . "?controller=compta/resultat&method=index&leftmenu=accountancy_report", Globals::$langs->trans("MenuReportInOut"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1449
                        $newmenu->add(BASE_URI . "?controller=compta/resultat&method=clientfourn&leftmenu=accountancy_report", Globals::$langs->trans("ByPredefinedAccountGroups"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1450
                        $newmenu->add(BASE_URI . "?controller=compta/resultat&method=result&leftmenu=accountancy_report", Globals::$langs->trans("ByPersonalizedAccountGroups"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1451
                    }
1452
1453
                    $modecompta = 'CREANCES-DETTES';
1454
                    if (!empty($conf->accounting->enabled) && !empty(Globals::$user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy')
1455
                        $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED
1456
                    if ($modecompta) {
1457
                        if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {
1458
                            /*
1459
                              $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ReportTurnover"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1460
                              $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByCompanies"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1461
                              $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByUsers"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1462
                              $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByProductsAndServices"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1463
                              $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByVatRate"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1464
                             */
1465
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=index&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ReportTurnover"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1466
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=casoc&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByCompanies"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1467
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=cabyuser&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByUsers"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1468
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=cabyprodserv&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByProductsAndServices"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1469
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=byratecountry&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByVatRate"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1470
                        }
1471
                    }
1472
1473
                    $modecompta = 'RECETTES-DEPENSES';
1474
//if (! empty($conf->accounting->enabled) && ! empty(Globals::$user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta='';	// Not yet implemented. Should be BOOKKEEPINGCOLLECTED
1475
                    if ($modecompta) {
1476
                        if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {
1477
//$newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ReportTurnoverCollected"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1478
//$newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByCompanies"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1479
//$newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByUsers"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1480
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=index&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ReportTurnoverCollected"), 2, Globals::$user->rights->accounting->comptarapport->lire);
1481
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=casoc&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByCompanies"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1482
                            $newmenu->add(BASE_URI . "?controller=compta/stats&method=cabyuser&leftmenu=accountancy_report&modecompta = " . $modecompta, Globals::$langs->trans("ByUsers"), 3, Globals::$user->rights->accounting->comptarapport->lire);
1483
//$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta = ".$modecompta, Globals::$langs->trans("ByProductsAndServices"),3,Globals::$user->rights->accounting->comptarapport->lire);
1484
//$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta = ".$modecompta, Globals::$langs->trans("ByVatRate"),3,Globals::$user->rights->accounting->comptarapport->lire);
1485
                        }
1486
                    }
1487
                }
1488
1489
// Accountancy (simple)
1490
                if (!empty($conf->comptabilite->enabled)) {
1491
                    Globals::$langs->load("compta");
1492
1493
// Bilan, resultats
1494
//$newmenu->add("/compta/resultat/index.php?leftmenu=report&mainmenu=accountancy", Globals::$langs->trans("Reportings"), 0, Globals::$user->rights->compta->resultat->lire, '', $mainmenu, 'ca');
1495
                    $newmenu->add(BASE_URI . "?controller=compta/resultat&method=index&leftmenu=report&mainmenu=accountancy", Globals::$langs->trans("Reportings"), 0, Globals::$user->rights->compta->resultat->lire, '', $mainmenu, 'ca');
1496
1497
                    if ($usemenuhider || empty($leftmenu) || preg_match('/report/', $leftmenu)) {
1498
//$newmenu->add("/compta/resultat/index.php?leftmenu=report", Globals::$langs->trans("MenuReportInOut"), 1, Globals::$user->rights->compta->resultat->lire);
1499
//$newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report", Globals::$langs->trans("ByCompanies"), 2, Globals::$user->rights->compta->resultat->lire);
1500
                        $newmenu->add(BASE_URI . "?controller=compta/resultat&method=index&leftmenu=report", Globals::$langs->trans("MenuReportInOut"), 1, Globals::$user->rights->compta->resultat->lire);
1501
                        $newmenu->add(BASE_URI . "?controller=compta/resultat&method=clientfourn&leftmenu=report", Globals::$langs->trans("ByCompanies"), 2, Globals::$user->rights->compta->resultat->lire);
1502
                        /* On verra ca avec module compabilite expert
1503
                          $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,Globals::$user->rights->compta->resultat->lire);
1504
                          $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,Globals::$user->rights->compta->resultat->lire);
1505
                         */
1506
//$newmenu->add("/compta/stats/index.php?leftmenu=report", Globals::$langs->trans("ReportTurnover"), 1, Globals::$user->rights->compta->resultat->lire);
1507
                        $newmenu->add(BASE_URI . "?controller=compta/stats&method=index&leftmenu=report", Globals::$langs->trans("ReportTurnover"), 1, Globals::$user->rights->compta->resultat->lire);
1508
1509
                        /*
1510
                          $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,Globals::$user->rights->compta->resultat->lire);
1511
                          if (! empty($conf->propal->enabled)) {
1512
                          $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,Globals::$user->rights->compta->resultat->lire);
1513
                          $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,Globals::$user->rights->compta->resultat->lire);
1514
                          }
1515
                         */
1516
//$newmenu->add("/compta/stats/casoc.php?leftmenu=report", Globals::$langs->trans("ByCompanies"), 2, Globals::$user->rights->compta->resultat->lire);
1517
//$newmenu->add("/compta/stats/cabyuser.php?leftmenu=report", Globals::$langs->trans("ByUsers"), 2, Globals::$user->rights->compta->resultat->lire);
1518
//$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", Globals::$langs->trans("ByProductsAndServices"), 2, Globals::$user->rights->compta->resultat->lire);
1519
//$newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", Globals::$langs->trans("ByVatRate"), 2, Globals::$user->rights->compta->resultat->lire);
1520
                        $newmenu->add(BASE_URI . "?controller=compta/stats&method=casoc&leftmenu=report", Globals::$langs->trans("ByCompanies"), 2, Globals::$user->rights->compta->resultat->lire);
1521
                        $newmenu->add(BASE_URI . "?controller=compta/stats&method=cabyuser&leftmenu=report", Globals::$langs->trans("ByUsers"), 2, Globals::$user->rights->compta->resultat->lire);
1522
                        $newmenu->add(BASE_URI . "?controller=compta/stats&method=cabyprodserv&leftmenu=report", Globals::$langs->trans("ByProductsAndServices"), 2, Globals::$user->rights->compta->resultat->lire);
1523
                        $newmenu->add(BASE_URI . "?controller=compta/stats&method=byratecountry&leftmenu=report", Globals::$langs->trans("ByVatRate"), 2, Globals::$user->rights->compta->resultat->lire);
1524
1525
// Journaux
1526
//$newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report", Globals::$langs->trans("SellsJournal"), 1, Globals::$user->rights->compta->resultat->lire, '', '', '', 50);
1527
//$newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report", Globals::$langs->trans("PurchasesJournal"), 1, Globals::$user->rights->compta->resultat->lire, '', '', '', 51);
1528
                        $newmenu->add(BASE_URI . "?controller=compta/journal&method=sellsjournal&leftmenu=report", Globals::$langs->trans("SellsJournal"), 1, Globals::$user->rights->compta->resultat->lire, '', '', '', 50);
1529
                        $newmenu->add(BASE_URI . "?controller=compta/journal&method=purchasesjournal&leftmenu=report", Globals::$langs->trans("PurchasesJournal"), 1, Globals::$user->rights->compta->resultat->lire, '', '', '', 51);
1530
                    }
1531
//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",Globals::$langs->trans("Journaux"),1,Globals::$user->rights->compta->resultat->lire||Globals::$user->rights->accounting->comptarapport->lire);
1532
                }
1533
1534
// Assets
1535
                if (!empty($conf->asset->enabled)) {
1536
                    Globals::$langs->load("assets");
1537
//$newmenu->add("/asset/list.php?leftmenu=asset&mainmenu=accountancy", Globals::$langs->trans("MenuAssets"), 0, Globals::$user->rights->asset->read, '', $mainmenu, 'asset');
1538
//$newmenu->add("/asset/card.php?action=create", Globals::$langs->trans("MenuNewAsset"), 1, Globals::$user->rights->asset->write);
1539
//$newmenu->add("/asset/list.php?leftmenu=asset&mainmenu=accountancy", Globals::$langs->trans("MenuListAssets"), 1, Globals::$user->rights->asset->read);
1540
//$newmenu->add("/asset/type.php?leftmenu=asset_type", Globals::$langs->trans("MenuTypeAssets"), 1, Globals::$user->rights->asset->read, '', $mainmenu, 'asset_type');
1541
                    $newmenu->add(BASE_URI . "?controller=asset&method=list&leftmenu=asset&mainmenu=accountancy", Globals::$langs->trans("MenuAssets"), 0, Globals::$user->rights->asset->read, '', $mainmenu, 'asset');
1542
                    $newmenu->add(BASE_URI . "?controller=asset&method=card&action=create", Globals::$langs->trans("MenuNewAsset"), 1, Globals::$user->rights->asset->write);
1543
                    $newmenu->add(BASE_URI . "?controller=asset&method=list&leftmenu=asset&mainmenu=accountancy", Globals::$langs->trans("MenuListAssets"), 1, Globals::$user->rights->asset->read);
1544
                    $newmenu->add(BASE_URI . "?controller=asset&method=type&leftmenu=asset_type", Globals::$langs->trans("MenuTypeAssets"), 1, Globals::$user->rights->asset->read, '', $mainmenu, 'asset_type');
1545
                    if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/', $leftmenu)) {
1546
//$newmenu->add("/asset/type.php?leftmenu=asset_type&action=create", Globals::$langs->trans("MenuNewTypeAssets"), 2, Globals::$user->rights->asset->write);
1547
//$newmenu->add("/asset/type.php?leftmenu=asset_type", Globals::$langs->trans("MenuListTypeAssets"), 2, Globals::$user->rights->asset->read);
1548
                        $newmenu->add(BASE_URI . "?controller=asset&method=type&leftmenu=asset_type&action=create", Globals::$langs->trans("MenuNewTypeAssets"), 2, Globals::$user->rights->asset->write);
1549
                        $newmenu->add(BASE_URI . "?controller=asset&mtehod=type&leftmenu=asset_type", Globals::$langs->trans("MenuListTypeAssets"), 2, Globals::$user->rights->asset->read);
1550
                    }
1551
                }
1552
            }
1553
1554
1555
            /*
1556
             * Menu BANK
1557
             */
1558
            if ($mainmenu == 'bank') {
1559
// Load translation files required by the page
1560
                Globals::$langs->loadLangs(array("withdrawals", "banks", "bills", "categories"));
1561
1562
// Bank-Caisse
1563
                if (!empty($conf->banque->enabled)) {
1564
                    /*
1565
                      $newmenu->add("/compta/bank/list.php?leftmenu=bank&mainmenu=bank", Globals::$langs->trans("MenuBankCash"), 0, Globals::$user->rights->banque->lire, '', $mainmenu, 'bank');
1566
1567
                      $newmenu->add("/compta/bank/card.php?action=create", Globals::$langs->trans("MenuNewFinancialAccount"), 1, Globals::$user->rights->banque->configurer);
1568
                      $newmenu->add("/compta/bank/list.php?leftmenu=bank&mainmenu=bank", Globals::$langs->trans("List"), 1, Globals::$user->rights->banque->lire, '', $mainmenu, 'bank');
1569
                      $newmenu->add("/compta/bank/bankentries_list.php", Globals::$langs->trans("ListTransactions"), 1, Globals::$user->rights->banque->lire);
1570
                      $newmenu->add("/compta/bank/budget.php", Globals::$langs->trans("ListTransactionsByCategory"), 1, Globals::$user->rights->banque->lire);
1571
1572
                      $newmenu->add("/compta/bank/transfer.php", Globals::$langs->trans("MenuBankInternalTransfer"), 1, Globals::$user->rights->banque->transfer);
1573
                     */
1574
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=list&leftmenu=bank&mainmenu=bank", Globals::$langs->trans("MenuBankCash"), 0, Globals::$user->rights->banque->lire, '', $mainmenu, 'bank');
1575
1576
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=card&action=create", Globals::$langs->trans("MenuNewFinancialAccount"), 1, Globals::$user->rights->banque->configurer);
1577
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=list&leftmenu=bank&mainmenu=bank", Globals::$langs->trans("List"), 1, Globals::$user->rights->banque->lire, '', $mainmenu, 'bank');
1578
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=bankentries_list", Globals::$langs->trans("ListTransactions"), 1, Globals::$user->rights->banque->lire);
1579
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=budget", Globals::$langs->trans("ListTransactionsByCategory"), 1, Globals::$user->rights->banque->lire);
1580
1581
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=transfer", Globals::$langs->trans("MenuBankInternalTransfer"), 1, Globals::$user->rights->banque->transfer);
1582
                }
1583
1584
                if (!empty($conf->categorie->enabled)) {
1585
                    Globals::$langs->load("categories");
1586
//$newmenu->add("/categories/index.php?type = 5", Globals::$langs->trans("Rubriques"), 1, Globals::$user->rights->categorie->creer, '', $mainmenu, 'tags');
1587
//$newmenu->add("/compta/bank/categ.php", Globals::$langs->trans("RubriquesTransactions"), 1, Globals::$user->rights->categorie->creer, '', $mainmenu, 'tags');
1588
                    $newmenu->add(BASE_URI . "?controller=categories&method=index&type=5", Globals::$langs->trans("Rubriques"), 1, Globals::$user->rights->categorie->creer, '', $mainmenu, 'tags');
1589
                    $newmenu->add(BASE_URI . "?controller=compta/bank&method=categ", Globals::$langs->trans("RubriquesTransactions"), 1, Globals::$user->rights->categorie->creer, '', $mainmenu, 'tags');
1590
                }
1591
1592
// Prelevements
1593
                if (!empty($conf->prelevement->enabled)) {
1594
//$newmenu->add("/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank", Globals::$langs->trans("StandingOrders"), 0, Globals::$user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw');
1595
                    $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=index&leftmenu=withdraw&mainmenu=bank", Globals::$langs->trans("StandingOrders"), 0, Globals::$user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw');
1596
1597
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "withdraw") {
1598
//$newmenu->add("/compta/prelevement/demandes.php?status = 0&mainmenu=bank",Globals::$langs->trans("StandingOrderToProcess"),1,Globals::$user->rights->prelevement->bons->lire);
1599
1600
                        /*
1601
                          $newmenu->add("/compta/prelevement/create.php?mainmenu=bank", Globals::$langs->trans("NewStandingOrder"), 1, Globals::$user->rights->prelevement->bons->creer);
1602
1603
                          $newmenu->add("/compta/prelevement/bons.php?mainmenu=bank", Globals::$langs->trans("WithdrawalsReceipts"), 1, Globals::$user->rights->prelevement->bons->lire);
1604
                          $newmenu->add("/compta/prelevement/list.php?mainmenu=bank", Globals::$langs->trans("WithdrawalsLines"), 1, Globals::$user->rights->prelevement->bons->lire);
1605
                          $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank", Globals::$langs->trans("Rejects"), 1, Globals::$user->rights->prelevement->bons->lire);
1606
                          $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->prelevement->bons->lire);
1607
                         */
1608
                        $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=create&mainmenu=bank", Globals::$langs->trans("NewStandingOrder"), 1, Globals::$user->rights->prelevement->bons->creer);
1609
1610
                        $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=bons&mainmenu=bank", Globals::$langs->trans("WithdrawalsReceipts"), 1, Globals::$user->rights->prelevement->bons->lire);
1611
                        $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=list&mainmenu=bank", Globals::$langs->trans("WithdrawalsLines"), 1, Globals::$user->rights->prelevement->bons->lire);
1612
                        $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=rejets&mainmenu=bank", Globals::$langs->trans("Rejects"), 1, Globals::$user->rights->prelevement->bons->lire);
1613
                        $newmenu->add(BASE_URI . "?controller=compta/prelevement&method=stats&mainmenu=bank", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->prelevement->bons->lire);
1614
1615
//$newmenu->add("/compta/prelevement/config.php",Globals::$langs->trans("Setup"),1,Globals::$user->rights->prelevement->bons->configurer);
1616
                    }
1617
                }
1618
1619
// Gestion cheques
1620
                if (empty(Conf::$global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty(Conf::$global->MAIN_MENU_CHEQUE_DEPOSIT_ON))) {
1621
//$newmenu->add("/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank", Globals::$langs->trans("MenuChequeDeposits"), 0, Globals::$user->rights->banque->cheque, '', $mainmenu, 'checks');
1622
                    $newmenu->add(BASE_URI . "?controller=compta/paiement/cheque&method=index&leftmenu=checks&mainmenu=bank", Globals::$langs->trans("MenuChequeDeposits"), 0, Globals::$user->rights->banque->cheque, '', $mainmenu, 'checks');
1623
                    if (preg_match('/checks/', $leftmenu)) {
1624
//$newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&action=new&mainmenu=bank", Globals::$langs->trans("NewChequeDeposit"), 1, Globals::$user->rights->banque->cheque);
1625
//$newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&mainmenu=bank", Globals::$langs->trans("List"), 1, Globals::$user->rights->banque->cheque);
1626
                        $newmenu->add(BASE_URI . "?controller=compta/paiement/cheque&method=card&leftmenu=checks_bis&action=new&mainmenu=bank", Globals::$langs->trans("NewChequeDeposit"), 1, Globals::$user->rights->banque->cheque);
1627
                        $newmenu->add(BASE_URI . "?controller=compta/paiement/cheque&method=list&leftmenu=checks_bis&mainmenu=bank", Globals::$langs->trans("List"), 1, Globals::$user->rights->banque->cheque);
1628
                    }
1629
                }
1630
1631
// Cash Control
1632
                if (!empty($conf->takepos->enabled) || !empty($conf->cashdesk->enabled)) {
1633
                    $permtomakecashfence = (Globals::$user->rights->cashdesk->use || Globals::$user->rights->takepos->use);
1634
//$newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list", Globals::$langs->trans("POS"), 0, $permtomakecashfence, '', $mainmenu, 'cashcontrol');
1635
//$newmenu->add("/compta/cashcontrol/cashcontrol_card.php?action=create", Globals::$langs->trans("NewCashFence"), 1, $permtomakecashfence);
1636
//$newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list", Globals::$langs->trans("List"), 1, $permtomakecashfence);
1637
                    $newmenu->add(BASE_URI . "?controller=compta/cashcontrol&method=cashcontrol_list&action=list", Globals::$langs->trans("POS"), 0, $permtomakecashfence, '', $mainmenu, 'cashcontrol');
1638
                    $newmenu->add(BASE_URI . "?controller=compta/cashcontrol&method=cashcontrol_card&action=create", Globals::$langs->trans("NewCashFence"), 1, $permtomakecashfence);
1639
                    $newmenu->add(BASE_URI . "?controller=compta/cashcontrol&method=cashcontrol_list&action=list", Globals::$langs->trans("List"), 1, $permtomakecashfence);
1640
                }
1641
            }
1642
1643
            /*
1644
             * Menu PRODUCTS-SERVICES
1645
             */
1646
            if ($mainmenu == 'products') {
1647
// Products
1648
                if (!empty($conf->product->enabled)) {
1649
//$newmenu->add("/product/index.php?leftmenu=product&type=0", Globals::$langs->trans("Products"), 0, Globals::$user->rights->produit->lire, '', $mainmenu, 'product');
1650
//$newmenu->add("/product/card.php?leftmenu=product&action=create&type=0", Globals::$langs->trans("NewProduct"), 1, Globals::$user->rights->produit->creer);
1651
//$newmenu->add("/product/list.php?leftmenu=product&type=0", Globals::$langs->trans("List"), 1, Globals::$user->rights->produit->lire);
1652
                    $newmenu->add(BASE_URI . "?controller=product&method=index&leftmenu=product&type=0", Globals::$langs->trans("Products"), 0, Globals::$user->rights->produit->lire, '', $mainmenu, 'product');
1653
                    $newmenu->add(BASE_URI . "?controller=product&method=card&leftmenu=product&action=create&type=0", Globals::$langs->trans("NewProduct"), 1, Globals::$user->rights->produit->creer);
1654
                    $newmenu->add(BASE_URI . "?controller=product&method=list&leftmenu=product&type=0", Globals::$langs->trans("List"), 1, Globals::$user->rights->produit->lire);
1655
                    if (!empty($conf->stock->enabled)) {
1656
//$newmenu->add("/product/reassort.php?type = 0", Globals::$langs->trans("Stocks"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1657
                        $newmenu->add(BASE_URI . "?controller=product&method=reassort&type=0", Globals::$langs->trans("Stocks"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1658
                    }
1659
                    if (!empty($conf->productbatch->enabled)) {
1660
                        Globals::$langs->load("stocks");
1661
//$newmenu->add("/product/reassortlot.php?type = 0", Globals::$langs->trans("StocksByLotSerial"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1662
//$newmenu->add("/product/stock/productlot_list.php", Globals::$langs->trans("LotSerial"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1663
                        $newmenu->add(BASE_URI . "?controller=product&method=reassortlot&type=0", Globals::$langs->trans("StocksByLotSerial"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1664
                        $newmenu->add(BASE_URI . "?controller=product/stock&method=productlot_list", Globals::$langs->trans("LotSerial"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->stock->lire);
1665
                    }
1666
                    if (!empty($conf->variants->enabled)) {
1667
//$newmenu->add("/variants/list.php", Globals::$langs->trans("VariantAttributes"), 1, Globals::$user->rights->produit->lire);
1668
                        $newmenu->add(BASE_URI . "?controller=variants&method=list", Globals::$langs->trans("VariantAttributes"), 1, Globals::$user->rights->produit->lire);
1669
                    }
1670
                    if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) {
1671
// $newmenu->add("/product/stats/card.php?id = all&leftmenu=stats&type=0", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->propale->lire);
1672
                        $newmenu->add(BASE_URI . "?controller=product/stats&method=card&id=all&leftmenu=stats&type=0", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->produit->lire && Globals::$user->rights->propale->lire);
1673
                    }
1674
1675
// Categories
1676
                    if (!empty($conf->categorie->enabled)) {
1677
                        Globals::$langs->load("categories");
1678
//$newmenu->add("/categories/index.php?leftmenu=cat&type=0", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1679
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=cat&type=0", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1680
                        //if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", Globals::$langs->trans("List"), 1, Globals::$user->rights->categorie->lire);
1681
                    }
1682
                }
1683
1684
                // Services
1685
                if (!empty($conf->service->enabled)) {
1686
                    //$newmenu->add("/product/index.php?leftmenu=service&type=1", Globals::$langs->trans("Services"), 0, Globals::$user->rights->service->lire, '', $mainmenu, 'service');
1687
                    //$newmenu->add("/product/card.php?leftmenu=service&action=create&type=1", Globals::$langs->trans("NewService"), 1, Globals::$user->rights->service->creer);
1688
                    //$newmenu->add("/product/list.php?leftmenu=service&type=1", Globals::$langs->trans("List"), 1, Globals::$user->rights->service->lire);
1689
                    $newmenu->add(BASE_URI . "?controller=product&method=index&leftmenu=service&type=1", Globals::$langs->trans("Services"), 0, Globals::$user->rights->service->lire, '', $mainmenu, 'service');
1690
                    $newmenu->add(BASE_URI . "?controller=product&method=card&leftmenu=service&action=create&type=1", Globals::$langs->trans("NewService"), 1, Globals::$user->rights->service->creer);
1691
                    $newmenu->add(BASE_URI . "?controller=product&method=list&leftmenu=service&type=1", Globals::$langs->trans("List"), 1, Globals::$user->rights->service->lire);
1692
                    if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) {
1693
                        //$newmenu->add("/product/stats/card.php?id = all&leftmenu=stats&type=1", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->service->lire && Globals::$user->rights->propale->lire);
1694
                        $newmenu->add(BASE_URI . "?controller=product/stats&method=card&id=all&leftmenu=stats&type=1", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->service->lire && Globals::$user->rights->propale->lire);
1695
                    }
1696
                    // Categories
1697
                    if (!empty($conf->categorie->enabled)) {
1698
                        Globals::$langs->load("categories");
1699
                        //$newmenu->add("/categories/index.php?leftmenu=cat&type=0", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1700
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=cat&type=0", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1701
                        //if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", Globals::$langs->trans("List"), 1, Globals::$user->rights->categorie->lire);
1702
                    }
1703
                }
1704
1705
                // Warehouse
1706
                if (!empty($conf->stock->enabled)) {
1707
                    Globals::$langs->load("stocks");
1708
                    /*
1709
                      $newmenu->add("/product/stock/index.php?leftmenu=stock", Globals::$langs->trans("Warehouses"), 0, Globals::$user->rights->stock->lire, '', $mainmenu, 'stock');
1710
                      $newmenu->add("/product/stock/card.php?action=create", Globals::$langs->trans("MenuNewWarehouse"), 1, Globals::$user->rights->stock->creer);
1711
                      $newmenu->add("/product/stock/list.php", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->lire);
1712
                      $newmenu->add("/product/stock/movement_list.php", Globals::$langs->trans("Movements"), 1, Globals::$user->rights->stock->mouvement->lire);
1713
1714
                      $newmenu->add("/product/stock/massstockmove.php", Globals::$langs->trans("MassStockTransferShort"), 1, Globals::$user->rights->stock->mouvement->creer);
1715
                     */
1716
                    $newmenu->add(BASE_URI . "?controller=product/stock&method=index&leftmenu=stock", Globals::$langs->trans("Warehouses"), 0, Globals::$user->rights->stock->lire, '', $mainmenu, 'stock');
1717
                    $newmenu->add(BASE_URI . "?controller=product/stock&method=card&action=create", Globals::$langs->trans("MenuNewWarehouse"), 1, Globals::$user->rights->stock->creer);
1718
                    $newmenu->add(BASE_URI . "?controller=product/stock&method=list", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->lire);
1719
                    $newmenu->add(BASE_URI . "?controller=product/stock&method=movement_list", Globals::$langs->trans("Movements"), 1, Globals::$user->rights->stock->mouvement->lire);
1720
1721
                    $newmenu->add(BASE_URI . "?controller=product/stock&method=massstockmove", Globals::$langs->trans("MassStockTransferShort"), 1, Globals::$user->rights->stock->mouvement->creer);
1722
                    if ($conf->supplier_order->enabled) {
1723
                        //$newmenu->add("/product/stock/replenish.php", Globals::$langs->trans("Replenishment"), 1, Globals::$user->rights->stock->mouvement->creer && Globals::$user->rights->fournisseur->lire);
1724
                        $newmenu->add(BASE_URI . "?controller=product/stock&method=replenish", Globals::$langs->trans("Replenishment"), 1, Globals::$user->rights->stock->mouvement->creer && Globals::$user->rights->fournisseur->lire);
1725
                    }
1726
                }
1727
1728
                // Inventory
1729
                if (Conf::$global->MAIN_FEATURES_LEVEL >= 2) {
1730
                    if (!empty($conf->stock->enabled)) {
1731
                        Globals::$langs->load("stocks");
1732
                        if (empty(Conf::$global->MAIN_USE_ADVANCED_PERMS)) {
1733
                            //$newmenu->add("/product/inventory/list.php?leftmenu=stock", Globals::$langs->trans("Inventory"), 0, Globals::$user->rights->stock->lire, '', $mainmenu, 'stock');
1734
                            //$newmenu->add("/product/inventory/card.php?action=create", Globals::$langs->trans("NewInventory"), 1, Globals::$user->rights->stock->creer);
1735
                            //$newmenu->add("/product/inventory/list.php", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->lire);
1736
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=list&leftmenu=stock", Globals::$langs->trans("Inventory"), 0, Globals::$user->rights->stock->lire, '', $mainmenu, 'stock');
1737
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=card&action=create", Globals::$langs->trans("NewInventory"), 1, Globals::$user->rights->stock->creer);
1738
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=list", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->lire);
1739
                        } else {
1740
                            //$newmenu->add("/product/inventory/list.php?leftmenu=stock", Globals::$langs->trans("Inventory"), 0, Globals::$user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock');
1741
                            //$newmenu->add("/product/inventory/card.php?action=create", Globals::$langs->trans("NewInventory"), 1, Globals::$user->rights->stock->inventory_advance->write);
1742
                            //$newmenu->add("/product/inventory/list.php", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->inventory_advance->read);
1743
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=list&leftmenu=stock", Globals::$langs->trans("Inventory"), 0, Globals::$user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock');
1744
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=card&action=create", Globals::$langs->trans("NewInventory"), 1, Globals::$user->rights->stock->inventory_advance->write);
1745
                            $newmenu->add(BASE_URI . "?controller=product/inventory&method=list", Globals::$langs->trans("List"), 1, Globals::$user->rights->stock->inventory_advance->read);
1746
                        }
1747
                    }
1748
                }
1749
1750
                // Shipments
1751
                if (!empty($conf->expedition->enabled)) {
1752
                    Globals::$langs->load("sendings");
1753
                    //$newmenu->add("/expedition/index.php?leftmenu=sendings", Globals::$langs->trans("Shipments"), 0, Globals::$user->rights->expedition->lire, '', $mainmenu, 'sendings');
1754
                    //$newmenu->add("/expedition/card.php?action=create2&leftmenu=sendings", Globals::$langs->trans("NewSending"), 1, Globals::$user->rights->expedition->creer);
1755
                    //$newmenu->add("/expedition/list.php?leftmenu=sendings", Globals::$langs->trans("List"), 1, Globals::$user->rights->expedition->lire);
1756
                    $newmenu->add(BASE_URI . "?controller=expedition&method=index&leftmenu=sendings", Globals::$langs->trans("Shipments"), 0, Globals::$user->rights->expedition->lire, '', $mainmenu, 'sendings');
1757
                    $newmenu->add(BASE_URI . "?controller=expedition&method=card&action=create2&leftmenu=sendings", Globals::$langs->trans("NewSending"), 1, Globals::$user->rights->expedition->creer);
1758
                    $newmenu->add(BASE_URI . "?controller=expedition&method=list&leftmenu=sendings", Globals::$langs->trans("List"), 1, Globals::$user->rights->expedition->lire);
1759
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "sendings") {
1760
                        //$newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=0", Globals::$langs->trans("StatusSendingDraftShort"), 2, Globals::$user->rights->expedition->lire);
1761
                        //$newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=1", Globals::$langs->trans("StatusSendingValidatedShort"), 2, Globals::$user->rights->expedition->lire);
1762
                        //$newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=2", Globals::$langs->trans("StatusSendingProcessedShort"), 2, Globals::$user->rights->expedition->lire);
1763
                        $newmenu->add(BASE_URI . "?controller=expedition&method=list&leftmenu=sendings&viewstatut=0", Globals::$langs->trans("StatusSendingDraftShort"), 2, Globals::$user->rights->expedition->lire);
1764
                        $newmenu->add(BASE_URI . "?controller=expedition&method=list&leftmenu=sendings&viewstatut=1", Globals::$langs->trans("StatusSendingValidatedShort"), 2, Globals::$user->rights->expedition->lire);
1765
                        $newmenu->add(BASE_URI . "?controller=expedition&method=list&leftmenu=sendings&viewstatut=2", Globals::$langs->trans("StatusSendingProcessedShort"), 2, Globals::$user->rights->expedition->lire);
1766
                    }
1767
                    //$newmenu->add("/expedition/stats/index.php?leftmenu=sendings", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->expedition->lire);
1768
                    $newmenu->add(BASE_URI . "?controller=expedition/stats&method=index&leftmenu=sendings", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->expedition->lire);
1769
                }
1770
1771
                // Receptions
1772
                if (!empty($conf->reception->enabled)) {
1773
                    Globals::$langs->load("receptions");
1774
                    //$newmenu->add("/reception/index.php?leftmenu=receptions", Globals::$langs->trans("Receptions"), 0, Globals::$user->rights->reception->lire, '', $mainmenu, 'receptions');
1775
                    //$newmenu->add("/reception/card.php?action=create2&leftmenu=receptions", Globals::$langs->trans("NewReception"), 1, Globals::$user->rights->reception->creer);
1776
                    //$newmenu->add("/reception/list.php?leftmenu=receptions", Globals::$langs->trans("List"), 1, Globals::$user->rights->reception->lire);
1777
                    $newmenu->add(BASE_URI . "?controller=reception&method=index&leftmenu=receptions", Globals::$langs->trans("Receptions"), 0, Globals::$user->rights->reception->lire, '', $mainmenu, 'receptions');
1778
                    $newmenu->add(BASE_URI . "?controller=reception&method=card&action=create2&leftmenu=receptions", Globals::$langs->trans("NewReception"), 1, Globals::$user->rights->reception->creer);
1779
                    $newmenu->add(BASE_URI . "?controller=reception&method=list&leftmenu=receptions", Globals::$langs->trans("List"), 1, Globals::$user->rights->reception->lire);
1780
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {
1781
                        //$newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=0", Globals::$langs->trans("StatusReceptionDraftShort"), 2, Globals::$user->rights->reception->lire);
1782
                        $newmenu->add(BASE_URI . "?controller=reception&method=list&leftmenu=receptions&viewstatut=0", Globals::$langs->trans("StatusReceptionDraftShort"), 2, Globals::$user->rights->reception->lire);
1783
                    }
1784
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {
1785
                        //$newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=1", Globals::$langs->trans("StatusReceptionValidatedShort"), 2, Globals::$user->rights->reception->lire);
1786
                        $newmenu->add(BASE_URI . "?controller=reception&method=list&leftmenu=receptions&viewstatut=1", Globals::$langs->trans("StatusReceptionValidatedShort"), 2, Globals::$user->rights->reception->lire);
1787
                    }
1788
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") {
1789
                        //$newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=2", Globals::$langs->trans("StatusReceptionProcessedShort"), 2, Globals::$user->rights->reception->lire);
1790
                        $newmenu->add(BASE_URI . "?controller=reception&method=list&leftmenu=receptions&viewstatut=2", Globals::$langs->trans("StatusReceptionProcessedShort"), 2, Globals::$user->rights->reception->lire);
1791
                    }
1792
                    //$newmenu->add("/reception/stats/index.php?leftmenu=receptions", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->reception->lire);
1793
                    $newmenu->add(BASE_URI . "?controller=reception/stats&method=index&leftmenu=receptions", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->reception->lire);
1794
                }
1795
            }
1796
1797
            /*
1798
             * Menu PROJECTS
1799
             */
1800
            if ($mainmenu == 'project') {
1801
                if (!empty($conf->projet->enabled)) {
1802
                    Globals::$langs->load("projects");
1803
1804
                    $search_project_user = DolUtils::GETPOST('search_project_user', 'int');
1805
1806
                    $tmpentry = array(
1807
                        'enabled' => (!empty($conf->projet->enabled)),
1808
                        'perms' => (!empty(Globals::$user->rights->projet->lire)),
1809
                        'module' => 'projet',
1810
                    );
1811
                    $showmode = DolUtils::isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $type_user seems to be never defined.
Loading history...
1812
1813
                    $titleboth = Globals::$langs->trans("LeadsOrProjects");
1814
                    $titlenew = Globals::$langs->trans("NewLeadOrProject"); // Leads and opportunities by default
1815
                    if (Conf::$global->PROJECT_USE_OPPORTUNITIES == 0) {
1816
                        $titleboth = Globals::$langs->trans("Projects");
1817
                        $titlenew = Globals::$langs->trans("NewProject");
1818
                    }
1819
                    if (Conf::$global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only
1820
                        $titleboth = Globals::$langs->trans("Leads");
1821
                        $titlenew = Globals::$langs->trans("NewLead");
1822
                    }
1823
1824
                    // Project assigned to user
1825
                    //$newmenu->add("/projet/index.php?leftmenu=projects" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), $titleboth, 0, Globals::$user->rights->projet->lire, '', $mainmenu, 'projects');
1826
                    //$newmenu->add("/projet/card.php?leftmenu=projects&action=create" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), $titlenew, 1, Globals::$user->rights->projet->creer);
1827
                    $newmenu->add(BASE_URI . "?controller=projet&method=index&leftmenu=projects" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), $titleboth, 0, Globals::$user->rights->projet->lire, '', $mainmenu, 'projects');
1828
                    $newmenu->add(BASE_URI . "?controller=projet&method=card&leftmenu=projects&action=create" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), $titlenew, 1, Globals::$user->rights->projet->creer);
1829
1830
                    if (Conf::$global->PROJECT_USE_OPPORTUNITIES == 0) {
1831
                        //$newmenu->add("/projet/list.php?leftmenu=projets" . ($search_project_user ? '&search_project_user=' . $search_project_user : '') . '&search_status=99', Globals::$langs->trans("List"), 1, $showmode, '', 'project', 'list');
1832
                        $newmenu->add(BASE_URI . "?controller=projet&method=list&leftmenu=projets" . ($search_project_user ? '&search_project_user=' . $search_project_user : '') . '&search_status=99', Globals::$langs->trans("List"), 1, $showmode, '', 'project', 'list');
1833
                    } elseif (Conf::$global->PROJECT_USE_OPPORTUNITIES == 1) {
1834
                        //$newmenu->add("/projet/list.php?leftmenu=projets" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("List"), 1, $showmode, '', 'project', 'list');
1835
                        //$newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=openedopp&search_status=99&contextpage=lead', Globals::$langs->trans("ListOpenLeads"), 2, $showmode);
1836
                        //$newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', Globals::$langs->trans("ListOpenProjects"), 2, $showmode);
1837
                        $newmenu->add(BASE_URI . "?controller=projet&method=list&leftmenu=projets" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("List"), 1, $showmode, '', 'project', 'list');
1838
                        $newmenu->add(BASE_URI . '?controller=projet&method=list&mainmenu=project&leftmenu=list&search_opp_status=openedopp&search_status=99&contextpage=lead', Globals::$langs->trans("ListOpenLeads"), 2, $showmode);
1839
                        $newmenu->add(BASE_URI . '?controller=projet&method=list&mainmenu=project&leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', Globals::$langs->trans("ListOpenProjects"), 2, $showmode);
1840
                    } elseif (Conf::$global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only
1841
                        //$newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=openedopp&search_status=99', Globals::$langs->trans("List"), 2, $showmode);
1842
                        $newmenu->add(BASE_URI . '?controller=projet&method=list&mainmenu=project&leftmenu=list&search_opp_status=openedopp&search_status=99', Globals::$langs->trans("List"), 2, $showmode);
1843
                    }
1844
1845
                    //$newmenu->add("/projet/stats/index.php?leftmenu=projects", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->projet->lire);
1846
                    $newmenu->add(BASE_URI . "?controller=projet/stats&method=index&leftmenu=projects", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->projet->lire);
1847
1848
                    // Categories
1849
                    if (!empty($conf->categorie->enabled)) {
1850
                        Globals::$langs->load("categories");
1851
                        //$newmenu->add("/categories/index.php?leftmenu=cat&type=6", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1852
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=cat&type=6", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
1853
                    }
1854
1855
                    if (empty(Conf::$global->PROJECT_HIDE_TASKS)) {
1856
                        // Project affected to user
1857
                        /*
1858
                          $newmenu->add("/projet/activity/index.php?leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("Activities"), 0, Globals::$user->rights->projet->lire);
1859
                          $newmenu->add("/projet/tasks.php?leftmenu=tasks&action=create", Globals::$langs->trans("NewTask"), 1, Globals::$user->rights->projet->creer);
1860
                          $newmenu->add("/projet/tasks/list.php?leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("List"), 1, Globals::$user->rights->projet->lire);
1861
                          $newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->projet->lire);
1862
1863
                          $newmenu->add("/projet/activity/perweek.php?leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("NewTimeSpent"), 0, Globals::$user->rights->projet->lire);
1864
                         */
1865
                        $newmenu->add(BASE_URI . "?controller=projet/activity&method=index&leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("Activities"), 0, Globals::$user->rights->projet->lire);
1866
                        $newmenu->add(BASE_URI . "?controller=projet&method=tasks&leftmenu=tasks&action=create", Globals::$langs->trans("NewTask"), 1, Globals::$user->rights->projet->creer);
1867
                        $newmenu->add(BASE_URI . "?controller=projet/tasks&method=list&leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("List"), 1, Globals::$user->rights->projet->lire);
1868
                        $newmenu->add(BASE_URI . "?controller=projet/tasks/stats&method=index&leftmenu=projects", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->projet->lire);
1869
1870
                        $newmenu->add(BASE_URI . "?controller=projet/activity&method=perweek&leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("NewTimeSpent"), 0, Globals::$user->rights->projet->lire);
1871
                    }
1872
                }
1873
            }
1874
1875
            /*
1876
             * Menu HRM
1877
             */
1878
            if ($mainmenu == 'hrm') {
1879
                // HRM module
1880
                if (!empty($conf->hrm->enabled)) {
1881
                    Globals::$langs->load("hrm");
1882
1883
                    //$newmenu->add("/user/list.php?leftmenu=hrm&mode=employee", Globals::$langs->trans("Employees"), 0, Globals::$user->rights->hrm->employee->read, '', $mainmenu, 'hrm');
1884
                    //$newmenu->add("/user/card.php?action=create&employee = 1", Globals::$langs->trans("NewEmployee"), 1, Globals::$user->rights->hrm->employee->write);
1885
                    //$newmenu->add("/user/list.php?leftmenu=hrm&mode=employee&contextpage = employeelist", Globals::$langs->trans("List"), 1, Globals::$user->rights->hrm->employee->read);
1886
                    $newmenu->add(BASE_URI . "?controller=user&method=list&leftmenu=hrm&mode=employee", Globals::$langs->trans("Employees"), 0, Globals::$user->rights->hrm->employee->read, '', $mainmenu, 'hrm');
1887
                    $newmenu->add(BASE_URI . "?controller=user&method=card&action=create&employee = 1", Globals::$langs->trans("NewEmployee"), 1, Globals::$user->rights->hrm->employee->write);
1888
                    $newmenu->add(BASE_URI . "?controller=user&method=list&leftmenu=hrm&mode=employee&contextpage = employeelist", Globals::$langs->trans("List"), 1, Globals::$user->rights->hrm->employee->read);
1889
                }
1890
1891
                // Leave/Holiday/Vacation module
1892
                if (!empty($conf->holiday->enabled)) {
1893
                    // Load translation files required by the page
1894
                    Globals::$langs->loadLangs(array("holiday", "trips"));
1895
1896
                    //$newmenu->add("/holiday/list.php?leftmenu=hrm", Globals::$langs->trans("CPTitreMenu"), 0, Globals::$user->rights->holiday->read, '', $mainmenu, 'hrm');
1897
                    //$newmenu->add("/holiday/card.php?action=request", Globals::$langs->trans("New"), 1, Globals::$user->rights->holiday->write);
1898
                    //$newmenu->add("/holiday/list.php?leftmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->holiday->read);
1899
                    $newmenu->add(BASE_URI . "?controller=holiday&method=list&leftmenu=hrm", Globals::$langs->trans("CPTitreMenu"), 0, Globals::$user->rights->holiday->read, '', $mainmenu, 'hrm');
1900
                    $newmenu->add(BASE_URI . "?controller=holiday&method=card&action=request", Globals::$langs->trans("New"), 1, Globals::$user->rights->holiday->write);
1901
                    $newmenu->add(BASE_URI . "?controller=holiday&method=list&leftmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->holiday->read);
1902
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "hrm") {
1903
                        /*
1904
                          $newmenu->add("/holiday/list.php?search_statut = 1&leftmenu=hrm", Globals::$langs->trans("DraftCP"), 2, Globals::$user->rights->holiday->read);
1905
                          $newmenu->add("/holiday/list.php?search_statut = 2&leftmenu=hrm", Globals::$langs->trans("ToReviewCP"), 2, Globals::$user->rights->holiday->read);
1906
                          $newmenu->add("/holiday/list.php?search_statut = 3&leftmenu=hrm", Globals::$langs->trans("ApprovedCP"), 2, Globals::$user->rights->holiday->read);
1907
                          $newmenu->add("/holiday/list.php?search_statut = 4&leftmenu=hrm", Globals::$langs->trans("CancelCP"), 2, Globals::$user->rights->holiday->read);
1908
                          $newmenu->add("/holiday/list.php?search_statut = 5&leftmenu=hrm", Globals::$langs->trans("RefuseCP"), 2, Globals::$user->rights->holiday->read);
1909
                         */
1910
                        $newmenu->add(BASE_URI . "?controller=holiday&method=list&search_statut=1&leftmenu=hrm", Globals::$langs->trans("DraftCP"), 2, Globals::$user->rights->holiday->read);
1911
                        $newmenu->add(BASE_URI . "?controller=holiday&method=list&search_statut=2&leftmenu=hrm", Globals::$langs->trans("ToReviewCP"), 2, Globals::$user->rights->holiday->read);
1912
                        $newmenu->add(BASE_URI . "?controller=holiday&method=list&search_statut=3&leftmenu=hrm", Globals::$langs->trans("ApprovedCP"), 2, Globals::$user->rights->holiday->read);
1913
                        $newmenu->add(BASE_URI . "?controller=holiday&method=list&search_statut=4&leftmenu=hrm", Globals::$langs->trans("CancelCP"), 2, Globals::$user->rights->holiday->read);
1914
                        $newmenu->add(BASE_URI . "?controller=holiday&method=list&search_statut=5&leftmenu=hrm", Globals::$langs->trans("RefuseCP"), 2, Globals::$user->rights->holiday->read);
1915
                    }
1916
                    //$newmenu->add("/holiday/define_holiday.php?action=request", Globals::$langs->trans("MenuConfCP"), 1, Globals::$user->rights->holiday->read);
1917
                    //$newmenu->add("/holiday/month_report.php", Globals::$langs->trans("MenuReportMonth"), 1, Globals::$user->rights->holiday->read_all);
1918
                    //$newmenu->add("/holiday/view_log.php?action=request", Globals::$langs->trans("MenuLogCP"), 1, Globals::$user->rights->holiday->define_holiday);
1919
                    $newmenu->add(BASE_URI . "?controller=holiday&method=define_holiday&action=request", Globals::$langs->trans("MenuConfCP"), 1, Globals::$user->rights->holiday->read);
1920
                    $newmenu->add(BASE_URI . "?controller=holiday&method=month_report", Globals::$langs->trans("MenuReportMonth"), 1, Globals::$user->rights->holiday->read_all);
1921
                    $newmenu->add(BASE_URI . "?controller=holiday&method=view_log&action=request", Globals::$langs->trans("MenuLogCP"), 1, Globals::$user->rights->holiday->define_holiday);
1922
                }
1923
1924
                // Trips and expenses (old module)
1925
                if (!empty($conf->deplacement->enabled)) {
1926
                    Globals::$langs->load("trips");
1927
                    /*
1928
                      $newmenu->add("/compta/deplacement/index.php?leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("TripsAndExpenses"), 0, Globals::$user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses');
1929
                      $newmenu->add("/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("New"), 1, Globals::$user->rights->deplacement->creer);
1930
                      $newmenu->add("/compta/deplacement/list.php?leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->deplacement->lire);
1931
                      $newmenu->add("/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->deplacement->lire);
1932
                     */
1933
                    $newmenu->add(BASE_URI . "?controller=compta/deplacement&method=index&leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("TripsAndExpenses"), 0, Globals::$user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses');
1934
                    $newmenu->add(BASE_URI . "?controller=compta/deplacement&method=card&action=create&leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("New"), 1, Globals::$user->rights->deplacement->creer);
1935
                    $newmenu->add(BASE_URI . "?controller=compta/deplacement&method=list&leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->deplacement->lire);
1936
                    $newmenu->add(BASE_URI . "?controller=compta/deplacement/stats&method=index&leftmenu=tripsandexpenses&mainmenu=hrm", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->deplacement->lire);
1937
                }
1938
1939
                // Expense report
1940
                if (!empty($conf->expensereport->enabled)) {
1941
                    Globals::$langs->load("trips");
1942
                    /*
1943
                      $newmenu->add("/expensereport/index.php?leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("TripsAndExpenses"), 0, Globals::$user->rights->expensereport->lire, '', $mainmenu, 'expensereport');
1944
                      $newmenu->add("/expensereport/card.php?action=create&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("New"), 1, Globals::$user->rights->expensereport->creer);
1945
                      $newmenu->add("/expensereport/list.php?leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->expensereport->lire);
1946
                      if ($usemenuhider || empty($leftmenu) || $leftmenu == "expensereport") {
1947
                      $newmenu->add("/expensereport/list.php?search_status = 0&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Draft"), 2, Globals::$user->rights->expensereport->lire);
1948
                      $newmenu->add("/expensereport/list.php?search_status = 2&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Validated"), 2, Globals::$user->rights->expensereport->lire);
1949
                      $newmenu->add("/expensereport/list.php?search_status = 5&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Approved"), 2, Globals::$user->rights->expensereport->lire);
1950
                      $newmenu->add("/expensereport/list.php?search_status = 6&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Paid"), 2, Globals::$user->rights->expensereport->lire);
1951
                      $newmenu->add("/expensereport/list.php?search_status = 4&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Canceled"), 2, Globals::$user->rights->expensereport->lire);
1952
                      $newmenu->add("/expensereport/list.php?search_status = 99&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Refused"), 2, Globals::$user->rights->expensereport->lire);
1953
                      }
1954
                      $newmenu->add("/expensereport/stats/index.php?leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->expensereport->lire);
1955
                     */
1956
                    $newmenu->add(BASE_URI . "?controller=expensereport&method=index&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("TripsAndExpenses"), 0, Globals::$user->rights->expensereport->lire, '', $mainmenu, 'expensereport');
1957
                    $newmenu->add(BASE_URI . "?controller=expensereport&method=card&action=create&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("New"), 1, Globals::$user->rights->expensereport->creer);
1958
                    $newmenu->add(BASE_URI . "?controller=expensereport&method=list&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("List"), 1, Globals::$user->rights->expensereport->lire);
1959
                    if ($usemenuhider || empty($leftmenu) || $leftmenu == "expensereport") {
1960
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=0&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Draft"), 2, Globals::$user->rights->expensereport->lire);
1961
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=2&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Validated"), 2, Globals::$user->rights->expensereport->lire);
1962
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=5&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Approved"), 2, Globals::$user->rights->expensereport->lire);
1963
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=6&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Paid"), 2, Globals::$user->rights->expensereport->lire);
1964
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=4&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Canceled"), 2, Globals::$user->rights->expensereport->lire);
1965
                        $newmenu->add(BASE_URI . "?controller=expensereport&method=list&search_status=99&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Refused"), 2, Globals::$user->rights->expensereport->lire);
1966
                    }
1967
                    $newmenu->add(BASE_URI . "?controller=expensereport/stats&method=index&leftmenu=expensereport&mainmenu=hrm", Globals::$langs->trans("Statistics"), 1, Globals::$user->rights->expensereport->lire);
1968
                }
1969
1970
                if (!empty($conf->projet->enabled)) {
1971
                    if (empty(Conf::$global->PROJECT_HIDE_TASKS)) {
1972
                        Globals::$langs->load("projects");
1973
1974
                        $search_project_user = DolUtils::GETPOST('search_project_user', 'int');
1975
1976
                        //$newmenu->add("/projet/activity/perweek.php?leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("NewTimeSpent"), 0, Globals::$user->rights->projet->lire);
1977
                        $newmenu->add(BASE_URI . "?controller=projet/activity&method=perweek&leftmenu=tasks" . ($search_project_user ? '&search_project_user=' . $search_project_user : ''), Globals::$langs->trans("NewTimeSpent"), 0, Globals::$user->rights->projet->lire);
1978
                    }
1979
                }
1980
            }
1981
1982
1983
            /*
1984
             * Menu TOOLS
1985
             */
1986
            if ($mainmenu == 'tools') {
1987
                if (empty(Globals::$user->socid)) { // limit to internal users
1988
                    Globals::$langs->load("mails");
1989
                    //$newmenu->add("/admin/mails_templates.php?leftmenu=email_templates", Globals::$langs->trans("EMailTemplates"), 0, 1, '', $mainmenu, 'email_templates');
1990
                    $newmenu->add(BASE_URI . "?controller=admin&method=mails_templates&leftmenu=email_templates", Globals::$langs->trans("EMailTemplates"), 0, 1, '', $mainmenu, 'email_templates');
1991
                }
1992
1993
                if (!empty($conf->mailing->enabled)) {
1994
                    //$newmenu->add("/comm/mailing/index.php?leftmenu=mailing", Globals::$langs->trans("EMailings"), 0, Globals::$user->rights->mailing->lire, '', $mainmenu, 'mailing');
1995
                    //$newmenu->add("/comm/mailing/card.php?leftmenu=mailing&action=create", Globals::$langs->trans("NewMailing"), 1, Globals::$user->rights->mailing->creer);
1996
                    //$newmenu->add("/comm/mailing/list.php?leftmenu=mailing", Globals::$langs->trans("List"), 1, Globals::$user->rights->mailing->lire);
1997
                    $newmenu->add(BASE_URI . "?controller=comm/mailing&method=index&leftmenu=mailing", Globals::$langs->trans("EMailings"), 0, Globals::$user->rights->mailing->lire, '', $mainmenu, 'mailing');
1998
                    $newmenu->add(BASE_URI . "?controller=comm/mailing&method=card&leftmenu=mailing&action=create", Globals::$langs->trans("NewMailing"), 1, Globals::$user->rights->mailing->creer);
1999
                    $newmenu->add(BASE_URI . "?controller=comm/mailing&method=list&leftmenu=mailing", Globals::$langs->trans("List"), 1, Globals::$user->rights->mailing->lire);
2000
                }
2001
2002
                if (!empty($conf->export->enabled)) {
2003
                    Globals::$langs->load("exports");
2004
                    //$newmenu->add("/exports/index.php?leftmenu=export", Globals::$langs->trans("FormatedExport"), 0, Globals::$user->rights->export->lire, '', $mainmenu, 'export');
2005
                    //$newmenu->add("/exports/export.php?leftmenu=export", Globals::$langs->trans("NewExport"), 1, Globals::$user->rights->export->creer);
2006
                    $newmenu->add(BASE_URI . "?controller=exports&methodindex&leftmenu=export", Globals::$langs->trans("FormatedExport"), 0, Globals::$user->rights->export->lire, '', $mainmenu, 'export');
2007
                    $newmenu->add(BASE_URI . "?controller=exports&method=export&leftmenu=export", Globals::$langs->trans("NewExport"), 1, Globals::$user->rights->export->creer);
2008
                    //$newmenu->add("/exports/export.php?leftmenu=export",Globals::$langs->trans("List"),1, Globals::$user->rights->export->lire);
2009
                }
2010
2011
                if (!empty($conf->import->enabled)) {
2012
                    Globals::$langs->load("exports");
2013
                    //$newmenu->add("/imports/index.php?leftmenu=import", Globals::$langs->trans("FormatedImport"), 0, Globals::$user->rights->import->run, '', $mainmenu, 'import');
2014
                    //$newmenu->add("/imports/import.php?leftmenu=import", Globals::$langs->trans("NewImport"), 1, Globals::$user->rights->import->run);
2015
                    $newmenu->add(BASE_URI . "?controller=imports&method=index&leftmenu=import", Globals::$langs->trans("FormatedImport"), 0, Globals::$user->rights->import->run, '', $mainmenu, 'import');
2016
                    $newmenu->add(BASE_URI . "?controller=imports&method=import&leftmenu=import", Globals::$langs->trans("NewImport"), 1, Globals::$user->rights->import->run);
2017
                }
2018
            }
2019
2020
            /*
2021
             * Menu MEMBERS
2022
             */
2023
            if ($mainmenu == 'members') {
2024
                if (!empty($conf->adherent->enabled)) {
2025
                    // Load translation files required by the page
2026
                    Globals::$langs->loadLangs(array("members", "compta"));
2027
                    /*
2028
                      $newmenu->add("/adherents/index.php?leftmenu=members&mainmenu=members", Globals::$langs->trans("Members"), 0, Globals::$user->rights->adherent->lire, '', $mainmenu, 'members');
2029
                      $newmenu->add("/adherents/card.php?leftmenu=members&action=create", Globals::$langs->trans("NewMember"), 1, Globals::$user->rights->adherent->creer);
2030
                      $newmenu->add("/adherents/list.php?leftmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->lire);
2031
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=-1", Globals::$langs->trans("MenuMembersToValidate"), 2, Globals::$user->rights->adherent->lire);
2032
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=1", Globals::$langs->trans("MenuMembersValidated"), 2, Globals::$user->rights->adherent->lire);
2033
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter = uptodate", Globals::$langs->trans("MenuMembersUpToDate"), 2, Globals::$user->rights->adherent->lire);
2034
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter = outofdate", Globals::$langs->trans("MenuMembersNotUpToDate"), 2, Globals::$user->rights->adherent->lire);
2035
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=0", Globals::$langs->trans("MenuMembersResiliated"), 2, Globals::$user->rights->adherent->lire);
2036
                      $newmenu->add("/adherents/stats/index.php?leftmenu=members", Globals::$langs->trans("MenuMembersStats"), 1, Globals::$user->rights->adherent->lire);
2037
2038
                      $newmenu->add("/adherents/cartes/carte.php?leftmenu=export", Globals::$langs->trans("MembersCards"), 1, Globals::$user->rights->adherent->export);
2039
                      if (!empty(Conf::$global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export"))
2040
                      $newmenu->add("/adherents/htpasswd.php?leftmenu=export", Globals::$langs->trans("Filehtpasswd"), 1, Globals::$user->rights->adherent->export);
2041
2042
                      if (!empty($conf->categorie->enabled)) {
2043
                      Globals::$langs->load("categories");
2044
                      $newmenu->add("/categories/index.php?leftmenu=cat&type=3", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
2045
                      }
2046
2047
                      $newmenu->add("/adherents/index.php?leftmenu=members&mainmenu=members", Globals::$langs->trans("Subscriptions"), 0, Globals::$user->rights->adherent->cotisation->lire);
2048
                      $newmenu->add("/adherents/list.php?leftmenu=members&statut=-1, 1&mainmenu=members", Globals::$langs->trans("NewSubscription"), 1, Globals::$user->rights->adherent->cotisation->creer);
2049
                      $newmenu->add("/adherents/subscription/list.php?leftmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->cotisation->lire);
2050
                      $newmenu->add("/adherents/stats/index.php?leftmenu=members", Globals::$langs->trans("MenuMembersStats"), 1, Globals::$user->rights->adherent->lire);
2051
2052
                      //$newmenu->add("/adherents/index.php?leftmenu=export&mainmenu=members",Globals::$langs->trans("Tools"),0,Globals::$user->rights->adherent->export, '', $mainmenu, 'export');
2053
                      //if (! empty($conf->export->enabled) && ($usemenuhider || empty($leftmenu) || $leftmenu=="export")) $newmenu->add("/exports/index.php?leftmenu=export",Globals::$langs->trans("Datas"),1,Globals::$user->rights->adherent->export);
2054
                      // Type
2055
                      $newmenu->add("/adherents/type.php?leftmenu=setup&mainmenu=members", Globals::$langs->trans("MembersTypes"), 0, Globals::$user->rights->adherent->configurer, '', $mainmenu, 'setup');
2056
                      $newmenu->add("/adherents/type.php?leftmenu=setup&mainmenu=members&action=create", Globals::$langs->trans("New"), 1, Globals::$user->rights->adherent->configurer);
2057
                      $newmenu->add("/adherents/type.php?leftmenu=setup&mainmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->configurer);
2058
                     */
2059
                    $newmenu->add(BASE_URI . "?controller=adherents&method=index&leftmenu=members&mainmenu=members", Globals::$langs->trans("Members"), 0, Globals::$user->rights->adherent->lire, '', $mainmenu, 'members');
2060
                    $newmenu->add(BASE_URI . "?controller=adherents&method=card&leftmenu=members&action=create", Globals::$langs->trans("NewMember"), 1, Globals::$user->rights->adherent->creer);
2061
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->lire);
2062
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members&statut=-1", Globals::$langs->trans("MenuMembersToValidate"), 2, Globals::$user->rights->adherent->lire);
2063
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members&statut=1", Globals::$langs->trans("MenuMembersValidated"), 2, Globals::$user->rights->adherent->lire);
2064
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members&statut=1&filter = uptodate", Globals::$langs->trans("MenuMembersUpToDate"), 2, Globals::$user->rights->adherent->lire);
2065
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members&statut=1&filter = outofdate", Globals::$langs->trans("MenuMembersNotUpToDate"), 2, Globals::$user->rights->adherent->lire);
2066
                    $newmenu->add(BASE_URI . "?controller=adherents&method=list&leftmenu=members&statut=0", Globals::$langs->trans("MenuMembersResiliated"), 2, Globals::$user->rights->adherent->lire);
2067
                    $newmenu->add(BASE_URI . "?controller=adherents/stats&method=index&leftmenu=members", Globals::$langs->trans("MenuMembersStats"), 1, Globals::$user->rights->adherent->lire);
2068
                    $newmenu->add(BASE_URI . "?controller=adherents/cartes&method=carte&leftmenu=export", Globals::$langs->trans("MembersCards"), 1, Globals::$user->rights->adherent->export);
2069
                    if (!empty(Conf::$global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export")) {
2070
                        $newmenu->add(BASE_URI . "?controller=adherents&method=htpasswd&leftmenu=export", Globals::$langs->trans("Filehtpasswd"), 1, Globals::$user->rights->adherent->export);
2071
                    }
2072
                    if (!empty($conf->categorie->enabled)) {
2073
                        Globals::$langs->load("categories");
2074
                        $newmenu->add(BASE_URI . "?controller=categories&method=index&leftmenu=cat&type=3", Globals::$langs->trans("Categories"), 1, Globals::$user->rights->categorie->lire, '', $mainmenu, 'cat');
2075
                    }
2076
                    $newmenu->add(BASE_URI . "?controller=adherents&method=index&leftmenu=members&mainmenu=members", Globals::$langs->trans("Subscriptions"), 0, Globals::$user->rights->adherent->cotisation->lire);
2077
                    $newmenu->add(BASE_URI . "?controller=adherents&methodlist&leftmenu=members&statut=-1,1&mainmenu=members", Globals::$langs->trans("NewSubscription"), 1, Globals::$user->rights->adherent->cotisation->creer);
2078
                    $newmenu->add(BASE_URI . "?controller=adherents/subscription&method=list&leftmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->cotisation->lire);
2079
                    $newmenu->add(BASE_URI . "?controller=adherents/stats&method=index&leftmenu=members", Globals::$langs->trans("MenuMembersStats"), 1, Globals::$user->rights->adherent->lire);
2080
                    $newmenu->add(BASE_URI . "?controller=adherents&method=type&leftmenu=setup&mainmenu=members", Globals::$langs->trans("MembersTypes"), 0, Globals::$user->rights->adherent->configurer, '', $mainmenu, 'setup');
2081
                    $newmenu->add(BASE_URI . "?controller=adherents&method=type&leftmenu=setup&mainmenu=members&action=create", Globals::$langs->trans("New"), 1, Globals::$user->rights->adherent->configurer);
2082
                    $newmenu->add(BASE_URI . "?controller=adherents&method=type&leftmenu=setup&mainmenu=members", Globals::$langs->trans("List"), 1, Globals::$user->rights->adherent->configurer);
2083
                }
2084
            }
2085
2086
            // Add personalized menus and modules menus
2087
            //var_dump($newmenu->liste);    //
2088
            $menuArbo = new Menubase(Config::$dbEngine, 'eldy');
2089
            $newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, (empty(Globals::$user->societe_id) ? 0 : 1), 'eldy', $tabMenu);
2090
            //var_dump($newmenu->liste);    //
2091
            // We update newmenu for special dynamic menus
2092
            if (!empty(Globals::$user->rights->banque->lire) && $mainmenu == 'bank') { // Entry for each bank account
2093
                require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
2094
2095
                $sql = "SELECT rowid, label, courant, rappro";
2096
                $sql .= " FROM " . MAIN_DB_PREFIX . "bank_account";
2097
                $sql .= " WHERE entity = " . $conf->entity;
2098
                $sql .= " AND clos = 0";
2099
                $sql .= " ORDER BY label";
2100
2101
                $resql = Config::$dbEngine->query($sql);
2102
                if ($resql) {
2103
                    $numr = Config::$dbEngine->num_rows($resql);
2104
                    $i = 0;
2105
2106
                    if ($numr > 0) {
2107
                        //$newmenu->add('/compta/bank/list.php', Globals::$langs->trans("BankAccounts"), 0, Globals::$user->rights->banque->lire);
2108
                        $newmenu->add(BASE_URI . '?controller=compta/bank?method=list', Globals::$langs->trans("BankAccounts"), 0, Globals::$user->rights->banque->lire);
2109
                    }
2110
2111
                    while ($i < $numr) {
2112
                        $objp = Config::$dbEngine->fetch_object($resql);
2113
//$newmenu->add('/compta/bank/card.php?id=' . $objp->rowid, $objp->label, 1, Globals::$user->rights->banque->lire);
2114
                        $newmenu->add(BASE_URI . '?controller=compta/bank&method=card&id=' . $objp->rowid, $objp->label, 1, Globals::$user->rights->banque->lire);
2115
                        if ($objp->rappro && $objp->courant != Account::TYPE_CASH && empty($objp->clos)) {  // If not cash account and not closed and can be reconciliate
0 ignored issues
show
Bug introduced by
The type Alixar\Helpers\Account was not found. Did you mean Account? If so, make sure to prefix the type with \.
Loading history...
2116
                            //$newmenu->add('/compta/bank/bankentries_list.php?action=reconcile&contextpage=banktransactionlist-' . $objp->rowid . '&account=' . $objp->rowid . '&id=' . $objp->rowid . '&search_conciliated=0', Globals::$langs->trans("Conciliate"), 2, Globals::$user->rights->banque->consolidate);
2117
                            $newmenu->add(BASE_URI . '?controller=compta/bank&method=bankentries_list&action=reconcile&contextpage=banktransactionlist-' . $objp->rowid . '&account=' . $objp->rowid . '&id=' . $objp->rowid . '&search_conciliated=0', Globals::$langs->trans("Conciliate"), 2, Globals::$user->rights->banque->consolidate);
2118
                        }
2119
                        $i++;
2120
                    }
2121
                } else {
2122
                    dol_print_error(Config::$dbEngine);
2123
                }
2124
                Config::$dbEngine->free($resql);
2125
            }
2126
2127
            if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp') { // Entry for FTP
2128
                $MAXFTP = 20;
2129
                $i = 1;
2130
                while ($i <= $MAXFTP) {
2131
                    $paramkey = 'FTP_NAME_' . $i;
2132
                    //print $paramkey;
2133
                    if (!empty(Conf::$global->$paramkey)) {
2134
                        //$link = "/ftp/index.php?idmenu = " . $_SESSION["idmenu"] . "&numero_ftp = " . $i;
2135
                        $link = BASE_URI . "?controller=ftp&method=index&idmenu=" . $_SESSION["idmenu"] . "&numero_ftp=" . $i;
2136
2137
                        $newmenu->add($link, dol_trunc(Conf::$global->$paramkey, 24));
2138
                    }
2139
                    $i++;
2140
                }
2141
            }
2142
        }
2143
2144
        //var_dump($tabMenu);    //
2145
        //var_dump($newmenu->liste);
2146
        // Build final $menu_array = $menu_array_before +$newmenu->liste + $menu_array_after
2147
        //var_dump($menu_array_before);exit;
2148
        //var_dump($menu_array_after);exit;
2149
        $menu_array = $newmenu->liste;
2150
        if (is_array($menu_array_before)) {
2151
            $menu_array = array_merge($menu_array_before, $menu_array);
2152
        }
2153
        if (is_array($menu_array_after)) {
2154
            $menu_array = array_merge($menu_array, $menu_array_after);
2155
        }
2156
        //var_dump($menu_array);exit;
2157
        if (!is_array($menu_array)) {
2158
            return 0;
2159
        }
2160
2161
        // TODO Use the position property in menu_array to reorder the $menu_array
2162
        //var_dump($menu_array);
2163
        /* $new_menu_array = array();
2164
          $level=0; $cusor=0; $position=0;
2165
          $nbentry = count($menu_array);
2166
          while (findNextEntryForLevel($menu_array, $cursor, $position, $level))
2167
          {
2168
2169
          $cursor++;
2170
          } */
2171
2172
        // Show menu
2173
        $invert = empty(Conf::$global->MAIN_MENU_INVERT) ? "" : "invert";
2174
        if (empty($noout)) {
2175
            $altok = 0;
2176
            $blockvmenuopened = false;
2177
            $lastlevel0 = '';
2178
            $num = count($menu_array);
2179
            for ($i = 0; $i < $num; $i++) {     // Loop on each menu entry
2180
                $showmenu = true;
2181
                if (!empty(Conf::$global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) {
2182
                    $showmenu = false;
2183
                }
2184
2185
                // Begin of new left menu block
2186
                if (empty($menu_array[$i]['level']) && $showmenu) {
2187
                    $altok++;
2188
                    $blockvmenuopened = true;
2189
                    $lastopened = true;
2190
                    for ($j = ($i + 1); $j < $num; $j++) {
2191
                        if (empty($menu_array[$j]['level'])) {
2192
                            $lastopened = false;
2193
                        }
2194
                    }
2195
                    if ($altok % 2 == 0) {
2196
                        print '<div class="blockvmenu blockvmenuimpair' . $invert . ($lastopened ? ' blockvmenulast' : '') . ($altok == 1 ? ' blockvmenufirst' : '') . '">' . "\n";
2197
                    } else {
2198
                        print '<div class="blockvmenu blockvmenupair' . $invert . ($lastopened ? ' blockvmenulast' : '') . ($altok == 1 ? ' blockvmenufirst' : '') . '">' . "\n";
2199
                    }
2200
                }
2201
2202
                // Add tabulation
2203
                $tabstring = '';
2204
                $tabul = ($menu_array[$i]['level'] - 1);
2205
                if ($tabul > 0) {
2206
                    for ($j = 0; $j < $tabul; $j++) {
2207
                        $tabstring .= '&nbsp;&nbsp;&nbsp;';
2208
                    }
2209
                }
2210
2211
                // $menu_array[$i]['url'] can be a relative url, a full external url. We try substitution
2212
                $substitarray = array('__LOGIN__' => Globals::$user->login, '__USER_ID__' => Globals::$user->id, '__USER_SUPERVISOR_ID__' => Globals::$user->fk_user);
2213
                $substitarray['__USERID__'] = Globals::$user->id; // For backward compatibility
2214
                $menu_array[$i]['url'] = DolUtils::make_substitutions($menu_array[$i]['url'], $substitarray);
2215
2216
                $url = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url'];
2217
                if (!preg_match("/^(http:\/\/|https:\/\/)/i", $menu_array[$i]['url'])) {
2218
                    $tmp = explode('?', $menu_array[$i]['url'], 2);
2219
                    $url = $shorturl = $tmp[0];
2220
                    $param = (isset($tmp[1]) ? $tmp[1] : '');    // params in url of the menu link
2221
                    // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.
2222
                    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($menu_array[$i]['mainmenu'])) {
2223
                        $param .= ($param ? '&' : '') . 'mainmenu=' . $menu_array[$i]['mainmenu'] . '&leftmenu=';
2224
                    }
2225
                    if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($menu_array[$i]['mainmenu'])) {
2226
                        $param .= ($param ? '&' : '') . 'leftmenu=';
2227
                    }
2228
                    //$url.="idmenu = ".$menu_array[$i]['rowid'];    // Already done by menuLoad
2229
                    $url = DolUtils::dol_buildpath($url, 1) . ($param ? '?' . $param : '');
2230
                    $shorturlwithoutparam = $shorturl;
2231
                    $shorturl = $shorturl . ($param ? '?' . $param : '');
2232
                }
2233
2234
2235
                print '<!-- Process menu entry with mainmenu=' . $menu_array[$i]['mainmenu'] . ', leftmenu=' . $menu_array[$i]['leftmenu'] . ', level=' . $menu_array[$i]['level'] . ' enabled=' . $menu_array[$i]['enabled'] . ', position=' . $menu_array[$i]['position'] . ' -->' . "\n";
2236
2237
                // Menu level 0
2238
                if ($menu_array[$i]['level'] == 0) {
2239
                    if ($menu_array[$i]['enabled']) {     // Enabled so visible
2240
                        print '<div class="menu_titre">' . $tabstring;
2241
                        if ($shorturlwithoutparam) {
2242
                            print '<a class="vmenu" href="' . $url . '"' . ($menu_array[$i]['target'] ? ' target="' . $menu_array[$i]['target'] . '"' : '') . '>';
2243
                        } else {
2244
                            print '<span class="vmenu">';
2245
                        }
2246
                        print ($menu_array[$i]['prefix'] ? $menu_array[$i]['prefix'] : '') . $menu_array[$i]['titre'];
2247
                        if ($shorturlwithoutparam) {
2248
                            print '</a>';
2249
                        } else {
2250
                            print '</span>';
2251
                        }
2252
                        print '</div>' . "\n";
2253
                        $lastlevel0 = 'enabled';
2254
                    } else if ($showmenu) {                 // Not enabled but visible (so greyed)
2255
                        print '<div class="menu_titre">' . $tabstring . '<font class="vmenudisabled">' . $menu_array[$i]['titre'] . '</font></div>' . "\n";
2256
                        $lastlevel0 = 'greyed';
2257
                    } else {
2258
                        $lastlevel0 = 'hidden';
2259
                    }
2260
                    if ($showmenu) {
2261
                        print '<div class="menu_top"></div>' . "\n";
2262
                    }
2263
                }
2264
2265
                // Menu level > 0
2266
                if ($menu_array[$i]['level'] > 0) {
2267
                    $cssmenu = '';
2268
                    if ($menu_array[$i]['url']) {
2269
                        $cssmenu = ' menu_contenu' . dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url']));
2270
                    }
2271
2272
                    if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') {     // Enabled so visible, except if parent was not enabled.
2273
                        print '<div class="menu_contenu' . $cssmenu . '">' . $tabstring;
2274
                        if ($shorturlwithoutparam) {
2275
                            print '<a class="vsmenu" href="' . $url . '"' . ($menu_array[$i]['target'] ? ' target="' . $menu_array[$i]['target'] . '"' : '') . '>';
2276
                        } else {
2277
                            print '<span class="vsmenu">';
2278
                        }
2279
                        print $menu_array[$i]['titre'];
2280
                        if ($shorturlwithoutparam) {
2281
                            print '</a>';
2282
                        } else {
2283
                            print '</span>';
2284
                        }
2285
                        // If title is not pure text and contains a table, no carriage return added
2286
                        if (!strstr($menu_array[$i]['titre'], '<table')) {
2287
                            print '<br>';
2288
                        }
2289
                        print '</div>' . "\n";
2290
                    } else if ($showmenu && $lastlevel0 == 'enabled') {       // Not enabled but visible (so greyed), except if parent was not enabled.
2291
                        print '<div class="menu_contenu' . $cssmenu . '">' . $tabstring . '<font class="vsmenudisabled vsmenudisabledmargin">' . $menu_array[$i]['titre'] . '</font><br></div>' . "\n";
2292
                    }
2293
                }
2294
2295
                // If next is a new block or if there is nothing after
2296
                if (empty($menu_array[$i + 1]['level'])) {               // End menu block
2297
                    if ($showmenu) {
2298
                        print '<div class="menu_end"></div>' . "\n";
2299
                    }
2300
                    if ($blockvmenuopened) {
2301
                        print '</div>' . "\n";
2302
                        $blockvmenuopened = false;
2303
                    }
2304
                }
2305
            }
2306
2307
            if ($altok) {
2308
                print '<div class="blockvmenuend"></div>';    // End menu block
2309
            }
2310
        }
2311
2312
        return count($menu_array);
2313
    }
2314
}
2315