Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
dd60d20019
6
.mailmap
6
.mailmap
@ -89,3 +89,9 @@ Baffir Abbes <bafbes@users.noreply.github.com> bafbes <bafbes@users.noreply.gith
|
|||||||
Kevin Guerrier <guerrier.k@gmail.com> GUERRIER Kevin <guerrier.k@gmail.com>
|
Kevin Guerrier <guerrier.k@gmail.com> GUERRIER Kevin <guerrier.k@gmail.com>
|
||||||
Remy Younes <ryounes@gmail.com> remy <ryounes@gmail.com>
|
Remy Younes <ryounes@gmail.com> remy <ryounes@gmail.com>
|
||||||
Estephe Loridan <github@estephe.me> Estephe L. <github@estephe.me>
|
Estephe Loridan <github@estephe.me> Estephe L. <github@estephe.me>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> Anthony Berton <anthony.berton@bb2a.fr>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> Berton Anthony <anthony.berton@bb2a.fr>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> BB2A-Anthony <anthony.berton@bb2a.fr>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> Anthony Berton <bertonanthony@gmail.com>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> Berton Anthony <bertonanthony@gmail.com>
|
||||||
|
Anthony Berton <anthony.berton@bb2a.fr> BB2A-Anthony <bertonanthony@gmail.com>
|
||||||
12
.travis.yml
12
.travis.yml
@ -53,6 +53,10 @@ addons:
|
|||||||
- php8.1-mysqli
|
- php8.1-mysqli
|
||||||
- php8.1-xml
|
- php8.1-xml
|
||||||
- php8.1-intl
|
- php8.1-intl
|
||||||
|
- php8.2-pgsql
|
||||||
|
- php8.2-mysqli
|
||||||
|
- php8.2-xml
|
||||||
|
- php8.2-intl
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
@ -73,8 +77,8 @@ jobs:
|
|||||||
php: '8.1'
|
php: '8.1'
|
||||||
env: DB=mysql
|
env: DB=mysql
|
||||||
- stage: PHP Dev
|
- stage: PHP Dev
|
||||||
if: type = push AND branch = 17.0
|
if: type = push AND branch = developdisabled
|
||||||
php: nightly
|
php: '8.2'
|
||||||
env: DB=mysql
|
env: DB=mysql
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
@ -120,7 +124,7 @@ install:
|
|||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
# phpunit 9 is required for php 8
|
# phpunit 9 is required for php 8
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = '8.2' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
|
||||||
composer self-update 2.4.4
|
composer self-update 2.4.4
|
||||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
|
||||||
php-parallel-lint/php-parallel-lint ^1.2 \
|
php-parallel-lint/php-parallel-lint ^1.2 \
|
||||||
@ -260,7 +264,7 @@ before_script:
|
|||||||
# enable php-fpm
|
# enable php-fpm
|
||||||
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
|
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
|
||||||
- |
|
- |
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = '8.2' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
|
||||||
# Copy the included pool
|
# Copy the included pool
|
||||||
sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf
|
sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -29,7 +29,7 @@ GeoIP2 0.2.0 Apache License 2.0 Yes
|
|||||||
Mobiledetect 2.8.41 MIT License Yes Detect mobile devices browsers
|
Mobiledetect 2.8.41 MIT License Yes Detect mobile devices browsers
|
||||||
NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package)
|
NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package)
|
||||||
PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency
|
PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency
|
||||||
ParseDown 1.6 MIT License Yes Markdown parser
|
ParseDown 1.7.4 MIT License Yes Markdown parser
|
||||||
PCLZip 2.8.4 LGPL-3+ Yes Library to zip/unzip files
|
PCLZip 2.8.4 LGPL-3+ Yes Library to zip/unzip files
|
||||||
PHPDebugBar 1.18.2 MIT License Yes Used only by the module "debugbar" for developers
|
PHPDebugBar 1.18.2 MIT License Yes Used only by the module "debugbar" for developers
|
||||||
PHP-Imap 2.7.2 MIT License Yes Library to use IMAP with OAuth
|
PHP-Imap 2.7.2 MIT License Yes Library to use IMAP with OAuth
|
||||||
|
|||||||
@ -3061,7 +3061,7 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
$blockingerrormsg = '';
|
$blockingerrormsg = '';
|
||||||
|
|
||||||
if (empty($conf->adherent->enabled)) { // Should not happen. If module disabled, cron job should not be visible.
|
if (!isModEnabled('adherent')) { // Should not happen. If module disabled, cron job should not be visible.
|
||||||
$langs->load("agenda");
|
$langs->load("agenda");
|
||||||
$this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Adherent"));
|
$this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Adherent"));
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@ -720,7 +720,7 @@ if (!empty($moreforfilter)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields
|
$selectedfields = ($mode != 'kanban' ? $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')) : ''); // This also change content of $arrayfields
|
||||||
if ($massactionbutton) {
|
if ($massactionbutton) {
|
||||||
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -456,12 +456,12 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor('comment', (GETPOSTISSET('comment') ? GETPOST('comment', 'restricthtml') : $object->note_public), '', 200, 'dolibarr_notes', '', false, true, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, 15, '90%');
|
$doleditor = new DolEditor('comment', (GETPOSTISSET('comment') ? GETPOST('comment', 'restricthtml') : $object->note_public), '', 200, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), 15, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor('mail_valid', GETPOSTISSET('mail_valid') ? GETPOST('mail_valid') : $object->mail_valid, '', 250, 'dolibarr_notes', '', false, true, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, 15, '90%');
|
$doleditor = new DolEditor('mail_valid', GETPOSTISSET('mail_valid') ? GETPOST('mail_valid') : $object->mail_valid, '', 250, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), 15, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -943,12 +943,12 @@ if ($rowid > 0) {
|
|||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor('comment', $object->note_public, '', 220, 'dolibarr_notes', '', false, true, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, 15, '90%');
|
$doleditor = new DolEditor('comment', $object->note_public, '', 220, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), 15, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("WelcomeEMail").'</td><td>';
|
||||||
$doleditor = new DolEditor('mail_valid', $object->mail_valid, '', 280, 'dolibarr_notes', '', false, true, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, 15, '90%');
|
$doleditor = new DolEditor('mail_valid', $object->mail_valid, '', 280, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), 15, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
|
|||||||
@ -289,7 +289,7 @@ if ($action == 'create' && $user->hasRight('adherent', 'configurer')) {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td class="tdtop fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle" class="minwidth300" value="'.dol_escape_htmltag(GETPOST("libelle", 'alphanohtml')).'"></td></tr>';
|
print '<tr><td class="tdtop fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle" class="minwidth300" value="'.dol_escape_htmltag(GETPOST("libelle", 'alphanohtml')).'"></td></tr>';
|
||||||
print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
|
||||||
$doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, empty($conf->fckeditor->enabled) ? false : $conf->fckeditor->enabled, ROWS_3, '90%');
|
$doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, isModEnabled('fckeditor'), ROWS_3, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -161,7 +161,7 @@ if (!empty($triggers)) {
|
|||||||
$module = 'fournisseur';
|
$module = 'fournisseur';
|
||||||
}
|
}
|
||||||
if ($module == 'shipping') {
|
if ($module == 'shipping') {
|
||||||
$module = 'expedition_bon';
|
$module = 'expedition';
|
||||||
}
|
}
|
||||||
if ($module == 'member') {
|
if ($module == 'member') {
|
||||||
$module = 'adherent';
|
$module = 'adherent';
|
||||||
|
|||||||
@ -531,7 +531,7 @@ print '<td>';
|
|||||||
print '<input type="hidden" name="action" value="setribchq">';
|
print '<input type="hidden" name="action" value="setribchq">';
|
||||||
print $langs->trans("PaymentMode").'</td>';
|
print $langs->trans("PaymentMode").'</td>';
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
if (empty($conf->facture->enabled)) {
|
if (!isModEnabled('facture')) {
|
||||||
print '<input type="submit" class="button button-edit" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button button-edit" value="'.$langs->trans("Modify").'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -540,7 +540,7 @@ print "</tr>\n";
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td>".$langs->trans("SuggestPaymentByRIBOnAccount")."</td>";
|
print "<td>".$langs->trans("SuggestPaymentByRIBOnAccount")."</td>";
|
||||||
print "<td>";
|
print "<td>";
|
||||||
if (empty($conf->facture->enabled)) {
|
if (!isModEnabled('facture')) {
|
||||||
if (isModEnabled("banque")) {
|
if (isModEnabled("banque")) {
|
||||||
$sql = "SELECT rowid, label";
|
$sql = "SELECT rowid, label";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."bank_account";
|
$sql .= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||||
@ -579,7 +579,7 @@ print "</td></tr>";
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td>".$langs->trans("SuggestPaymentByChequeToAddress")."</td>";
|
print "<td>".$langs->trans("SuggestPaymentByChequeToAddress")."</td>";
|
||||||
print "<td>";
|
print "<td>";
|
||||||
if (empty($conf->facture->enabled)) {
|
if (!isModEnabled('facture')) {
|
||||||
print '<select class="flat" name="chq" id="chq">';
|
print '<select class="flat" name="chq" id="chq">';
|
||||||
print '<option value="0">'.$langs->trans("DoNotSuggestPaymentMode").'</option>';
|
print '<option value="0">'.$langs->trans("DoNotSuggestPaymentMode").'</option>';
|
||||||
print '<option value="-1"'.($conf->global->FACTURE_CHQ_NUMBER ? ' selected' : '').'>'.$langs->trans("MenuCompanySetup").' ('.($mysoc->name ? $mysoc->name : $langs->trans("NotDefined")).')</option>';
|
print '<option value="-1"'.($conf->global->FACTURE_CHQ_NUMBER ? ' selected' : '').'>'.$langs->trans("MenuCompanySetup").' ('.($mysoc->name ? $mysoc->name : $langs->trans("NotDefined")).')</option>';
|
||||||
@ -682,7 +682,7 @@ print '</form>';
|
|||||||
// Seems to be not so used. So kept hidden for the moment to avoid dangerous options inflation.
|
// Seems to be not so used. So kept hidden for the moment to avoid dangerous options inflation.
|
||||||
// TODO Must be implemented by PDF templates
|
// TODO Must be implemented by PDF templates
|
||||||
// Ask for payment bank during order
|
// Ask for payment bank during order
|
||||||
if ($conf->banque->enabled) {
|
if (isModEnabled("banque")) {
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_ORDER").'</td><td> </td><td class="center">';
|
print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_ORDER").'</td><td> </td><td class="center">';
|
||||||
|
|||||||
@ -383,7 +383,12 @@ if (!is_array($result) && $result < 0) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<td></td>';
|
// Multicompany
|
||||||
|
print '<td>';
|
||||||
|
if (isModEnabled('multicompany')) {
|
||||||
|
print dol_escape_htmltag($defaultvalue->entity);
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
|
|||||||
@ -495,15 +495,15 @@ $tabcond[8] = isModEnabled("societe");
|
|||||||
$tabcond[9] = true;
|
$tabcond[9] = true;
|
||||||
$tabcond[10] = true;
|
$tabcond[10] = true;
|
||||||
$tabcond[11] = (isModEnabled("societe"));
|
$tabcond[11] = (isModEnabled("societe"));
|
||||||
$tabcond[12] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice") || isModEnabled("supplier_order"));
|
$tabcond[12] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || isModEnabled("supplier_invoice") || isModEnabled("supplier_order"));
|
||||||
$tabcond[13] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice") || isModEnabled("supplier_order"));
|
$tabcond[13] = (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || isModEnabled("supplier_invoice") || isModEnabled("supplier_order"));
|
||||||
$tabcond[14] = (isModEnabled("product") && (isModEnabled('ecotax') || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY)));
|
$tabcond[14] = (isModEnabled("product") && (isModEnabled('ecotax') || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY)));
|
||||||
$tabcond[15] = true;
|
$tabcond[15] = true;
|
||||||
$tabcond[16] = (isModEnabled("societe") && empty($conf->global->SOCIETE_DISABLE_PROSPECTS));
|
$tabcond[16] = (isModEnabled("societe") && empty($conf->global->SOCIETE_DISABLE_PROSPECTS));
|
||||||
$tabcond[17] = (isModEnabled('deplacement') || isModEnabled('expensereport'));
|
$tabcond[17] = (isModEnabled('deplacement') || isModEnabled('expensereport'));
|
||||||
$tabcond[18] = isModEnabled("expedition") || isModEnabled("reception");
|
$tabcond[18] = isModEnabled("expedition") || isModEnabled("reception");
|
||||||
$tabcond[19] = isModEnabled("societe");
|
$tabcond[19] = isModEnabled("societe");
|
||||||
$tabcond[20] = (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order");
|
$tabcond[20] = isModEnabled("supplier_order");
|
||||||
$tabcond[21] = isModEnabled("propal");
|
$tabcond[21] = isModEnabled("propal");
|
||||||
$tabcond[22] = (isModEnabled('commande') || isModEnabled("propal"));
|
$tabcond[22] = (isModEnabled('commande') || isModEnabled("propal"));
|
||||||
$tabcond[23] = true;
|
$tabcond[23] = true;
|
||||||
|
|||||||
@ -64,7 +64,7 @@ $conditions = array(
|
|||||||
'NOTE_PRIVATE' => 1,
|
'NOTE_PRIVATE' => 1,
|
||||||
'SOCIETE' => 1,
|
'SOCIETE' => 1,
|
||||||
'PRODUCTDESC' => (isModEnabled("product") || isModEnabled("service")),
|
'PRODUCTDESC' => (isModEnabled("product") || isModEnabled("service")),
|
||||||
'DETAILS' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande') || isModEnabled('supplier_proposal') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")),
|
'DETAILS' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande') || isModEnabled('supplier_proposal') || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")),
|
||||||
'USERSIGN' => 1,
|
'USERSIGN' => 1,
|
||||||
'MAILING' => isModEnabled('mailing'),
|
'MAILING' => isModEnabled('mailing'),
|
||||||
'MAIL' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande')),
|
'MAIL' => (isModEnabled('facture') || isModEnabled("propal") || isModEnabled('commande')),
|
||||||
|
|||||||
@ -109,21 +109,21 @@ $tabname[25] = MAIN_DB_PREFIX."c_email_templates";
|
|||||||
|
|
||||||
// Nom des champs en resultat de select pour affichage du dictionnaire
|
// Nom des champs en resultat de select pour affichage du dictionnaire
|
||||||
$tabfield = array();
|
$tabfield = array();
|
||||||
$tabfield[25] = "label,lang,type_template,fk_user,private,position,module,topic,joinfiles,content";
|
$tabfield[25] = "label,lang,type_template,fk_user,private,position,module,topic,joinfiles,defaultfortype,content";
|
||||||
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
||||||
$tabfield[25] .= ',content_lines';
|
$tabfield[25] .= ',content_lines';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nom des champs d'edition pour modification d'un enregistrement
|
// Nom des champs d'edition pour modification d'un enregistrement
|
||||||
$tabfieldvalue = array();
|
$tabfieldvalue = array();
|
||||||
$tabfieldvalue[25] = "label,lang,type_template,fk_user,private,position,topic,joinfiles,content";
|
$tabfieldvalue[25] = "label,lang,type_template,fk_user,private,position,topic,joinfiles,defaultfortype,content";
|
||||||
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
||||||
$tabfieldvalue[25] .= ',content_lines';
|
$tabfieldvalue[25] .= ',content_lines';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nom des champs dans la table pour insertion d'un enregistrement
|
// Nom des champs dans la table pour insertion d'un enregistrement
|
||||||
$tabfieldinsert = array();
|
$tabfieldinsert = array();
|
||||||
$tabfieldinsert[25] = "label,lang,type_template,fk_user,private,position,topic,joinfiles,content";
|
$tabfieldinsert[25] = "label,lang,type_template,fk_user,private,position,topic,joinfiles,defaultfortype,content";
|
||||||
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
||||||
$tabfieldinsert[25] .= ',content_lines';
|
$tabfieldinsert[25] .= ',content_lines';
|
||||||
}
|
}
|
||||||
@ -164,13 +164,14 @@ if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
|||||||
$tabhelp = array();
|
$tabhelp = array();
|
||||||
$tabhelp[25] = array(
|
$tabhelp[25] = array(
|
||||||
'label'=>$langs->trans('EnterAnyCode'),
|
'label'=>$langs->trans('EnterAnyCode'),
|
||||||
'topic'=>'<span class="small">'.$helpsubstit.'</span>',
|
|
||||||
'joinfiles'=>$langs->trans('AttachMainDocByDefault'),
|
|
||||||
'content'=>'<span class="small">'.$helpsubstit.'</span>',
|
|
||||||
'content_lines'=>'<span class="small">'.$helpsubstitforlines.'</span>',
|
|
||||||
'type_template'=>$langs->trans("TemplateForElement"),
|
'type_template'=>$langs->trans("TemplateForElement"),
|
||||||
'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"),
|
'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"),
|
||||||
'position'=>$langs->trans("PositionIntoComboList")
|
'position'=>$langs->trans("PositionIntoComboList"),
|
||||||
|
'topic'=>'<span class="small">'.$helpsubstit.'</span>',
|
||||||
|
'joinfiles'=>$langs->trans('AttachMainDocByDefault'),
|
||||||
|
'defaultfortype'=>$langs->trans("DefaultForTypeDesc"),
|
||||||
|
'content'=>'<span class="small">'.$helpsubstit.'</span>',
|
||||||
|
'content_lines'=>'<span class="small">'.$helpsubstitforlines.'</span>'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -214,10 +215,10 @@ if (isModEnabled('ficheinter')) {
|
|||||||
if (isModEnabled('supplier_proposal')) {
|
if (isModEnabled('supplier_proposal')) {
|
||||||
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
|
$elementList['supplier_proposal_send'] = img_picto('', 'propal', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierRequestForQuotation'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->commande->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_order") && !empty($user->rights->supplier_order->lire))) {
|
if (isModEnabled("supplier_order") && ($user->hasRight('fournisseur', 'commande', 'lire') || $user->hasRight('supplier_order', 'read'))) {
|
||||||
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
|
$elementList['order_supplier_send'] = img_picto('', 'order', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierOrder'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && !empty($user->rights->fournisseur->facture->lire) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || (isModEnabled("supplier_invoice") && !empty($user->rights->supplier_invoice->lire))) {
|
if (isModEnabled("supplier_invoice") && ($user->hasRight('fournisseur', 'facture', 'lire') || $user->hasRight('supplier_invoice', 'read'))) {
|
||||||
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
|
$elementList['invoice_supplier_send'] = img_picto('', 'bill', 'class="pictofixedwidth"').dol_escape_htmltag($langs->trans('MailToSendSupplierInvoice'));
|
||||||
}
|
}
|
||||||
if (isModEnabled('contrat') && !empty($user->rights->contrat->lire)) {
|
if (isModEnabled('contrat') && !empty($user->rights->contrat->lire)) {
|
||||||
@ -307,7 +308,7 @@ if (empty($reshook)) {
|
|||||||
$ok = 1;
|
$ok = 1;
|
||||||
foreach ($listfield as $f => $value) {
|
foreach ($listfield as $f => $value) {
|
||||||
// Not mandatory fields
|
// Not mandatory fields
|
||||||
if (in_array($value, ['joinfiles', 'content', 'content_lines', 'module'])) {
|
if (in_array($value, ['joinfiles', 'defaultfortype', 'content', 'content_lines', 'module'])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,6 +384,9 @@ if (empty($reshook)) {
|
|||||||
if ($value == 'position' && !is_numeric($_POST[$keycode])) {
|
if ($value == 'position' && !is_numeric($_POST[$keycode])) {
|
||||||
$_POST[$keycode] = '1';
|
$_POST[$keycode] = '1';
|
||||||
}
|
}
|
||||||
|
if ($value == 'defaultfortype' && !is_numeric($_POST[$keycode])) {
|
||||||
|
$_POST[$keycode] = '0';
|
||||||
|
}
|
||||||
//var_dump($keycode.' '.$value);
|
//var_dump($keycode.' '.$value);
|
||||||
|
|
||||||
if ($i) {
|
if ($i) {
|
||||||
@ -400,7 +404,7 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
} elseif ($keycode == 'content') {
|
} elseif ($keycode == 'content') {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
||||||
} elseif (in_array($keycode, array('joinfiles', 'private', 'position', 'entity'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'defaultfortype', 'private', 'position', 'entity'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
@ -430,7 +434,7 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Modify entry
|
// Modify entry
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET ";
|
$sql = "UPDATE ".$tabname[$id]." SET ";
|
||||||
// Modifie valeur des champs
|
// Modify value of fields
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field) {
|
foreach ($listfieldmodify as $field) {
|
||||||
if ($field == 'entity') {
|
if ($field == 'entity') {
|
||||||
@ -449,20 +453,20 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Rename some POST variables into a generic name
|
// Rename some POST variables into a generic name
|
||||||
if ($field == 'fk_user' && !($_POST['fk_user'] > 0)) {
|
if ($field == 'fk_user' && !(GETPOST('fk_user', 'int') > 0)) {
|
||||||
$_POST['fk_user'] = '';
|
$_POST['fk_user'] = '';
|
||||||
}
|
}
|
||||||
if ($field == 'topic') {
|
if ($field == 'topic') {
|
||||||
$_POST['topic'] = $_POST['topic-'.$rowid];
|
$_POST['topic'] = GETPOST('topic-'.$rowid);
|
||||||
}
|
}
|
||||||
if ($field == 'joinfiles') {
|
if ($field == 'joinfiles') {
|
||||||
$_POST['joinfiles'] = $_POST['joinfiles-'.$rowid];
|
$_POST['joinfiles'] = GETPOST('joinfiles-'.$rowid);
|
||||||
}
|
}
|
||||||
if ($field == 'content') {
|
if ($field == 'content') {
|
||||||
$_POST['content'] = $_POST['content-'.$rowid];
|
$_POST['content'] = GETPOST('content-'.$rowid);
|
||||||
}
|
}
|
||||||
if ($field == 'content_lines') {
|
if ($field == 'content_lines') {
|
||||||
$_POST['content_lines'] = $_POST['content_lines-'.$rowid];
|
$_POST['content_lines'] = GETPOST('content_lines-'.$rowid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($i) {
|
if ($i) {
|
||||||
@ -470,7 +474,7 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
$sql .= $field."=";
|
$sql .= $field."=";
|
||||||
|
|
||||||
if (GETPOST($keycode) == '' || ($keycode != 'langcode' && $keycode != 'position' && $keycode != 'private' && !GETPOST($keycode))) {
|
if (GETPOST($keycode) == '' || (!in_array($keycode, array('langcode', 'position', 'private', 'defaultfortype')) && !GETPOST($keycode))) {
|
||||||
$sql .= "null"; // langcode,... must be '' if not defined so the unique key that include lang will work
|
$sql .= "null"; // langcode,... must be '' if not defined so the unique key that include lang will work
|
||||||
} elseif (GETPOST($keycode) == '0' && $keycode == 'langcode') {
|
} elseif (GETPOST($keycode) == '0' && $keycode == 'langcode') {
|
||||||
$sql .= "''"; // langcode must be '' if not defined so the unique key that include lang will work
|
$sql .= "''"; // langcode must be '' if not defined so the unique key that include lang will work
|
||||||
@ -482,12 +486,11 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
} elseif ($keycode == 'content') {
|
} elseif ($keycode == 'content') {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
||||||
} elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'defaultfortype', 'private', 'position'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,7 +575,7 @@ if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu
|
|||||||
$morejs = array();
|
$morejs = array();
|
||||||
$morecss = array();
|
$morecss = array();
|
||||||
|
|
||||||
$sql = "SELECT rowid as rowid, module, label, type_template, lang, fk_user, private, position, topic, joinfiles, content_lines, content, enabled, active";
|
$sql = "SELECT rowid as rowid, module, label, type_template, lang, fk_user, private, position, topic, joinfiles, defaultfortype, content_lines, content, enabled, active";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_email_templates";
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_email_templates";
|
||||||
$sql .= " WHERE entity IN (".getEntity('email_template').")";
|
$sql .= " WHERE entity IN (".getEntity('email_template').")";
|
||||||
if (!$user->admin) {
|
if (!$user->admin) {
|
||||||
@ -693,6 +696,7 @@ if ($action == 'create') {
|
|||||||
$obj->position = GETPOST('position');
|
$obj->position = GETPOST('position');
|
||||||
$obj->topic = GETPOST('topic');
|
$obj->topic = GETPOST('topic');
|
||||||
$obj->joinfiles = GETPOST('joinfiles');
|
$obj->joinfiles = GETPOST('joinfiles');
|
||||||
|
$obj->defaultfortype = GETPOST('defaultfortype') ? 1 : 0;
|
||||||
$obj->content = GETPOST('content', 'restricthtml');
|
$obj->content = GETPOST('content', 'restricthtml');
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
@ -711,9 +715,9 @@ if ($action == 'create') {
|
|||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
||||||
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
||||||
$align = "left";
|
$css = "left";
|
||||||
if ($fieldlist[$field] == 'module') {
|
if ($fieldlist[$field] == 'module') {
|
||||||
$valuetoshow = '';
|
$valuetoshow = ' ';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'fk_user') {
|
if ($fieldlist[$field] == 'fk_user') {
|
||||||
$valuetoshow = $langs->trans("Owner");
|
$valuetoshow = $langs->trans("Owner");
|
||||||
@ -724,20 +728,20 @@ if ($action == 'create') {
|
|||||||
if ($fieldlist[$field] == 'type') {
|
if ($fieldlist[$field] == 'type') {
|
||||||
$valuetoshow = $langs->trans("Type");
|
$valuetoshow = $langs->trans("Type");
|
||||||
}
|
}
|
||||||
|
if ($fieldlist[$field] == 'position') {
|
||||||
|
$css = 'center';
|
||||||
|
}
|
||||||
if ($fieldlist[$field] == 'code') {
|
if ($fieldlist[$field] == 'code') {
|
||||||
$valuetoshow = $langs->trans("Code");
|
$valuetoshow = $langs->trans("Code");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') {
|
if ($fieldlist[$field] == 'label') {
|
||||||
$valuetoshow = $langs->trans("Code");
|
$valuetoshow = $langs->trans("Code");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'type_template') {
|
if ($fieldlist[$field] == 'type_template') {
|
||||||
$valuetoshow = $langs->trans("TypeOfTemplate"); $align = "center";
|
$valuetoshow = $langs->trans("TypeOfTemplate"); $css = "center";
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'private') {
|
if (in_array($fieldlist[$field], array('private', 'private', 'defaultfortype'))) {
|
||||||
$align = 'center';
|
$css = 'center';
|
||||||
}
|
|
||||||
if ($fieldlist[$field] == 'position') {
|
|
||||||
$align = 'center';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($fieldlist[$field] == 'topic') {
|
if ($fieldlist[$field] == 'topic') {
|
||||||
@ -753,7 +757,7 @@ if ($action == 'create') {
|
|||||||
$valuetoshow = '';
|
$valuetoshow = '';
|
||||||
}
|
}
|
||||||
if ($valuetoshow != '') {
|
if ($valuetoshow != '') {
|
||||||
print '<th class="'.$align.'">';
|
print '<th class="'.$css.'">';
|
||||||
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
|
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
|
||||||
print '<a href="'.$tabhelp[$id][$value].'" target="_blank" rel="noopener noreferrer">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
print '<a href="'.$tabhelp[$id][$value].'" target="_blank" rel="noopener noreferrer">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
||||||
} elseif (!empty($tabhelp[$id][$value])) {
|
} elseif (!empty($tabhelp[$id][$value])) {
|
||||||
@ -793,18 +797,18 @@ if ($action == 'create') {
|
|||||||
fieldList($fieldlist, $obj, $tabname[$id], 'add');
|
fieldList($fieldlist, $obj, $tabname[$id], 'add');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Action column
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
// Show fields for topic, join files and body
|
// Show fields for topic, join files and body
|
||||||
$fieldsforcontent = array('topic', 'joinfiles', 'content');
|
$fieldsforcontent = array('topic', 'joinfiles', 'defaultfortype', 'content');
|
||||||
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
if (!empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
||||||
$fieldsforcontent = array('topic', 'joinfiles', 'content', 'content_lines');
|
$fieldsforcontent = array('topic', 'joinfiles', 'defaultfortype', 'content', 'content_lines');
|
||||||
}
|
}
|
||||||
foreach ($fieldsforcontent as $tmpfieldlist) {
|
foreach ($fieldsforcontent as $tmpfieldlist) {
|
||||||
print '<tr class="impair nodrag nodrop nohover"><td colspan="8" class="nobottom">';
|
print '<tr class="impair nodrag nodrop nohover"><td colspan="9" class="nobottom">';
|
||||||
|
|
||||||
// Topic of email
|
// Topic of email
|
||||||
if ($tmpfieldlist == 'topic') {
|
if ($tmpfieldlist == 'topic') {
|
||||||
@ -911,7 +915,6 @@ if ($num > $listlimit) {
|
|||||||
|
|
||||||
// Title line with search boxes
|
// Title line with search boxes
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value) {
|
foreach ($fieldlist as $field => $value) {
|
||||||
if ($value == 'module') {
|
if ($value == 'module') {
|
||||||
print '<td class="liste_titre"><input type="text" name="search_module" class="maxwidth75" value="'.dol_escape_htmltag($search_module).'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_module" class="maxwidth75" value="'.dol_escape_htmltag($search_module).'"></td>';
|
||||||
@ -935,13 +938,13 @@ foreach ($fieldlist as $field => $value) {
|
|||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
||||||
if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) {
|
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}*/
|
||||||
|
// Status
|
||||||
|
print '<td></td>';
|
||||||
// Action column
|
// Action column
|
||||||
print '<td class="liste_titre right" width="64">';
|
print '<td class="liste_titre center" width="64">';
|
||||||
$searchpicto = $form->showFilterButtons();
|
$searchpicto = $form->showFilterButtons();
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -951,7 +954,7 @@ print '</tr>';
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
foreach ($fieldlist as $field => $value) {
|
foreach ($fieldlist as $field => $value) {
|
||||||
$showfield = 1; // By defaut
|
$showfield = 1; // By defaut
|
||||||
$align = "left";
|
$css = "left";
|
||||||
$sortable = 1;
|
$sortable = 1;
|
||||||
$valuetoshow = '';
|
$valuetoshow = '';
|
||||||
$forcenowrap = 1;
|
$forcenowrap = 1;
|
||||||
@ -959,13 +962,13 @@ foreach ($fieldlist as $field => $value) {
|
|||||||
$tmparray=getLabelOfField($fieldlist[$field]);
|
$tmparray=getLabelOfField($fieldlist[$field]);
|
||||||
$showfield=$tmp['showfield'];
|
$showfield=$tmp['showfield'];
|
||||||
$valuetoshow=$tmp['valuetoshow'];
|
$valuetoshow=$tmp['valuetoshow'];
|
||||||
$align=$tmp['align'];
|
$css=$tmp['align'];
|
||||||
$sortable=$tmp['sortable'];
|
$sortable=$tmp['sortable'];
|
||||||
*/
|
*/
|
||||||
$valuetoshow = ucfirst($fieldlist[$field]); // By defaut
|
$valuetoshow = ucfirst($fieldlist[$field]); // By defaut
|
||||||
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
||||||
if ($fieldlist[$field] == 'module') {
|
if ($fieldlist[$field] == 'module') {
|
||||||
$align = 'tdoverflowmax100';
|
$css = 'tdoverflowmax100';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'fk_user') {
|
if ($fieldlist[$field] == 'fk_user') {
|
||||||
$valuetoshow = $langs->trans("Owner");
|
$valuetoshow = $langs->trans("Owner");
|
||||||
@ -980,18 +983,20 @@ foreach ($fieldlist as $field => $value) {
|
|||||||
$valuetoshow = $langs->trans("Code");
|
$valuetoshow = $langs->trans("Code");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'type_template') {
|
if ($fieldlist[$field] == 'type_template') {
|
||||||
$align = 'center';
|
$css = 'center';
|
||||||
$valuetoshow = $langs->trans("TypeOfTemplate");
|
$valuetoshow = $langs->trans("TypeOfTemplate");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'private') {
|
if ($fieldlist[$field] == 'private') {
|
||||||
$align = 'center';
|
$css = 'center';
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'position') {
|
if ($fieldlist[$field] == 'position') {
|
||||||
$align = 'center';
|
$css = 'center';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($fieldlist[$field] == 'joinfiles') {
|
if ($fieldlist[$field] == 'joinfiles') {
|
||||||
$valuetoshow = $langs->trans("FilesAttachedToEmail"); $align = 'center'; $forcenowrap = 0;
|
$valuetoshow = $langs->trans("FilesAttachedToEmail");
|
||||||
|
$css = 'center';
|
||||||
|
$forcenowrap = 0;
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'content') {
|
if ($fieldlist[$field] == 'content') {
|
||||||
$valuetoshow = $langs->trans("Content"); $showfield = 0;
|
$valuetoshow = $langs->trans("Content"); $showfield = 0;
|
||||||
@ -1011,9 +1016,9 @@ foreach ($fieldlist as $field => $value) {
|
|||||||
}
|
}
|
||||||
$sortfieldtouse = ($sortable ? $fieldlist[$field] : '');
|
$sortfieldtouse = ($sortable ? $fieldlist[$field] : '');
|
||||||
if ($sortfieldtouse == 'type_template') {
|
if ($sortfieldtouse == 'type_template') {
|
||||||
$sortfieldtouse.= ',label';
|
$sortfieldtouse.= 'type_template,lang,position,label';
|
||||||
}
|
}
|
||||||
print getTitleFieldOfList($valuetoshow, 0, $_SERVER["PHP_SELF"], $sortfieldtouse, ($page ? 'page='.$page.'&' : ''), $param, '', $sortfield, $sortorder, $align.' ');
|
print getTitleFieldOfList($valuetoshow, 0, $_SERVER["PHP_SELF"], $sortfieldtouse, ($page ? 'page='.$page.'&' : ''), $param, '', $sortfield, $sortorder, $css.' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1042,7 +1047,6 @@ if ($num) {
|
|||||||
fieldList($fieldlist, $obj, $tabname[$id], 'edit');
|
fieldList($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<td></td><td></td><td></td>';
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
||||||
@ -1057,7 +1061,7 @@ if ($num) {
|
|||||||
}
|
}
|
||||||
foreach ($fieldsforcontent as $tmpfieldlist) {
|
foreach ($fieldsforcontent as $tmpfieldlist) {
|
||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$align = "left";
|
$css = "left";
|
||||||
$valuetoshow = $obj->$tmpfieldlist;
|
$valuetoshow = $obj->$tmpfieldlist;
|
||||||
|
|
||||||
$class = 'tddict';
|
$class = 'tddict';
|
||||||
@ -1065,7 +1069,7 @@ if ($num) {
|
|||||||
if ($showfield) {
|
if ($showfield) {
|
||||||
// Show line for topic, joinfiles and content
|
// Show line for topic, joinfiles and content
|
||||||
print '</tr><tr class="oddeven" nohover tr-'.$tmpfieldlist.'-'.$rowid.' ">';
|
print '</tr><tr class="oddeven" nohover tr-'.$tmpfieldlist.'-'.$rowid.' ">';
|
||||||
print '<td colspan="9">';
|
print '<td colspan="10">';
|
||||||
if ($tmpfieldlist == 'topic') {
|
if ($tmpfieldlist == 'topic') {
|
||||||
print '<strong>'.$form->textwithpicto($langs->trans("Topic"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'</strong> ';
|
print '<strong>'.$form->textwithpicto($langs->trans("Topic"), $tabhelp[$id][$tmpfieldlist], 1, 'help', '', 0, 2, $tmpfieldlist).'</strong> ';
|
||||||
print '<input type="text" class="flat minwidth500" name="'.$tmpfieldlist.'-'.$rowid.'" value="'.(!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : '').'">';
|
print '<input type="text" class="flat minwidth500" name="'.$tmpfieldlist.'-'.$rowid.'" value="'.(!empty($obj->{$tmpfieldlist}) ? $obj->{$tmpfieldlist} : '').'">';
|
||||||
@ -1139,7 +1143,7 @@ if ($num) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$align = "";
|
$css = "";
|
||||||
$class = "tddict";
|
$class = "tddict";
|
||||||
$title = '';
|
$title = '';
|
||||||
$tmpvar = $fieldlist[$field];
|
$tmpvar = $fieldlist[$field];
|
||||||
@ -1158,7 +1162,7 @@ if ($num) {
|
|||||||
}
|
}
|
||||||
if ($value == 'type_template') {
|
if ($value == 'type_template') {
|
||||||
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
||||||
$align = "center";
|
$css = "center";
|
||||||
}
|
}
|
||||||
if ($value == 'lang' && $valuetoshow) {
|
if ($value == 'lang' && $valuetoshow) {
|
||||||
$valuetoshow = $valuetoshow.' - '.$langs->trans("Language_".$valuetoshow);
|
$valuetoshow = $valuetoshow.' - '.$langs->trans("Language_".$valuetoshow);
|
||||||
@ -1171,7 +1175,7 @@ if ($num) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($value == 'private') {
|
if ($value == 'private') {
|
||||||
$align = "center";
|
$css = "center";
|
||||||
if ($valuetoshow) {
|
if ($valuetoshow) {
|
||||||
$valuetoshow = yn($valuetoshow);
|
$valuetoshow = yn($valuetoshow);
|
||||||
} else {
|
} else {
|
||||||
@ -1179,18 +1183,18 @@ if ($num) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($value == 'position') {
|
if ($value == 'position') {
|
||||||
$align = "center";
|
$css = "center";
|
||||||
}
|
}
|
||||||
if ($value == 'joinfiles') {
|
if (in_array($value, array('joinfiles', 'defaultfortype'))) {
|
||||||
$align = "center";
|
$css = "center";
|
||||||
if ($valuetoshow) {
|
if ($valuetoshow) {
|
||||||
$valuetoshow = yn(1);
|
$valuetoshow = yn(1);
|
||||||
} else {
|
} else {
|
||||||
$valuetoshow = '';
|
$valuetoshow = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($align) {
|
if ($css) {
|
||||||
$class .= ' '.$align;
|
$class .= ' '.$css;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show value for field
|
// Show value for field
|
||||||
@ -1288,6 +1292,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value) {
|
foreach ($fieldlist as $field => $value) {
|
||||||
|
//print $value;
|
||||||
if ($value == 'module') {
|
if ($value == 'module') {
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
} elseif ($value == 'fk_user') {
|
} elseif ($value == 'fk_user') {
|
||||||
@ -1343,11 +1348,11 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($context == 'add' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'add' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
//print '<td></td>';
|
||||||
} elseif ($context == 'edit' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'edit' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
print '<td></td>';
|
||||||
} elseif ($context == 'hide' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
} elseif ($context == 'hide' && in_array($value, array('topic', 'joinfiles', 'content', 'content_lines'))) {
|
||||||
continue;
|
//print '<td></td>';
|
||||||
} else {
|
} else {
|
||||||
$size = ''; $class = ''; $classtd = '';
|
$size = ''; $class = ''; $classtd = '';
|
||||||
if ($value == 'code') {
|
if ($value == 'code') {
|
||||||
@ -1357,19 +1362,19 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
$class = 'maxwidth200';
|
$class = 'maxwidth200';
|
||||||
}
|
}
|
||||||
if ($value == 'private') {
|
if ($value == 'private') {
|
||||||
$class = 'maxwidth50'; $classtd = 'center';
|
$class = 'maxwidth50';
|
||||||
|
$classtd = 'center';
|
||||||
}
|
}
|
||||||
if ($value == 'position') {
|
if ($value == 'position') {
|
||||||
$class = 'maxwidth50 center'; $classtd = 'center';
|
$class = 'maxwidth50 center';
|
||||||
}
|
$classtd = 'center';
|
||||||
if ($value == 'libelle') {
|
|
||||||
$class = 'quatrevingtpercent';
|
|
||||||
}
|
}
|
||||||
if ($value == 'topic') {
|
if ($value == 'topic') {
|
||||||
$class = 'quatrevingtpercent';
|
$class = 'quatrevingtpercent';
|
||||||
}
|
}
|
||||||
if ($value == 'sortorder' || $value == 'sens' || $value == 'category_type') {
|
if ($value == 'defaultfortype') {
|
||||||
$size = 'size="2" ';
|
$class = 'width25 center';
|
||||||
|
$classtd = 'center';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<td'.($classtd ? ' class="'.$classtd.'"' : '').'>';
|
print '<td'.($classtd ? ' class="'.$classtd.'"' : '').'>';
|
||||||
@ -1377,10 +1382,10 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
if (empty($user->admin)) {
|
if (empty($user->admin)) {
|
||||||
print $form->selectyesno($value, '1', 1);
|
print $form->selectyesno($value, '1', 1);
|
||||||
} else {
|
} else {
|
||||||
print $form->selectyesno($value, (isset($obj->{$value}) ? $obj->{$value}:''), 1);
|
print $form->selectyesno($value, (isset($obj->$value) ? $obj->$value : ''), 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$value}) ? $obj->{$value}:'').'" name="'. $value .'">';
|
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->$value) ? $obj->$value : '').'" name="'. $value .'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -369,14 +369,32 @@ if ($mode == 'desc') {
|
|||||||
|
|
||||||
if ($mode == 'feature') {
|
if ($mode == 'feature') {
|
||||||
$text .= '<br><strong>'.$langs->trans("DependsOn").':</strong> ';
|
$text .= '<br><strong>'.$langs->trans("DependsOn").':</strong> ';
|
||||||
if (count($objMod->depends)) {
|
if (is_array($objMod->depends) && count($objMod->depends)) {
|
||||||
$text .= join(',', $objMod->depends);
|
$i = 0;
|
||||||
|
foreach ($objMod->depends as $modulestringorarray) {
|
||||||
|
if (is_array($modulestringorarray)) {
|
||||||
|
$text .= ($i ? ', ' : '').join(', ', $modulestringorarray);
|
||||||
|
} else {
|
||||||
|
$text .= ($i ? ', ' : '').$modulestringorarray;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$text .= '<span class="opacitymedium">'.$langs->trans("None").'</span>';
|
$text .= '<span class="opacitymedium">'.$langs->trans("None").'</span>';
|
||||||
}
|
}
|
||||||
|
$text .= '<br>';
|
||||||
|
|
||||||
$text .= '<br><strong>'.$langs->trans("RequiredBy").':</strong> ';
|
$text .= '<br><strong>'.$langs->trans("RequiredBy").':</strong> ';
|
||||||
if (count($objMod->requiredby)) {
|
if (is_array($objMod->requiredby) && count($objMod->requiredby)) {
|
||||||
$text .= join(',', $objMod->requiredby);
|
$i = 0;
|
||||||
|
foreach ($objMod->requiredby as $modulestringorarray) {
|
||||||
|
if (is_array($modulestringorarray)) {
|
||||||
|
$text .= ($i ? ', ' : '').join(', ', $modulestringorarray);
|
||||||
|
} else {
|
||||||
|
$text .= ($i ? ', ' : '').$modulestringorarray;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$text .= '<span class="opacitymedium">'.$langs->trans("None").'</span>';
|
$text .= '<span class="opacitymedium">'.$langs->trans("None").'</span>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -231,7 +231,7 @@ if ($action == 'install') {
|
|||||||
if (!$error) {
|
if (!$error) {
|
||||||
@dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the target directory
|
@dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the target directory
|
||||||
$submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulenameval;
|
$submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulenameval;
|
||||||
if (!dol_is_dir($modulenamedir)) {
|
if (!dol_is_dir($submodulenamedir)) {
|
||||||
$submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval;
|
$submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval;
|
||||||
}
|
}
|
||||||
dol_syslog("We copy now directory ".$submodulenamedir." into target dir ".$dirins.'/'.$modulenameval);
|
dol_syslog("We copy now directory ".$submodulenamedir." into target dir ".$dirins.'/'.$modulenameval);
|
||||||
@ -476,7 +476,7 @@ foreach ($modulesdir as $dir) {
|
|||||||
dol_syslog("Module ".get_class($objMod)." not qualified");
|
dol_syslog("Module ".get_class($objMod)." not qualified");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print "Warning bad descriptor file : ".$dir.$file." (Class ".$modName." not found into file)<br>";
|
print "admin/modules.php Warning bad descriptor file : ".$dir.$file." (Class ".$modName." not found into file)<br>";
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
dol_syslog("Failed to load ".$dir.$file." ".$e->getMessage(), LOG_ERR);
|
dol_syslog("Failed to load ".$dir.$file." ".$e->getMessage(), LOG_ERR);
|
||||||
|
|||||||
@ -181,16 +181,25 @@ $formproduct = new FormProduct($db);
|
|||||||
|
|
||||||
$disabled = '';
|
$disabled = '';
|
||||||
if (isModEnabled('productbatch')) {
|
if (isModEnabled('productbatch')) {
|
||||||
|
// If module lot/serial enabled, we force the inc/dec mode to STOCK_CALCULATE_ON_SHIPMENT_CLOSE and STOCK_CALCULATE_ON_RECEPTION_CLOSE
|
||||||
$langs->load("productbatch");
|
$langs->load("productbatch");
|
||||||
$disabled = ' disabled';
|
$disabled = ' disabled';
|
||||||
print info_admin($langs->trans("WhenProductBatchModuleOnOptionAreForced"));
|
|
||||||
|
// STOCK_CALCULATE_ON_SHIPMENT_CLOSE
|
||||||
|
$descmode = $langs->trans('DeStockOnShipmentOnClosing');
|
||||||
|
if (!isModEnabled('reception')) {
|
||||||
|
// STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER
|
||||||
|
$incmode = $langs->trans('ReStockOnDispatchOrder');
|
||||||
|
} else {
|
||||||
|
// STOCK_CALCULATE_ON_RECEPTION_CLOSE
|
||||||
|
$incmode = $langs->trans('StockOnReceptionOnClosing');
|
||||||
|
}
|
||||||
|
print info_admin($langs->trans("WhenProductBatchModuleOnOptionAreForced", $descmode, $incmode));
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT))
|
|
||||||
//{
|
|
||||||
print info_admin($langs->trans("IfYouUsePointOfSaleCheckModule"));
|
print info_admin($langs->trans("IfYouUsePointOfSaleCheckModule"));
|
||||||
print '<br>';
|
print '<br>';
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
@ -221,7 +230,7 @@ if (isModEnabled('facture')) {
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_BILL);
|
print $form->selectarray("STOCK_CALCULATE_ON_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_BILL);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module30Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module30Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -242,7 +251,7 @@ if (isModEnabled('commande')) {
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER);
|
print $form->selectarray("STOCK_CALCULATE_ON_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module25Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module25Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -261,7 +270,7 @@ if (isModEnabled("expedition")) {
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT);
|
print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module80Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module80Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -278,7 +287,7 @@ if (isModEnabled("expedition")) {
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT_CLOSE", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE);
|
print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT_CLOSE", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module80Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module80Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -301,7 +310,7 @@ $found = 0;
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnBill").'</td>';
|
print '<td>'.$langs->trans("ReStockOnBill").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
if ($disabled) {
|
if ($disabled) {
|
||||||
print img_picto($langs->trans("Disabled"), 'off', 'class="opacitymedium"');
|
print img_picto($langs->trans("Disabled"), 'off', 'class="opacitymedium"');
|
||||||
@ -313,7 +322,7 @@ if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMO
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL);
|
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -323,7 +332,7 @@ $found++;
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnValidateOrder").'</td>';
|
print '<td>'.$langs->trans("ReStockOnValidateOrder").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
if ($disabled) {
|
if ($disabled) {
|
||||||
print img_picto($langs->trans("Disabled"), 'off', 'class="opacitymedium"');
|
print img_picto($langs->trans("Disabled"), 'off', 'class="opacitymedium"');
|
||||||
@ -335,7 +344,7 @@ if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMO
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER);
|
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
@ -372,7 +381,7 @@ if (isModEnabled("reception")) {
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
|
print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) {
|
if (isModEnabled("supplier_order")) {
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER', array(), null, 0, 0, 0, 2, 1, '', '', 'reposition');
|
print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER', array(), null, 0, 0, 0, 2, 1, '', '', 'reposition');
|
||||||
} else {
|
} else {
|
||||||
@ -380,7 +389,7 @@ if (isModEnabled("reception")) {
|
|||||||
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER);
|
print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name"));
|
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")).'</span>';
|
||||||
}
|
}
|
||||||
print "</td>\n</tr>\n";
|
print "</td>\n</tr>\n";
|
||||||
$found++;
|
$found++;
|
||||||
|
|||||||
@ -424,7 +424,7 @@ print '<br>';
|
|||||||
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - ';
|
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - ';
|
||||||
print $form->textwithpicto($langs->trans("CacheByServer"), $langs->trans("CacheByServerDesc"));
|
print $form->textwithpicto($langs->trans("CacheByServer"), $langs->trans("CacheByServerDesc"));
|
||||||
print ':</strong><br>';
|
print ':</strong><br>';
|
||||||
// No cahce on PHP
|
// No cache on PHP
|
||||||
//print '<div id="httpcachephpok">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'php (.php)').'</div>';
|
//print '<div id="httpcachephpok">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'php (.php)').'</div>';
|
||||||
//print '<div id="httpcachephpko">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeNotCached",'php (.php)').'</div>';
|
//print '<div id="httpcachephpko">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeNotCached",'php (.php)').'</div>';
|
||||||
// Cache on rest
|
// Cache on rest
|
||||||
|
|||||||
@ -122,7 +122,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL'=>array(
|
'WORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL'=>array(
|
||||||
'family'=>'classify_supplier_proposal',
|
'family'=>'classify_supplier_proposal',
|
||||||
'position'=>60,
|
'position'=>60,
|
||||||
'enabled'=>(isModEnabled('supplier_proposal') && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))),
|
'enabled'=>(isModEnabled('supplier_proposal') && (isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))),
|
||||||
'picto'=>'supplier_proposal',
|
'picto'=>'supplier_proposal',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
),
|
),
|
||||||
@ -131,7 +131,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION'=>array(
|
'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION'=>array(
|
||||||
'family'=>'classify_supplier_order',
|
'family'=>'classify_supplier_order',
|
||||||
'position'=>63,
|
'position'=>63,
|
||||||
'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (isModEnabled("reception")) && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_order'))),
|
'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && isModEnabled("reception") && isModEnabled('supplier_order')),
|
||||||
'picto'=>'supplier_order',
|
'picto'=>'supplier_order',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
),
|
),
|
||||||
@ -139,7 +139,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED'=>array(
|
'WORKFLOW_ORDER_CLASSIFY_RECEIVED_RECEPTION_CLOSED'=>array(
|
||||||
'family'=>'classify_supplier_order',
|
'family'=>'classify_supplier_order',
|
||||||
'position'=>64,
|
'position'=>64,
|
||||||
'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && (isModEnabled("reception")) && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_order'))),
|
'enabled'=>(!empty($conf->global->MAIN_FEATURES_LEVEL) && isModEnabled("reception") && isModEnabled('supplier_order')),
|
||||||
'picto'=>'supplier_order',
|
'picto'=>'supplier_order',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
),
|
),
|
||||||
@ -147,7 +147,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER'=>array(
|
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER'=>array(
|
||||||
'family'=>'classify_supplier_order',
|
'family'=>'classify_supplier_order',
|
||||||
'position'=>65,
|
'position'=>65,
|
||||||
'enabled'=>((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")),
|
'enabled'=>(isModEnabled("supplier_order") || isModEnabled("supplier_invoice")),
|
||||||
'picto'=>'supplier_order',
|
'picto'=>'supplier_order',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
),
|
),
|
||||||
@ -164,7 +164,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE'=>array(
|
'WORKFLOW_EXPEDITION_CLASSIFY_CLOSED_INVOICE'=>array(
|
||||||
'family'=>'classify_reception',
|
'family'=>'classify_reception',
|
||||||
'position'=>95,
|
'position'=>95,
|
||||||
'enabled'=>(isModEnabled("reception") && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))),
|
'enabled'=>(isModEnabled("reception") && (isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))),
|
||||||
'picto'=>'reception'
|
'picto'=>'reception'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|||||||
@ -550,7 +550,10 @@ if (is_array($blocks)) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Link to source object
|
// Link to source object
|
||||||
print '<td'.(preg_match('/<a/', $object_link) ? ' class="nowrap"' : '').'><!-- object_link -->'.$object_link.'</td>';
|
print '<td class="tdoverflowmax150"'.(preg_match('/<a/', $object_link) ? '' : 'title="'.dol_escape_htmltag(dol_string_nohtmltag($object_link)).'"').'>';
|
||||||
|
print '<!-- object_link -->'; // $object_link can be a '<a href' link or a text
|
||||||
|
print $object_link;
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
// Amount
|
// Amount
|
||||||
print '<td class="right nowraponall">'.price($block->amounts).'</td>';
|
print '<td class="right nowraponall">'.price($block->amounts).'</td>';
|
||||||
|
|||||||
@ -1732,6 +1732,12 @@ class BOMLine extends CommonObjectLine
|
|||||||
*/
|
*/
|
||||||
public $childBom = array();
|
public $childBom = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Service Workstation
|
||||||
|
*/
|
||||||
|
public $fk_default_workstation;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
|||||||
@ -97,7 +97,7 @@ if (isModEnabled('supplier_proposal')) {
|
|||||||
if (isModEnabled('commande')) {
|
if (isModEnabled('commande')) {
|
||||||
$orderstatic = new Commande($db);
|
$orderstatic = new Commande($db);
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) {
|
if (isModEnabled("supplier_order")) {
|
||||||
$supplierorderstatic = new CommandeFournisseur($db);
|
$supplierorderstatic = new CommandeFournisseur($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,7 +517,7 @@ if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMO
|
|||||||
* Draft interventions
|
* Draft interventions
|
||||||
*/
|
*/
|
||||||
if (isModEnabled('ficheinter')) {
|
if (isModEnabled('ficheinter')) {
|
||||||
$sql = "SELECT f.rowid, f.ref, s.nom as name, f.fk_statut";
|
$sql = "SELECT f.rowid, f.ref, s.nom as name, f.fk_statut, f.duree as duration";
|
||||||
$sql .= ", s.rowid as socid, s.nom as name, s.name_alias";
|
$sql .= ", s.rowid as socid, s.nom as name, s.name_alias";
|
||||||
$sql .= ", s.code_client, s.code_compta, s.client";
|
$sql .= ", s.code_client, s.code_compta, s.client";
|
||||||
$sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
|
$sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
|
||||||
@ -572,12 +572,16 @@ if (isModEnabled('ficheinter')) {
|
|||||||
$companystatic->canvas = $obj->canvas;
|
$companystatic->canvas = $obj->canvas;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td class="nowraponall tdoverflowmax100">';
|
print '<td class="tdoverflowmax100">';
|
||||||
print $fichinterstatic->getNomUrl(1);
|
print $fichinterstatic->getNomUrl(1);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print '<td class="nowrap tdoverflowmax100">';
|
print '<td class="tdoverflowmax100">';
|
||||||
print $companystatic->getNomUrl(1, 'customer');
|
print $companystatic->getNomUrl(1, 'customer');
|
||||||
print '</td></tr>';
|
print '</td>';
|
||||||
|
print '<td class="nowraponall tdoverflowmax100 right">';
|
||||||
|
print convertSecondToTime($obj->duration);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -669,7 +673,7 @@ if (isModEnabled("societe") && $user->hasRight('societe', 'lire')) {
|
|||||||
$s .= '<a class="customer-back" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Customer"), 0, 1).'</a>';
|
$s .= '<a class="customer-back" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Customer"), 0, 1).'</a>';
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur)
|
if ((isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur)
|
||||||
{
|
{
|
||||||
$s .= '<a class="vendor-back" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Supplier"), 0, 1).'</a>';
|
$s .= '<a class="vendor-back" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Supplier"), 0, 1).'</a>';
|
||||||
}*/
|
}*/
|
||||||
@ -700,7 +704,7 @@ if (isModEnabled("societe") && $user->hasRight('societe', 'lire')) {
|
|||||||
/*
|
/*
|
||||||
* Last suppliers
|
* Last suppliers
|
||||||
*/
|
*/
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $user->hasRight('societe', 'lire')) {
|
if ((isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $user->hasRight('societe', 'lire')) {
|
||||||
$sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias";
|
$sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias";
|
||||||
$sql .= ", s.code_client, s.code_compta, s.client";
|
$sql .= ", s.code_client, s.code_compta, s.client";
|
||||||
$sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
|
$sql .= ", s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur";
|
||||||
@ -765,7 +769,7 @@ if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERM
|
|||||||
{
|
{
|
||||||
$s .= '<a class="customer-back" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Customer"), 0, 1).'</a>';
|
$s .= '<a class="customer-back" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Customer"), 0, 1).'</a>';
|
||||||
}*/
|
}*/
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur) {
|
if ((isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $obj->fournisseur) {
|
||||||
$s .= '<a class="vendor-back" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Supplier"), 0, 1).'</a>';
|
$s .= '<a class="vendor-back" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$companystatic->id.'">'.dol_substr($langs->trans("Supplier"), 0, 1).'</a>';
|
||||||
}
|
}
|
||||||
print $s;
|
print $s;
|
||||||
|
|||||||
@ -2904,7 +2904,7 @@ if ($action == 'create') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Create event
|
// Create event
|
||||||
/*if ($conf->agenda->enabled && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page.
|
/*if (isModEnabled('agenda') && !empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) // Add hidden condition because this is not a "workflow" action so should appears somewhere else on page.
|
||||||
{
|
{
|
||||||
print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create&origin=' . $object->element . '&originid=' . $object->id . '&socid=' . $object->socid . '">' . $langs->trans("AddAction") . '</a></div>';
|
print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create&origin=' . $object->element . '&originid=' . $object->id . '&socid=' . $object->socid . '">' . $langs->trans("AddAction") . '</a></div>';
|
||||||
}*/
|
}*/
|
||||||
@ -2935,7 +2935,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
// Create a purchase order
|
// Create a purchase order
|
||||||
if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL)) {
|
if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_PROPOSAL)) {
|
||||||
if ($object->statut == Propal::STATUS_SIGNED && ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order"))) {
|
if ($object->statut == Propal::STATUS_SIGNED && isModEnabled("supplier_order")) {
|
||||||
if ($usercancreatepurchaseorder) {
|
if ($usercancreatepurchaseorder) {
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid.'">'.$langs->trans("AddPurchaseOrder").'</a>';
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid.'">'.$langs->trans("AddPurchaseOrder").'</a>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -326,7 +326,7 @@ class Propal extends CommonObject
|
|||||||
'localtax1' =>array('type'=>'double(24,8)', 'label'=>'LocalTax1', 'enabled'=>1, 'visible'=>-1, 'position'=>135, 'isameasure'=>1),
|
'localtax1' =>array('type'=>'double(24,8)', 'label'=>'LocalTax1', 'enabled'=>1, 'visible'=>-1, 'position'=>135, 'isameasure'=>1),
|
||||||
'localtax2' =>array('type'=>'double(24,8)', 'label'=>'LocalTax2', 'enabled'=>1, 'visible'=>-1, 'position'=>140, 'isameasure'=>1),
|
'localtax2' =>array('type'=>'double(24,8)', 'label'=>'LocalTax2', 'enabled'=>1, 'visible'=>-1, 'position'=>140, 'isameasure'=>1),
|
||||||
'total_ttc' =>array('type'=>'double(24,8)', 'label'=>'TotalTTC', 'enabled'=>1, 'visible'=>-1, 'position'=>145, 'isameasure'=>1),
|
'total_ttc' =>array('type'=>'double(24,8)', 'label'=>'TotalTTC', 'enabled'=>1, 'visible'=>-1, 'position'=>145, 'isameasure'=>1),
|
||||||
'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>150),
|
'fk_account' =>array('type'=>'integer', 'label'=>'BankAccount', 'enabled'=>'isModEnabled("banque")', 'visible'=>-1, 'position'=>150),
|
||||||
'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'Currency', 'enabled'=>1, 'visible'=>-1, 'position'=>155),
|
'fk_currency' =>array('type'=>'varchar(3)', 'label'=>'Currency', 'enabled'=>1, 'visible'=>-1, 'position'=>155),
|
||||||
'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>-1, 'position'=>160),
|
'fk_cond_reglement' =>array('type'=>'integer', 'label'=>'PaymentTerm', 'enabled'=>1, 'visible'=>-1, 'position'=>160),
|
||||||
'deposit_percent' =>array('type'=>'varchar(63)', 'label'=>'DepositPercent', 'enabled'=>1, 'visible'=>-1, 'position'=>161),
|
'deposit_percent' =>array('type'=>'varchar(63)', 'label'=>'DepositPercent', 'enabled'=>1, 'visible'=>-1, 'position'=>161),
|
||||||
|
|||||||
@ -2853,7 +2853,7 @@ if ($action == 'create' && $usercancreate) {
|
|||||||
|
|
||||||
// Create a purchase order
|
// Create a purchase order
|
||||||
if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_ORDER)) {
|
if (!empty($conf->global->WORKFLOW_CAN_CREATE_PURCHASE_ORDER_FROM_SALE_ORDER)) {
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && $object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) {
|
if (isModEnabled("supplier_order") && $object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) {
|
||||||
if ($usercancreatepurchaseorder) {
|
if ($usercancreatepurchaseorder) {
|
||||||
print dolGetButtonAction('', $langs->trans('AddPurchaseOrder'), 'default', DOL_URL_ROOT.'/fourn/commande/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, '');
|
print dolGetButtonAction('', $langs->trans('AddPurchaseOrder'), 'default', DOL_URL_ROOT.'/fourn/commande/card.php?action=create&origin='.$object->element.'&originid='.$object->id.'&socid='.$object->socid, '');
|
||||||
}
|
}
|
||||||
@ -2888,7 +2888,7 @@ if ($action == 'create' && $usercancreate) {
|
|||||||
$numshipping = $object->countNbOfShipments();
|
$numshipping = $object->countNbOfShipments();
|
||||||
|
|
||||||
if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) {
|
if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && ($object->getNbOfProductsLines() > 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES))) {
|
||||||
if ((isModEnabled('expedition_bon') && $user->rights->expedition->creer) || ($conf->delivery_note->enabled && $user->rights->expedition->delivery->creer)) {
|
if ((getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && $user->hasRight('expedition', 'creer')) || (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && $user->hasRight('expedition', 'delivery', 'creer'))) {
|
||||||
if ($user->hasRight('expedition', 'creer')) {
|
if ($user->hasRight('expedition', 'creer')) {
|
||||||
print dolGetButtonAction('', $langs->trans('CreateShipment'), 'default', DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id, '');
|
print dolGetButtonAction('', $langs->trans('CreateShipment'), 'default', DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id, '');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -511,7 +511,7 @@ if (empty($reshook)) {
|
|||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
$lineid = $result;
|
$lineid = $result;
|
||||||
if (!empty($createbills_onebythird)) //increment rang to keep order
|
if (!empty($createbills_onebythird)) //increment rang to keep order
|
||||||
$TFactThirdNbLines[$rcp->socid]++;
|
$TFactThirdNbLines[$cmd->socid]++;
|
||||||
} else {
|
} else {
|
||||||
$lineid = 0;
|
$lineid = 0;
|
||||||
$error++;
|
$error++;
|
||||||
@ -890,7 +890,7 @@ if ($search_billed != '' && $search_billed >= 0) {
|
|||||||
}
|
}
|
||||||
if ($search_status <> '') {
|
if ($search_status <> '') {
|
||||||
if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination)
|
if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination)
|
||||||
if ($search_status == 1 && empty($conf->expedition->enabled)) {
|
if ($search_status == 1 && !isModEnabled('expedition')) {
|
||||||
$sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated'
|
$sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated'
|
||||||
} else {
|
} else {
|
||||||
$sql .= ' AND c.fk_statut = '.((int) $search_status); // draft, validated, in process or canceled
|
$sql .= ' AND c.fk_statut = '.((int) $search_status); // draft, validated, in process or canceled
|
||||||
@ -1116,7 +1116,7 @@ if ($resql) {
|
|||||||
$title .= ' - '.$langs->trans('StatusOrderToProcessShort');
|
$title .= ' - '.$langs->trans('StatusOrderToProcessShort');
|
||||||
}
|
}
|
||||||
if ($search_status == -3) {
|
if ($search_status == -3) {
|
||||||
$title .= ' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled) ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
|
$title .= ' - '.$langs->trans('StatusOrderValidated').', '.(!isModEnabled('expedition') ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
|
||||||
}
|
}
|
||||||
if ($search_status == -4) {
|
if ($search_status == -4) {
|
||||||
$title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort");
|
$title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort");
|
||||||
@ -2045,7 +2045,9 @@ if ($resql) {
|
|||||||
|
|
||||||
// Ref customer
|
// Ref customer
|
||||||
if (!empty($arrayfields['c.ref_client']['checked'])) {
|
if (!empty($arrayfields['c.ref_client']['checked'])) {
|
||||||
print '<td class="nowrap tdoverflowmax200">'.$obj->ref_client.'</td>';
|
print '<td class="nowrap tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_client).'">';
|
||||||
|
print dol_escape_htmltag($obj->ref_client);
|
||||||
|
print '</td>';
|
||||||
if (!$i) {
|
if (!$i) {
|
||||||
$totalarray['nbfield']++;
|
$totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
@ -2350,7 +2352,7 @@ if ($resql) {
|
|||||||
|
|
||||||
// Author
|
// Author
|
||||||
if (!empty($arrayfields['u.login']['checked'])) {
|
if (!empty($arrayfields['u.login']['checked'])) {
|
||||||
print '<td class="tdoverflowmax200">';
|
print '<td class="tdoverflowmax150">';
|
||||||
if ($userstatic->id) {
|
if ($userstatic->id) {
|
||||||
print $userstatic->getNomUrl(-1);
|
print $userstatic->getNomUrl(-1);
|
||||||
} else {
|
} else {
|
||||||
@ -2567,7 +2569,7 @@ if ($resql) {
|
|||||||
}
|
}
|
||||||
$stock_order = $generic_product->stats_commande['qty'];
|
$stock_order = $generic_product->stats_commande['qty'];
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) {
|
if (isModEnabled("supplier_order")) {
|
||||||
if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) {
|
if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) {
|
||||||
$generic_product->load_stats_commande_fournisseur(0, '3');
|
$generic_product->load_stats_commande_fournisseur(0, '3');
|
||||||
$productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty'];
|
$productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty'];
|
||||||
@ -2588,7 +2590,7 @@ if ($resql) {
|
|||||||
} else {
|
} else {
|
||||||
$text_info .= '<span class="ok">'.$langs->trans('Available').' : '.$text_stock_reel.'</span>';
|
$text_info .= '<span class="ok">'.$langs->trans('Available').' : '.$text_stock_reel.'</span>';
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) {
|
if (isModEnabled("supplier_order")) {
|
||||||
$text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier;
|
$text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier;
|
||||||
}
|
}
|
||||||
$text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' <span class="opacitymedium">('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')</span>' : '');
|
$text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' <span class="opacitymedium">('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')</span>' : '');
|
||||||
|
|||||||
@ -40,7 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
if (!empty($conf->margin->enabled)) {
|
if (isModEnabled('margin')) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php';
|
||||||
}
|
}
|
||||||
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||||
@ -188,7 +188,7 @@ $arrayfields = array(
|
|||||||
'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>55),
|
'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers, 'position'=>55),
|
||||||
'c.date_commande'=>array('label'=>"OrderDateShort", 'checked'=>1, 'position'=>60),
|
'c.date_commande'=>array('label'=>"OrderDateShort", 'checked'=>1, 'position'=>60),
|
||||||
'c.date_delivery'=>array('label'=>"DateDeliveryPlanned", 'checked'=>1, 'enabled'=>empty($conf->global->ORDER_DISABLE_DELIVERY_DATE), 'position'=>65),
|
'c.date_delivery'=>array('label'=>"DateDeliveryPlanned", 'checked'=>1, 'enabled'=>empty($conf->global->ORDER_DISABLE_DELIVERY_DATE), 'position'=>65),
|
||||||
'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>!empty($conf->expedition->enabled)),
|
'c.fk_shipping_method'=>array('label'=>"SendingMethod", 'checked'=>-1, 'position'=>66 , 'enabled'=>isModEnabled('expedition')),
|
||||||
'c.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>-1, 'position'=>67),
|
'c.fk_cond_reglement'=>array('label'=>"PaymentConditionsShort", 'checked'=>-1, 'position'=>67),
|
||||||
'c.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>-1, 'position'=>68),
|
'c.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>-1, 'position'=>68),
|
||||||
'c.fk_input_reason'=>array('label'=>"Channel", 'checked'=>-1, 'position'=>69),
|
'c.fk_input_reason'=>array('label'=>"Channel", 'checked'=>-1, 'position'=>69),
|
||||||
@ -203,16 +203,16 @@ $arrayfields = array(
|
|||||||
'c.fk_warehouse'=>array('label'=>'Warehouse', 'checked'=>0, 'enabled'=>(empty($conf->stock->enabled) && empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER) ? 0 : 1), 'position'=>110),
|
'c.fk_warehouse'=>array('label'=>'Warehouse', 'checked'=>0, 'enabled'=>(empty($conf->stock->enabled) && empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER) ? 0 : 1), 'position'=>110),
|
||||||
'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115),
|
'u.login'=>array('label'=>"Author", 'checked'=>1, 'position'=>115),
|
||||||
'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116),
|
'sale_representative'=>array('label'=>"SaleRepresentativesOfThirdParty", 'checked'=>0, 'position'=>116),
|
||||||
'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)),
|
'total_pa' => array('label' => (getDolGlobalString('MARGIN_TYPE') == '1' ? 'BuyingPrice' : 'CostPrice'), 'checked' => 0, 'position' => 300, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)),
|
||||||
'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous ? 0 : 1)),
|
'total_margin' => array('label' => 'Margin', 'checked' => 0, 'position' => 301, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous ? 0 : 1)),
|
||||||
'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)),
|
'total_margin_rate' => array('label' => 'MarginRate', 'checked' => 0, 'position' => 302, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARGIN_RATES) ? 0 : 1)),
|
||||||
'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (empty($conf->margin->enabled) || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)),
|
'total_mark_rate' => array('label' => 'MarkRate', 'checked' => 0, 'position' => 303, 'enabled' => (!isModEnabled('margin') || !$user->rights->margins->liretous || empty($conf->global->DISPLAY_MARK_RATES) ? 0 : 1)),
|
||||||
'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120),
|
'c.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>120),
|
||||||
'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125),
|
'c.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>125),
|
||||||
'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130),
|
'c.date_cloture'=>array('label'=>"DateClosing", 'checked'=>0, 'position'=>130),
|
||||||
'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>135),
|
'c.note_public'=>array('label'=>'NotePublic', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PUBLIC_NOTES)), 'position'=>135),
|
||||||
'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>140),
|
'c.note_private'=>array('label'=>'NotePrivate', 'checked'=>0, 'enabled'=>(empty($conf->global->MAIN_LIST_ALLOW_PRIVATE_NOTES)), 'position'=>140),
|
||||||
'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(!empty($conf->expedition->enabled)), 'position'=>990),
|
'shippable'=>array('label'=>"Shippable", 'checked'=>1,'enabled'=>(isModEnabled('expedition')), 'position'=>990),
|
||||||
'c.facture'=>array('label'=>"Billed", 'checked'=>1, 'enabled'=>(empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)), 'position'=>995),
|
'c.facture'=>array('label'=>"Billed", 'checked'=>1, 'enabled'=>(empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)), 'position'=>995),
|
||||||
'c.import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>999),
|
'c.import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>999),
|
||||||
'c.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000)
|
'c.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000)
|
||||||
@ -338,7 +338,7 @@ $form = new Form($db);
|
|||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
$formfile = new FormFile($db);
|
$formfile = new FormFile($db);
|
||||||
$formmargin = null;
|
$formmargin = null;
|
||||||
if (!empty($conf->margin->enabled)) {
|
if (isModEnabled('margin')) {
|
||||||
$formmargin = new FormMargin($db);
|
$formmargin = new FormMargin($db);
|
||||||
}
|
}
|
||||||
$companystatic = new Societe($db);
|
$companystatic = new Societe($db);
|
||||||
@ -466,7 +466,7 @@ if ($search_billed != '' && $search_billed >= 0) {
|
|||||||
}
|
}
|
||||||
if ($search_status <> '') {
|
if ($search_status <> '') {
|
||||||
if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination)
|
if ($search_status <= 3 && $search_status >= -1) { // status from -1 to 3 are real status (other are virtual combination)
|
||||||
if ($search_status == 1 && empty($conf->expedition->enabled)) {
|
if ($search_status == 1 && !isModEnabled('expedition')) {
|
||||||
$sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated'
|
$sql .= ' AND c.fk_statut IN (1,2)'; // If module expedition disabled, we include order with status 'sending in process' into 'validated'
|
||||||
} else {
|
} else {
|
||||||
$sql .= ' AND c.fk_statut = '.((int) $search_status); // brouillon, validee, en cours, annulee
|
$sql .= ' AND c.fk_statut = '.((int) $search_status); // brouillon, validee, en cours, annulee
|
||||||
@ -646,7 +646,7 @@ if ($resql) {
|
|||||||
$title .= ' - '.$langs->trans('StatusOrderToProcessShort');
|
$title .= ' - '.$langs->trans('StatusOrderToProcessShort');
|
||||||
}
|
}
|
||||||
if ($search_status == -3) {
|
if ($search_status == -3) {
|
||||||
$title .= ' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled) ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
|
$title .= ' - '.$langs->trans('StatusOrderValidated').', '.(!isModEnabled('expedition') ? '' : $langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
|
||||||
}
|
}
|
||||||
if ($search_status == -4) {
|
if ($search_status == -4) {
|
||||||
$title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort");
|
$title .= ' - '.$langs->trans("StatusOrderValidatedShort").'+'.$langs->trans("StatusOrderSentShort");
|
||||||
@ -875,7 +875,7 @@ if ($resql) {
|
|||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
}
|
}
|
||||||
// If the user can view prospects other than his'
|
// If the user can view prospects other than his'
|
||||||
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
|
if (isModEnabled("categorie") && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$tmptitle = $langs->trans('IncludingProductWithTag');
|
$tmptitle = $langs->trans('IncludingProductWithTag');
|
||||||
@ -883,7 +883,7 @@ if ($resql) {
|
|||||||
$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1);
|
$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, 'maxwidth300 widthcentpercentminusx', 1);
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
}
|
}
|
||||||
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
if (isModEnabled("categorie") && $user->rights->categorie->lire) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$tmptitle = $langs->trans('CustomersProspectsCategoriesShort');
|
$tmptitle = $langs->trans('CustomersProspectsCategoriesShort');
|
||||||
@ -1402,7 +1402,7 @@ if ($resql) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$with_margin_info = false;
|
$with_margin_info = false;
|
||||||
if (!empty($conf->margin->enabled) && (
|
if (isModEnabled('margin') && (
|
||||||
!empty($arrayfields['total_pa']['checked'])
|
!empty($arrayfields['total_pa']['checked'])
|
||||||
|| !empty($arrayfields['total_margin']['checked'])
|
|| !empty($arrayfields['total_margin']['checked'])
|
||||||
|| !empty($arrayfields['total_margin_rate']['checked'])
|
|| !empty($arrayfields['total_margin_rate']['checked'])
|
||||||
@ -2045,7 +2045,7 @@ if ($resql) {
|
|||||||
}
|
}
|
||||||
$stock_order = $generic_product->stats_commande['qty'];
|
$stock_order = $generic_product->stats_commande['qty'];
|
||||||
}
|
}
|
||||||
if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) {
|
if (isModEnabled('supplier_order')) {
|
||||||
if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) {
|
if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'])) {
|
||||||
$generic_product->load_stats_commande_fournisseur(0, '3');
|
$generic_product->load_stats_commande_fournisseur(0, '3');
|
||||||
$productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty'];
|
$productstat_cache[$generic_commande->lines[$lig]->fk_product]['stats_order_supplier'] = $generic_product->stats_commande_fournisseur['qty'];
|
||||||
@ -2066,7 +2066,7 @@ if ($resql) {
|
|||||||
} else {
|
} else {
|
||||||
$text_info .= '<span class="ok">'.$langs->trans('Available').' : '.$text_stock_reel.'</span>';
|
$text_info .= '<span class="ok">'.$langs->trans('Available').' : '.$text_stock_reel.'</span>';
|
||||||
}
|
}
|
||||||
if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled)) {
|
if (isModEnabled('supplier_order')) {
|
||||||
$text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier;
|
$text_info .= ' '.$langs->trans('SupplierOrder').' : '.$stock_order_supplier;
|
||||||
}
|
}
|
||||||
$text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' <span class="opacitymedium">('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')</span>' : '');
|
$text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ? ' <span class="opacitymedium">('.$langs->trans("QtyInOtherShipments").' '.($generic_commande->lines[$lig]->qty - $reliquat).')</span>' : '');
|
||||||
|
|||||||
@ -76,7 +76,7 @@ if ($action == 'add') {
|
|||||||
$errori[$i] = 0;
|
$errori[$i] = 0;
|
||||||
|
|
||||||
$tabnum[$i] = 0;
|
$tabnum[$i] = 0;
|
||||||
if (!empty($label[$i]) || !empty($type[$i]) || !($amount[$i] <= 0) || !($accountfrom[$i] < 0) || !($accountto[$i] < 0)) {
|
if (!empty($label[$i]) || !($amount[$i] <= 0) || !($accountfrom[$i] < 0) || !($accountto[$i] < 0)) {
|
||||||
$tabnum[$i] = 1;
|
$tabnum[$i] = 1;
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
@ -114,17 +114,17 @@ if ($action == 'add') {
|
|||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
|
||||||
$accountfrom = new Account($db);
|
$tmpaccountfrom = new Account($db);
|
||||||
$accountfrom->fetch(GETPOST($n.'_account_from', 'int'));
|
$tmpaccountfrom->fetch(GETPOST($n.'_account_from', 'int'));
|
||||||
|
|
||||||
$accountto = new Account($db);
|
$tmpaccountto = new Account($db);
|
||||||
$accountto->fetch(GETPOST($n.'_account_to', 'int'));
|
$tmpaccountto->fetch(GETPOST($n.'_account_to', 'int'));
|
||||||
|
|
||||||
if ($accountto->currency_code == $accountfrom->currency_code) {
|
if ($tmpaccountto->currency_code == $tmpaccountfrom->currency_code) {
|
||||||
$amountto[$n] = $amount[$n];
|
$amountto[$n] = $amount[$n];
|
||||||
} else {
|
} else {
|
||||||
if (!$amountto[$n]) {
|
if (!$amountto[$n]) {
|
||||||
$error[$n]++;
|
$errori[$n]++;
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AmountTo")).' #'.$n, null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AmountTo")).' #'.$n, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -133,7 +133,7 @@ if ($action == 'add') {
|
|||||||
setEventMessages($langs->trans("AmountMustBePositive").' #'.$n, null, 'errors');
|
setEventMessages($langs->trans("AmountMustBePositive").' #'.$n, null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($accountto->id == $accountfrom->id) {
|
if ($tmpaccountto->id == $tmpaccountfrom->id) {
|
||||||
$errori[$n]++;
|
$errori[$n]++;
|
||||||
setEventMessages($langs->trans("ErrorFromToAccountsMustDiffers").' #'.$n, null, 'errors');
|
setEventMessages($langs->trans("ErrorFromToAccountsMustDiffers").' #'.$n, null, 'errors');
|
||||||
}
|
}
|
||||||
@ -149,45 +149,45 @@ if ($action == 'add') {
|
|||||||
// By default, electronic transfert from bank to bank
|
// By default, electronic transfert from bank to bank
|
||||||
$typefrom = $type[$n];
|
$typefrom = $type[$n];
|
||||||
$typeto = $type[$n];
|
$typeto = $type[$n];
|
||||||
if ($accountto->courant == Account::TYPE_CASH || $accountfrom->courant == Account::TYPE_CASH) {
|
if ($tmpaccountto->courant == Account::TYPE_CASH || $tmpaccountfrom->courant == Account::TYPE_CASH) {
|
||||||
// This is transfer of change
|
// This is transfer of change
|
||||||
$typefrom = 'LIQ';
|
$typefrom = 'LIQ';
|
||||||
$typeto = 'LIQ';
|
$typeto = 'LIQ';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
$bank_line_id_from = $accountfrom->addline($dateo[$n], $typefrom, $label[$n], price2num(-1 * $amount[$n]), '', '', $user);
|
$bank_line_id_from = $tmpaccountfrom->addline($dateo[$n], $typefrom, $label[$n], price2num(-1 * $amount[$n]), '', '', $user);
|
||||||
}
|
}
|
||||||
if (!($bank_line_id_from > 0)) {
|
if (!($bank_line_id_from > 0)) {
|
||||||
$errori[$n]++;
|
$errori[$n]++;
|
||||||
}
|
}
|
||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
$bank_line_id_to = $accountto->addline($dateo[$n], $typeto, $label[$n], $amountto[$n], '', '', $user);
|
$bank_line_id_to = $tmpaccountto->addline($dateo[$n], $typeto, $label[$n], $amountto[$n], '', '', $user);
|
||||||
}
|
}
|
||||||
if (!($bank_line_id_to > 0)) {
|
if (!($bank_line_id_to > 0)) {
|
||||||
$errori[$n]++;
|
$errori[$n]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
$result = $accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert');
|
$result = $tmpaccountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert');
|
||||||
}
|
}
|
||||||
if (!($result > 0)) {
|
if (!($result > 0)) {
|
||||||
$errori++;
|
$errori[$n]++;
|
||||||
}
|
}
|
||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
$result = $accountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert');
|
$result = $tmpaccountto->add_url_line($bank_line_id_to, $bank_line_id_from, DOL_URL_ROOT.'/compta/bank/line.php?rowid=', '(banktransfert)', 'banktransfert');
|
||||||
}
|
}
|
||||||
if (!($result > 0)) {
|
if (!($result > 0)) {
|
||||||
$errori[$n]++;
|
$errori[$n]++;
|
||||||
}
|
}
|
||||||
if (!$errori[$n]) {
|
if (!$errori[$n]) {
|
||||||
$mesgs = $langs->trans("TransferFromToDone", '{s1}', '{s2}', $amount[$n], $langs->transnoentitiesnoconv("Currency".$conf->currency));
|
$mesgs = $langs->trans("TransferFromToDone", '{s1}', '{s2}', $amount[$n], $langs->transnoentitiesnoconv("Currency".$conf->currency));
|
||||||
$mesgs = str_replace('{s1}', '<a href="bankentries_list.php?id='.$accountfrom->id.'&sortfield=b.datev,b.dateo,b.rowid&sortorder=desc">'.$accountfrom->label.'</a>', $mesgs);
|
$mesgs = str_replace('{s1}', '<a href="bankentries_list.php?id='.$tmpaccountfrom->id.'&sortfield=b.datev,b.dateo,b.rowid&sortorder=desc">'.$tmpaccountfrom->label.'</a>', $mesgs);
|
||||||
$mesgs = str_replace('{s2}', '<a href="bankentries_list.php?id='.$accountto->id.'">'.$accountto->label.'</a>', $mesgs);
|
$mesgs = str_replace('{s2}', '<a href="bankentries_list.php?id='.$tmpaccountto->id.'">'.$tmpaccountto->label.'</a>', $mesgs);
|
||||||
setEventMessages($mesgs, null, 'mesgs');
|
setEventMessages($mesgs, null, 'mesgs');
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($accountfrom->error.' '.$accountto->error, null, 'errors');
|
setEventMessages($tmpaccountfrom->error.' '.$tmpaccountto->error, null, 'errors');
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -211,68 +211,38 @@ llxHeader('', $title, $help_url);
|
|||||||
print ' <script type="text/javascript">
|
print ' <script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$(".selectbankaccount").change(function() {
|
$(".selectbankaccount").change(function() {
|
||||||
console.log("We change bank account");
|
console.log("We change bank account. We check if currency differs. If yes, we show multicurrency field");
|
||||||
init_page();
|
i = $(this).attr("name").replace("_account_to", "").replace("_account_from", "");
|
||||||
|
console.log(i);
|
||||||
|
init_page(i);
|
||||||
});
|
});
|
||||||
|
|
||||||
function init_page() {
|
function init_page(i) {
|
||||||
console.log("Set fields according to currency");
|
// TODO Scan all line i and set atleast2differentcurrency if there is 2 different values among all lines
|
||||||
var account1 = $("#selectaccount_from").val();
|
var account1 = $("#select"+i+"_account_from").val();
|
||||||
var account2 = $("#selectaccount_to").val();
|
var account2 = $("#select"+i+"_account_to").val();
|
||||||
var currencycode1="";
|
var currencycode1 = $("#select"+i+"_account_from option:selected").attr("data-currency-code");
|
||||||
var currencycode2="";
|
var currencycode2 = $("#select"+i+"_account_to option:selected").attr("data-currency-code");
|
||||||
|
console.log("Set fields according to currencycode found currencycode1="+currencycode1+" currencycode2="+currencycode2);
|
||||||
|
|
||||||
|
var atleast2differentcurrency = (currencycode2!==currencycode1 && currencycode1 !== undefined && currencycode2 !== undefined && currencycode2!=="" && currencycode1!=="");
|
||||||
|
|
||||||
|
if (atleast2differentcurrency) {
|
||||||
|
console.log("We show multucurrency field");
|
||||||
|
$(".multicurrency").show();
|
||||||
|
} else {
|
||||||
|
console.log("We hide multucurrency field");
|
||||||
|
$(".multicurrency").hide();
|
||||||
|
}
|
||||||
|
|
||||||
$("select").each(function() {
|
$("select").each(function() {
|
||||||
if( $(this).attr("view")){
|
if( $(this).attr("view")){
|
||||||
$(this).closest("tr").removeClass("hidejs").removeClass("hideobject");
|
$(this).closest("tr").removeClass("hidejs").removeClass("hideobject");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$.get("'.DOL_URL_ROOT.'/core/ajax/getaccountcurrency.php", {id: account1})
|
|
||||||
.done(function( data ) {
|
|
||||||
if (data != null)
|
|
||||||
{
|
|
||||||
var item= $.parseJSON(data);
|
|
||||||
if (item.num==-1) {
|
|
||||||
console.error("Error: "+item.error);
|
|
||||||
} else if (item.num!==0) {
|
|
||||||
currencycode1 = item.value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$.get("'.DOL_URL_ROOT.'/core/ajax/getaccountcurrency.php", {id: account2})
|
init_page(1);
|
||||||
.done(function( data ) {
|
|
||||||
if (data != null)
|
|
||||||
{
|
|
||||||
var item=$.parseJSON(data);
|
|
||||||
if (item.num==-1) {
|
|
||||||
console.error("Error: "+item.error);
|
|
||||||
} else if (item.num!==0) {
|
|
||||||
currencycode2 = item.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currencycode2!==currencycode1 && currencycode2!=="" && currencycode1!=="") {
|
|
||||||
$(".multicurrency").show();
|
|
||||||
} else {
|
|
||||||
$(".multicurrency").hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.error("Error: Ajax url has returned an empty page. Should be an empty json array.");
|
|
||||||
}
|
|
||||||
}).fail(function( data ) {
|
|
||||||
console.error("Error: has returned an empty page. Should be an empty json array.");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.error("Error: has returned an empty page. Should be an empty json array.");
|
|
||||||
}
|
|
||||||
}).fail(function( data ) {
|
|
||||||
console.error("Error: has returned an empty page. Should be an empty json array.");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
init_page();
|
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
@ -298,16 +268,18 @@ print '<th>'.$langs->trans("Type").'</th>';
|
|||||||
print '<th>'.$langs->trans("Date").'</th>';
|
print '<th>'.$langs->trans("Date").'</th>';
|
||||||
print '<th>'.$langs->trans("Description").'</th>';
|
print '<th>'.$langs->trans("Description").'</th>';
|
||||||
print '<th class="right">'.$langs->trans("Amount").'</th>';
|
print '<th class="right">'.$langs->trans("Amount").'</th>';
|
||||||
//print '<td class="hideobject" class="multicurrency">'.$langs->trans("AmountToOthercurrency").'</td>';
|
print '<td class="hideobject multicurrency right">'.$langs->trans("AmountToOthercurrency").'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
for ($i = 1 ; $i < $MAXLINES; $i++) {
|
for ($i = 1 ; $i < $MAXLINES; $i++) {
|
||||||
$label = '';
|
$label = '';
|
||||||
$amount = '';
|
$amount = '';
|
||||||
|
$amounto = '';
|
||||||
|
|
||||||
if ($errori[$i]) {
|
if ($errori[$i]) {
|
||||||
$label = GETPOST($i.'_label', 'alpha');
|
$label = GETPOST($i.'_label', 'alpha');
|
||||||
$amount = GETPOST($i.'_amount', 'alpha');
|
$amount = GETPOST($i.'_amount', 'alpha');
|
||||||
|
$amountto = GETPOST($i.'_amountto', 'alpha');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($i == 1) {
|
if ($i == 1) {
|
||||||
@ -339,11 +311,14 @@ for ($i = 1 ; $i < $MAXLINES; $i++) {
|
|||||||
print $form->selectDate((!empty($dateo[$i]) ? $dateo[$i] : ''), $i.'_', '', '', '', 'add');
|
print $form->selectDate((!empty($dateo[$i]) ? $dateo[$i] : ''), $i.'_', '', '', '', 'add');
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
|
|
||||||
|
// Description
|
||||||
print '<td><input name="'.$i.'_label" class="flat quatrevingtpercent selectjs" type="text" value="'.dol_escape_htmltag($label).'"></td>';
|
print '<td><input name="'.$i.'_label" class="flat quatrevingtpercent selectjs" type="text" value="'.dol_escape_htmltag($label).'"></td>';
|
||||||
|
|
||||||
|
// Amount
|
||||||
print '<td class="right"><input name="'.$i.'_amount" class="flat right selectjs" type="text" size="6" value="'.dol_escape_htmltag($amount).'"></td>';
|
print '<td class="right"><input name="'.$i.'_amount" class="flat right selectjs" type="text" size="6" value="'.dol_escape_htmltag($amount).'"></td>';
|
||||||
|
|
||||||
print '<td class="hideobject" class="multicurrency"><input name="'.$i.'_amountto" class="flat" type="text" size="6" value="'.dol_escape_htmltag($amountto).'"></td>';
|
// AmountToOthercurrency
|
||||||
|
print '<td class="hideobject multicurrency right"><input name="'.$i.'_amountto" class="flat" type="text" size="6" value="'.dol_escape_htmltag($amountto).'"></td>';
|
||||||
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@ -352,7 +327,7 @@ print '</table>';
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<div id="btncont" style="display: flex; align-items: center">';
|
print '<div id="btncont" style="display: flex; align-items: center">';
|
||||||
print '<a id="btnincrement" style="margin-left:35%" class="btnTitle btnTitlePlus" onclick="increment()" title="Ajouter écriture">
|
print '<a id="btnincrement" style="margin-left:35%" class="btnTitle btnTitlePlus" onclick="increment()" title="'.dol_escape_htmltag($langs->trans("Add")).'">
|
||||||
<span class="fa fa-plus-circle valignmiddle btnTitle-icon">
|
<span class="fa fa-plus-circle valignmiddle btnTitle-icon">
|
||||||
</span>
|
</span>
|
||||||
</a>';
|
</a>';
|
||||||
|
|||||||
@ -198,7 +198,7 @@ class FactureRec extends CommonInvoice
|
|||||||
'revenuestamp' =>array('type'=>'double(24,8)', 'label'=>'RevenueStamp', 'enabled'=>1, 'visible'=>-1, 'position'=>160, 'isameasure'=>1),
|
'revenuestamp' =>array('type'=>'double(24,8)', 'label'=>'RevenueStamp', 'enabled'=>1, 'visible'=>-1, 'position'=>160, 'isameasure'=>1),
|
||||||
'auto_validate' =>array('type'=>'integer', 'label'=>'Auto validate', 'enabled'=>1, 'visible'=>-1, 'position'=>165),
|
'auto_validate' =>array('type'=>'integer', 'label'=>'Auto validate', 'enabled'=>1, 'visible'=>-1, 'position'=>165),
|
||||||
'generate_pdf' =>array('type'=>'integer', 'label'=>'Generate pdf', 'enabled'=>1, 'visible'=>-1, 'position'=>170),
|
'generate_pdf' =>array('type'=>'integer', 'label'=>'Generate pdf', 'enabled'=>1, 'visible'=>-1, 'position'=>170),
|
||||||
'fk_account' =>array('type'=>'integer', 'label'=>'Fk account', 'enabled'=>'$conf->banque->enabled', 'visible'=>-1, 'position'=>175),
|
'fk_account' =>array('type'=>'integer', 'label'=>'Fk account', 'enabled'=>'isModEnabled("banque")', 'visible'=>-1, 'position'=>175),
|
||||||
'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>1, 'visible'=>-1, 'position'=>180),
|
'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>1, 'visible'=>-1, 'position'=>180),
|
||||||
'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Multicurrency code', 'enabled'=>1, 'visible'=>-1, 'position'=>185),
|
'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Multicurrency code', 'enabled'=>1, 'visible'=>-1, 'position'=>185),
|
||||||
'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'Multicurrency tx', 'enabled'=>1, 'visible'=>-1, 'position'=>190, 'isameasure'=>1),
|
'multicurrency_tx' =>array('type'=>'double(24,8)', 'label'=>'Multicurrency tx', 'enabled'=>1, 'visible'=>-1, 'position'=>190, 'isameasure'=>1),
|
||||||
|
|||||||
@ -1482,6 +1482,141 @@ class Facture extends CommonInvoice
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load an object from an order and create a new invoice into database
|
||||||
|
*
|
||||||
|
* @param Object $object Object source
|
||||||
|
* @param User $user Object user
|
||||||
|
* @param Array(int) $lines Ids of lines to use for invoice. If empty, all lines will be used.
|
||||||
|
* @return int <0 if KO, 0 if nothing done, 1 if OK
|
||||||
|
*/
|
||||||
|
public function createFromContract($object, User $user, $lines = array())
|
||||||
|
{
|
||||||
|
global $conf, $hookmanager;
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
// Closed order
|
||||||
|
$this->date = dol_now();
|
||||||
|
$this->source = 0;
|
||||||
|
|
||||||
|
$use_all_lines = empty($lines);
|
||||||
|
$num = count($object->lines);
|
||||||
|
for ($i = 0; $i < $num; $i++) {
|
||||||
|
|
||||||
|
if (!$use_all_lines && !in_array($object->lines[$i]->id, $lines)) continue;
|
||||||
|
|
||||||
|
$line = new FactureLigne($this->db);
|
||||||
|
|
||||||
|
$line->libelle = $object->lines[$i]->libelle; // deprecated
|
||||||
|
$line->label = $object->lines[$i]->label;
|
||||||
|
$line->desc = $object->lines[$i]->desc;
|
||||||
|
$line->subprice = $object->lines[$i]->subprice;
|
||||||
|
$line->total_ht = $object->lines[$i]->total_ht;
|
||||||
|
$line->total_tva = $object->lines[$i]->total_tva;
|
||||||
|
$line->total_localtax1 = $object->lines[$i]->total_localtax1;
|
||||||
|
$line->total_localtax2 = $object->lines[$i]->total_localtax2;
|
||||||
|
$line->total_ttc = $object->lines[$i]->total_ttc;
|
||||||
|
$line->vat_src_code = $object->lines[$i]->vat_src_code;
|
||||||
|
$line->tva_tx = $object->lines[$i]->tva_tx;
|
||||||
|
$line->localtax1_tx = $object->lines[$i]->localtax1_tx;
|
||||||
|
$line->localtax2_tx = $object->lines[$i]->localtax2_tx;
|
||||||
|
$line->qty = $object->lines[$i]->qty;
|
||||||
|
$line->fk_remise_except = $object->lines[$i]->fk_remise_except;
|
||||||
|
$line->remise_percent = $object->lines[$i]->remise_percent;
|
||||||
|
$line->fk_product = $object->lines[$i]->fk_product;
|
||||||
|
$line->info_bits = $object->lines[$i]->info_bits;
|
||||||
|
$line->product_type = $object->lines[$i]->product_type;
|
||||||
|
$line->rang = $object->lines[$i]->rang;
|
||||||
|
$line->special_code = $object->lines[$i]->special_code;
|
||||||
|
$line->fk_parent_line = $object->lines[$i]->fk_parent_line;
|
||||||
|
$line->fk_unit = $object->lines[$i]->fk_unit;
|
||||||
|
$line->date_start = $object->lines[$i]->date_start;
|
||||||
|
$line->date_end = $object->lines[$i]->date_end;
|
||||||
|
|
||||||
|
// Multicurrency
|
||||||
|
$line->fk_multicurrency = $object->lines[$i]->fk_multicurrency;
|
||||||
|
$line->multicurrency_code = $object->lines[$i]->multicurrency_code;
|
||||||
|
$line->multicurrency_subprice = $object->lines[$i]->multicurrency_subprice;
|
||||||
|
$line->multicurrency_total_ht = $object->lines[$i]->multicurrency_total_ht;
|
||||||
|
$line->multicurrency_total_tva = $object->lines[$i]->multicurrency_total_tva;
|
||||||
|
$line->multicurrency_total_ttc = $object->lines[$i]->multicurrency_total_ttc;
|
||||||
|
|
||||||
|
$line->fk_fournprice = $object->lines[$i]->fk_fournprice;
|
||||||
|
$marginInfos = getMarginInfos($object->lines[$i]->subprice, $object->lines[$i]->remise_percent, $object->lines[$i]->tva_tx, $object->lines[$i]->localtax1_tx, $object->lines[$i]->localtax2_tx, $object->lines[$i]->fk_fournprice, $object->lines[$i]->pa_ht);
|
||||||
|
$line->pa_ht = $marginInfos[0];
|
||||||
|
|
||||||
|
// get extrafields from original line
|
||||||
|
$object->lines[$i]->fetch_optionals();
|
||||||
|
foreach ($object->lines[$i]->array_options as $options_key => $value) {
|
||||||
|
$line->array_options[$options_key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->lines[$i] = $line;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->socid = $object->socid;
|
||||||
|
$this->fk_project = $object->fk_project;
|
||||||
|
$this->fk_account = $object->fk_account;
|
||||||
|
$this->cond_reglement_id = $object->cond_reglement_id;
|
||||||
|
$this->mode_reglement_id = $object->mode_reglement_id;
|
||||||
|
$this->availability_id = $object->availability_id;
|
||||||
|
$this->demand_reason_id = $object->demand_reason_id;
|
||||||
|
$this->delivery_date = (empty($object->delivery_date) ? $object->date_livraison : $object->delivery_date);
|
||||||
|
$this->date_livraison = $object->delivery_date; // deprecated
|
||||||
|
$this->fk_delivery_address = $object->fk_delivery_address; // deprecated
|
||||||
|
$this->contact_id = $object->contact_id;
|
||||||
|
$this->ref_client = $object->ref_client;
|
||||||
|
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_PROPAGATE_NOTES_FROM_ORIGIN)) {
|
||||||
|
$this->note_private = $object->note_private;
|
||||||
|
$this->note_public = $object->note_public;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->module_source = $object->module_source;
|
||||||
|
$this->pos_source = $object->pos_source;
|
||||||
|
|
||||||
|
$this->origin = $object->element;
|
||||||
|
$this->origin_id = $object->id;
|
||||||
|
|
||||||
|
$this->fk_user_author = $user->id;
|
||||||
|
|
||||||
|
// get extrafields from original line
|
||||||
|
$object->fetch_optionals();
|
||||||
|
foreach ($object->array_options as $options_key => $value) {
|
||||||
|
$this->array_options[$options_key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Possibility to add external linked objects with hooks
|
||||||
|
$this->linked_objects[$this->origin] = $this->origin_id;
|
||||||
|
if (!empty($object->other_linked_objects) && is_array($object->other_linked_objects)) {
|
||||||
|
$this->linked_objects = array_merge($this->linked_objects, $object->other_linked_objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret = $this->create($user);
|
||||||
|
|
||||||
|
if ($ret > 0) {
|
||||||
|
// Actions hooked (by external module)
|
||||||
|
$hookmanager->initHooks(array('invoicedao'));
|
||||||
|
|
||||||
|
$parameters = array('objFrom'=>$object);
|
||||||
|
$action = '';
|
||||||
|
$reshook = $hookmanager->executeHooks('createFrom', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
if ($reshook < 0) {
|
||||||
|
$this->setErrorsFromObject($hookmanager);
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a deposit from a proposal or an order by grouping lines by VAT rates
|
* Creates a deposit from a proposal or an order by grouping lines by VAT rates
|
||||||
*
|
*
|
||||||
|
|||||||
@ -1178,7 +1178,7 @@ if ($resql) {
|
|||||||
if (!empty($user->rights->facture->paiement)) {
|
if (!empty($user->rights->facture->paiement)) {
|
||||||
$arrayofmassactions['makepayment'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakePaymentAndClassifyPayed");
|
$arrayofmassactions['makepayment'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakePaymentAndClassifyPayed");
|
||||||
}
|
}
|
||||||
if (!empty($conf->prelevement->enabled) && !empty($user->rights->prelevement->bons->creer)) {
|
if (isModEnabled('prelevement') && !empty($user->rights->prelevement->bons->creer)) {
|
||||||
$langs->load("withdrawals");
|
$langs->load("withdrawals");
|
||||||
$arrayofmassactions['withdrawrequest'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakeWithdrawRequest");
|
$arrayofmassactions['withdrawrequest'] = img_picto('', 'payment', 'class="pictofixedwidth"').$langs->trans("MakeWithdrawRequest");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -746,7 +746,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
|
|||||||
// Remain to take or to pay back
|
// Remain to take or to pay back
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print price($sign * $remaintopay);
|
print price($sign * $remaintopay);
|
||||||
if (!empty($conf->prelevement->enabled)) {
|
if (isModEnabled('prelevement')) {
|
||||||
$numdirectdebitopen = 0;
|
$numdirectdebitopen = 0;
|
||||||
$totaldirectdebit = 0;
|
$totaldirectdebit = 0;
|
||||||
$sql = "SELECT COUNT(pfd.rowid) as nb, SUM(pfd.amount) as amount";
|
$sql = "SELECT COUNT(pfd.rowid) as nb, SUM(pfd.amount) as amount";
|
||||||
@ -859,8 +859,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
|
|||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input type="checkbox" checked name="closepaidinvoices"> '.$checkboxlabel;
|
print '<input type="checkbox" checked name="closepaidinvoices"> '.$checkboxlabel;
|
||||||
/*if (!empty($conf->prelevement->enabled))
|
/*if (isModEnabled('prelevement')) {
|
||||||
{
|
|
||||||
$langs->load("withdrawals");
|
$langs->load("withdrawals");
|
||||||
if (!empty($conf->global->WITHDRAW_DISABLE_AUTOCREATE_ONPAYMENTS)) print '<br>'.$langs->trans("IfInvoiceNeedOnWithdrawPaymentWontBeClosed");
|
if (!empty($conf->global->WITHDRAW_DISABLE_AUTOCREATE_ONPAYMENTS)) print '<br>'.$langs->trans("IfInvoiceNeedOnWithdrawPaymentWontBeClosed");
|
||||||
}*/
|
}*/
|
||||||
|
|||||||
@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
|
|||||||
if (isModEnabled("banque")) {
|
if (isModEnabled("banque")) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
}
|
}
|
||||||
if (!empty($conf->margin->enabled)) {
|
if (isModEnabled('margin')) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formmargin.class.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -436,7 +436,7 @@ if ($resql) {
|
|||||||
print '<td>'.$langs->trans('Entity').'</td>';
|
print '<td>'.$langs->trans('Entity').'</td>';
|
||||||
}
|
}
|
||||||
//Add Margin
|
//Add Margin
|
||||||
if (!empty($conf->margin->enabled) && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
if (isModEnabled('margin') && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
||||||
print '<td class="right">'.$langs->trans('Margin').'</td>';
|
print '<td class="right">'.$langs->trans('Margin').'</td>';
|
||||||
}
|
}
|
||||||
print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
|
print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
|
||||||
@ -455,7 +455,7 @@ if ($resql) {
|
|||||||
$invoice->fetch($objp->facid);
|
$invoice->fetch($objp->facid);
|
||||||
|
|
||||||
// Add Margin
|
// Add Margin
|
||||||
if (!empty($conf->margin->enabled) && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
if (isModEnabled('margin') && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
||||||
$formmargin = new FormMargin($db);
|
$formmargin = new FormMargin($db);
|
||||||
$marginInfo = array();
|
$marginInfo = array();
|
||||||
$invoice->fetch_lines();
|
$invoice->fetch_lines();
|
||||||
@ -489,7 +489,7 @@ if ($resql) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add margin
|
// Add margin
|
||||||
if (!empty($conf->margin->enabled) && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
if (isModEnabled('margin') && getDolGlobalInt('MARGIN_SHOW_MARGIN_ON_PAYMENT')) {
|
||||||
print '<td class="right">'.price($marginInfo['total_margin']).'</td>';
|
print '<td class="right">'.price($marginInfo['total_margin']).'</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -607,10 +607,10 @@ if (count($amount)) {
|
|||||||
if (isModEnabled('supplier_proposal') && $key > 0) {
|
if (isModEnabled('supplier_proposal') && $key > 0) {
|
||||||
print ' <a href="'.DOL_URL_ROOT.'/comm/propal/stats/index.php?socid='.$key.'">'.img_picto($langs->trans("ProposalStats"), "stats").'</a> ';
|
print ' <a href="'.DOL_URL_ROOT.'/comm/propal/stats/index.php?socid='.$key.'">'.img_picto($langs->trans("ProposalStats"), "stats").'</a> ';
|
||||||
}
|
}
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order")) && $key > 0) {
|
if (isModEnabled("supplier_order") && $key > 0) {
|
||||||
print ' <a href="'.DOL_URL_ROOT.'/commande/stats/index.php?mode=supplier&socid='.$key.'">'.img_picto($langs->trans("OrderStats"), "stats").'</a> ';
|
print ' <a href="'.DOL_URL_ROOT.'/commande/stats/index.php?mode=supplier&socid='.$key.'">'.img_picto($langs->trans("OrderStats"), "stats").'</a> ';
|
||||||
}
|
}
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_invoice")) && $key > 0) {
|
if (isModEnabled("supplier_invoice") && $key > 0) {
|
||||||
print ' <a href="'.DOL_URL_ROOT.'/compta/facture/stats/index.php?mode=supplier&socid='.$key.'">'.img_picto($langs->trans("InvoiceStats"), "stats").'</a> ';
|
print ' <a href="'.DOL_URL_ROOT.'/compta/facture/stats/index.php?mode=supplier&socid='.$key.'">'.img_picto($langs->trans("InvoiceStats"), "stats").'</a> ';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -746,12 +746,22 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
$fk_unit = GETPOST('unit', 'alpha');
|
$fk_unit = GETPOST('unit', 'alpha');
|
||||||
|
|
||||||
|
// update price_ht with discount
|
||||||
|
// TODO Use object->updateline instead objedtline->update
|
||||||
|
|
||||||
|
$price_ht = price2num(GETPOST('elprice'), 'MU');
|
||||||
|
$remise_percent = price2num(GETPOST('elremise_percent'), 2);
|
||||||
|
if ($remise_percent > 0) {
|
||||||
|
$remise = round(($price_ht * $remise_percent / 100), 2);
|
||||||
|
$price_ht = ($price_ht - $remise);
|
||||||
|
}
|
||||||
|
|
||||||
$objectline->fk_product = GETPOST('idprod', 'int');
|
$objectline->fk_product = GETPOST('idprod', 'int');
|
||||||
$objectline->description = GETPOST('product_desc', 'restricthtml');
|
$objectline->description = GETPOST('product_desc', 'restricthtml');
|
||||||
$objectline->price_ht = price2num(GETPOST('elprice'), 'MU');
|
$objectline->price_ht = $price_ht;
|
||||||
$objectline->subprice = price2num(GETPOST('elprice'), 'MU');
|
$objectline->subprice = price2num(GETPOST('elprice'), 'MU');
|
||||||
$objectline->qty = price2num(GETPOST('elqty'), 'MS');
|
$objectline->qty = price2num(GETPOST('elqty'), 'MS');
|
||||||
$objectline->remise_percent = price2num(GETPOST('elremise_percent'), 2);
|
$objectline->remise_percent = $remise_percent;
|
||||||
$objectline->tva_tx = ($txtva ? $txtva : 0); // Field may be disabled, so we use vat rate 0
|
$objectline->tva_tx = ($txtva ? $txtva : 0); // Field may be disabled, so we use vat rate 0
|
||||||
$objectline->vat_src_code = $vat_src_code;
|
$objectline->vat_src_code = $vat_src_code;
|
||||||
$objectline->localtax1_tx = is_numeric($localtax1_tx) ? $localtax1_tx : 0;
|
$objectline->localtax1_tx = is_numeric($localtax1_tx) ? $localtax1_tx : 0;
|
||||||
@ -1956,7 +1966,7 @@ if ($action == 'create') {
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td class="nohover">'.$langs->trans("Comment").'</td><td colspan="3" class="nohover" colspan="'.($conf->margin->enabled ? 4 : 3).'"><input type="text" class="minwidth300" name="comment" value="'.dol_escape_htmltag(GETPOST("comment", 'alphanohtml')).'"></td>';
|
print '<td class="nohover">'.$langs->trans("Comment").'</td><td colspan="3" class="nohover" colspan="'.(isModEnabled('margin') ? 4 : 3).'"><input type="text" class="minwidth300" name="comment" value="'.dol_escape_htmltag(GETPOST("comment", 'alphanohtml')).'"></td>';
|
||||||
print '<td class="nohover right">';
|
print '<td class="nohover right">';
|
||||||
print '<input type="submit" class="button" name="activate" value="'.$langs->trans("Activate").'"> ';
|
print '<input type="submit" class="button" name="activate" value="'.$langs->trans("Activate").'"> ';
|
||||||
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
|
|||||||
@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
if (!empty($conf->categorie->enabled)) {
|
if (isModEnabled("categorie")) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -701,7 +701,7 @@ if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->right
|
|||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
}
|
}
|
||||||
// Filter on customer categories
|
// Filter on customer categories
|
||||||
if (!empty($conf->global->MAIN_SEARCH_CATEGORY_CUSTOMER_ON_CONTRACT_LIST) && !empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
if (!empty($conf->global->MAIN_SEARCH_CATEGORY_CUSTOMER_ON_CONTRACT_LIST) && isModEnabled("categorie") && $user->rights->categorie->lire) {
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$tmptitle = $langs->transnoentities('CustomersProspectsCategoriesShort');
|
$tmptitle = $langs->transnoentities('CustomersProspectsCategoriesShort');
|
||||||
$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"');
|
$moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"');
|
||||||
|
|||||||
@ -1,66 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/core/ajax/getaccountcurrency.php
|
|
||||||
* \brief File to load currency rates
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!defined('NOTOKENRENEWAL')) {
|
|
||||||
define('NOTOKENRENEWAL', '1'); // Disables token renewal
|
|
||||||
}
|
|
||||||
if (!defined('NOREQUIREMENU')) {
|
|
||||||
define('NOREQUIREMENU', '1');
|
|
||||||
}
|
|
||||||
if (!defined('NOREQUIREAJAX')) {
|
|
||||||
define('NOREQUIREAJAX', '1');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load Dolibarr environment
|
|
||||||
require '../../main.inc.php';
|
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
|
||||||
|
|
||||||
// Security check
|
|
||||||
$result = restrictedArea($user, 'banque', $id, 'bank_account&bank_account');
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* View
|
|
||||||
*/
|
|
||||||
|
|
||||||
top_httphead();
|
|
||||||
|
|
||||||
//print '<!-- Ajax page called with url '.dol_escape_htmltag($_SERVER["PHP_SELF"]).'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]).' -->'."\n";
|
|
||||||
|
|
||||||
// Load original field value
|
|
||||||
if (!empty($id)) {
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|
||||||
$account = new Account($db);
|
|
||||||
$result = $account->fetch($id);
|
|
||||||
if ($result < 0) {
|
|
||||||
$return['value'] = '';
|
|
||||||
$return['num'] = $result;
|
|
||||||
$return['error'] = $account->errors[0];
|
|
||||||
} else {
|
|
||||||
$return['value'] = $account->currency_code;
|
|
||||||
$return['num'] = $result;
|
|
||||||
$return['error'] = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo json_encode($return);
|
|
||||||
}
|
|
||||||
@ -73,7 +73,7 @@ if (isModEnabled('adherent') && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DI
|
|||||||
$arrayresult['searchintomember'] = array('position'=>8, 'shortcut'=>'M', 'img'=>'object_member', 'label'=>$langs->trans("SearchIntoMembers", $search_boxvalue), 'text'=>img_picto('', 'object_member', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : ''));
|
$arrayresult['searchintomember'] = array('position'=>8, 'shortcut'=>'M', 'img'=>'object_member', 'label'=>$langs->trans("SearchIntoMembers", $search_boxvalue), 'text'=>img_picto('', 'object_member', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((isModEnabled('societe') && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice'))) && empty($conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED) && $user->hasRight('societe', 'lire')) {
|
if (((isModEnabled('societe') && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice') || isModEnabled('supplier_proposal')) && empty($conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED) && $user->hasRight('societe', 'lire')) {
|
||||||
$arrayresult['searchintothirdparty'] = array('position'=>10, 'shortcut'=>'T', 'img'=>'object_company', 'label'=>$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'text'=>img_picto('', 'object_company', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/societe/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : ''));
|
$arrayresult['searchintothirdparty'] = array('position'=>10, 'shortcut'=>'T', 'img'=>'object_company', 'label'=>$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'text'=>img_picto('', 'object_company', 'class="pictofixedwidth"').' '.$langs->trans("SearchIntoThirdparties", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/societe/list.php'.($search_boxvalue ? '?search_all='.urlencode($search_boxvalue) : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -60,7 +60,7 @@ class box_actions extends ModeleBoxes
|
|||||||
|
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
|
|
||||||
$this->enabled = $conf->agenda->enabled;
|
$this->enabled = isModEnabled('agenda');
|
||||||
|
|
||||||
$this->hidden = !($user->hasRight('agenda', 'myactions', 'read'));
|
$this->hidden = !($user->hasRight('agenda', 'myactions', 'read'));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4142,7 +4142,7 @@ abstract class CommonObject
|
|||||||
} elseif ($objecttype == 'shipping') {
|
} elseif ($objecttype == 'shipping') {
|
||||||
$classpath = 'expedition/class';
|
$classpath = 'expedition/class';
|
||||||
$subelement = 'expedition';
|
$subelement = 'expedition';
|
||||||
$module = 'expedition_bon';
|
$module = 'expedition';
|
||||||
} elseif ($objecttype == 'delivery') {
|
} elseif ($objecttype == 'delivery') {
|
||||||
$classpath = 'delivery/class';
|
$classpath = 'delivery/class';
|
||||||
$subelement = 'delivery';
|
$subelement = 'delivery';
|
||||||
@ -6461,6 +6461,14 @@ abstract class CommonObject
|
|||||||
dol_syslog('Error bad setup of extrafield', LOG_WARNING);
|
dol_syslog('Error bad setup of extrafield', LOG_WARNING);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'checkbox':
|
||||||
|
case 'chkbxlst':
|
||||||
|
if (is_array($this->array_options[$key])) {
|
||||||
|
$new_array_options[$key] = implode(',', $this->array_options[$key]);
|
||||||
|
} else {
|
||||||
|
$new_array_options[$key] = $this->array_options[$key];
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6814,6 +6822,14 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
|
case 'checkbox':
|
||||||
|
case 'chkbxlst':
|
||||||
|
if (is_array($this->array_options[$key])) {
|
||||||
|
$new_array_options[$key] = implode(',', $this->array_options[$key]);
|
||||||
|
} else {
|
||||||
|
$new_array_options[$key] = $this->array_options[$key];
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
@ -8256,7 +8272,7 @@ abstract class CommonObject
|
|||||||
// Test on 'enabled' ('enabled' is different than 'list' = 'visibility')
|
// Test on 'enabled' ('enabled' is different than 'list' = 'visibility')
|
||||||
$enabled = 1;
|
$enabled = 1;
|
||||||
if ($enabled && isset($extrafields->attributes[$this->table_element]['enabled'][$key])) {
|
if ($enabled && isset($extrafields->attributes[$this->table_element]['enabled'][$key])) {
|
||||||
$enabled = dol_eval($extrafields->attributes[$this->table_element]['enabled'][$key], 1, 1, '1');
|
$enabled = dol_eval($extrafields->attributes[$this->table_element]['enabled'][$key], 1, 1, '2');
|
||||||
}
|
}
|
||||||
if (empty($enabled)) {
|
if (empty($enabled)) {
|
||||||
continue;
|
continue;
|
||||||
@ -8264,12 +8280,12 @@ abstract class CommonObject
|
|||||||
|
|
||||||
$visibility = 1;
|
$visibility = 1;
|
||||||
if ($visibility && isset($extrafields->attributes[$this->table_element]['list'][$key])) {
|
if ($visibility && isset($extrafields->attributes[$this->table_element]['list'][$key])) {
|
||||||
$visibility = dol_eval($extrafields->attributes[$this->table_element]['list'][$key], 1, 1, '1');
|
$visibility = dol_eval($extrafields->attributes[$this->table_element]['list'][$key], 1, 1, '2');
|
||||||
}
|
}
|
||||||
|
|
||||||
$perms = 1;
|
$perms = 1;
|
||||||
if ($perms && isset($extrafields->attributes[$this->table_element]['perms'][$key])) {
|
if ($perms && isset($extrafields->attributes[$this->table_element]['perms'][$key])) {
|
||||||
$perms = dol_eval($extrafields->attributes[$this->table_element]['perms'][$key], 1, 1, '1');
|
$perms = dol_eval($extrafields->attributes[$this->table_element]['perms'][$key], 1, 1, '2');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($mode == 'create') && abs($visibility) != 1 && abs($visibility) != 3) {
|
if (($mode == 'create') && abs($visibility) != 1 && abs($visibility) != 3) {
|
||||||
@ -8751,9 +8767,10 @@ abstract class CommonObject
|
|||||||
* @param int $nolink Do not add a href link to view enlarged imaged into a new tab
|
* @param int $nolink Do not add a href link to view enlarged imaged into a new tab
|
||||||
* @param int|string $overwritetitle Do not add title tag on image
|
* @param int|string $overwritetitle Do not add title tag on image
|
||||||
* @param int $usesharelink Use the public shared link of image (if not available, the 'nophoto' image will be shown instead)
|
* @param int $usesharelink Use the public shared link of image (if not available, the 'nophoto' image will be shown instead)
|
||||||
|
* @param string $cache A string if we want to use a cached version of image
|
||||||
* @return string Html code to show photo. Number of photos shown is saved in this->nbphoto
|
* @return string Html code to show photo. Number of photos shown is saved in this->nbphoto
|
||||||
*/
|
*/
|
||||||
public function show_photos($modulepart, $sdir, $size = 0, $nbmax = 0, $nbbyrow = 5, $showfilename = 0, $showaction = 0, $maxHeight = 120, $maxWidth = 160, $nolink = 0, $overwritetitle = 0, $usesharelink = 0)
|
public function show_photos($modulepart, $sdir, $size = 0, $nbmax = 0, $nbbyrow = 5, $showfilename = 0, $showaction = 0, $maxHeight = 120, $maxWidth = 160, $nolink = 0, $overwritetitle = 0, $usesharelink = 0, $cache = '')
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf, $user, $langs;
|
global $conf, $user, $langs;
|
||||||
@ -8838,13 +8855,11 @@ abstract class CommonObject
|
|||||||
if ($nbphoto % $nbbyrow == 1) {
|
if ($nbphoto % $nbbyrow == 1) {
|
||||||
$return .= '<tr class="center valignmiddle" style="border: 1px">';
|
$return .= '<tr class="center valignmiddle" style="border: 1px">';
|
||||||
}
|
}
|
||||||
$return .= '<td style="width: '.ceil(100 / $nbbyrow).'%" class="photo">';
|
$return .= '<td style="width: '.ceil(100 / $nbbyrow).'%" class="photo">'."\n";
|
||||||
} elseif ($nbbyrow < 0) {
|
} elseif ($nbbyrow < 0) {
|
||||||
$return .= '<div class="inline-block">';
|
$return .= '<div class="inline-block">'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$return .= "\n";
|
|
||||||
|
|
||||||
$relativefile = preg_replace('/^\//', '', $pdir.$photo);
|
$relativefile = preg_replace('/^\//', '', $pdir.$photo);
|
||||||
if (empty($nolink)) {
|
if (empty($nolink)) {
|
||||||
$urladvanced = getAdvancedPreviewUrl($modulepart, $relativefile, 0, 'entity='.$this->entity);
|
$urladvanced = getAdvancedPreviewUrl($modulepart, $relativefile, 0, 'entity='.$this->entity);
|
||||||
@ -8873,10 +8888,10 @@ abstract class CommonObject
|
|||||||
if ($val['share']) {
|
if ($val['share']) {
|
||||||
if (empty($maxHeight) || ($photo_vignette && $imgarray['height'] > $maxHeight)) {
|
if (empty($maxHeight) || ($photo_vignette && $imgarray['height'] > $maxHeight)) {
|
||||||
$return .= '<!-- Show original file (thumb not yet available with shared links) -->';
|
$return .= '<!-- Show original file (thumb not yet available with shared links) -->';
|
||||||
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'"'.($maxHeight ?' height="'.$maxHeight.'"': '').' src="'.DOL_URL_ROOT.'/viewimage.php?hashp='.urlencode($val['share']).'" title="'.dol_escape_htmltag($alt).'">';
|
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'"'.($maxHeight ?' height="'.$maxHeight.'"': '').' src="'.DOL_URL_ROOT.'/viewimage.php?hashp='.urlencode($val['share']).($cache ? '&cache='.urlencode($cache) : '').'" title="'.dol_escape_htmltag($alt).'">';
|
||||||
} else {
|
} else {
|
||||||
$return .= '<!-- Show original file -->';
|
$return .= '<!-- Show original file -->';
|
||||||
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'" height="'.$maxHeight.'" src="'.DOL_URL_ROOT.'/viewimage.php?hashp='.urlencode($val['share']).'" title="'.dol_escape_htmltag($alt).'">';
|
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'" height="'.$maxHeight.'" src="'.DOL_URL_ROOT.'/viewimage.php?hashp='.urlencode($val['share']).($cache ? '&cache='.urlencode($cache) : '').'" title="'.dol_escape_htmltag($alt).'">';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$return .= '<!-- Show nophoto file (because file is not shared) -->';
|
$return .= '<!-- Show nophoto file (because file is not shared) -->';
|
||||||
@ -8885,17 +8900,16 @@ abstract class CommonObject
|
|||||||
} else {
|
} else {
|
||||||
if (empty($maxHeight) || ($photo_vignette && $imgarray['height'] > $maxHeight)) {
|
if (empty($maxHeight) || ($photo_vignette && $imgarray['height'] > $maxHeight)) {
|
||||||
$return .= '<!-- Show thumb -->';
|
$return .= '<!-- Show thumb -->';
|
||||||
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').' maxwidth150onsmartphone maxwidth200"'.($maxHeight ?' height="'.$maxHeight.'"': '').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$this->entity.'&file='.urlencode($pdirthumb.$photo_vignette).'" title="'.dol_escape_htmltag($alt).'">';
|
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').' maxwidth150onsmartphone maxwidth200"'.($maxHeight ?' height="'.$maxHeight.'"': '').' src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$this->entity.($cache ? '&cache='.urlencode($cache) : '').'&file='.urlencode($pdirthumb.$photo_vignette).'" title="'.dol_escape_htmltag($alt).'">';
|
||||||
} else {
|
} else {
|
||||||
$return .= '<!-- Show original file -->';
|
$return .= '<!-- Show original file -->';
|
||||||
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'" height="'.$maxHeight.'" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$this->entity.'&file='.urlencode($pdir.$photo).'" title="'.dol_escape_htmltag($alt).'">';
|
$return .= '<img class="photo photowithmargin'.($addphotorefcss ? ' photoref' : '').'" height="'.$maxHeight.'" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.$this->entity.($cache ? '&cache='.urlencode($cache) : '').'&file='.urlencode($pdir.$photo).'" title="'.dol_escape_htmltag($alt).'">';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($nolink)) {
|
if (empty($nolink)) {
|
||||||
$return .= '</a>';
|
$return .= '</a>';
|
||||||
}
|
}
|
||||||
$return .= "\n";
|
|
||||||
|
|
||||||
if ($showfilename) {
|
if ($showfilename) {
|
||||||
$return .= '<br>'.$viewfilename;
|
$return .= '<br>'.$viewfilename;
|
||||||
@ -8924,7 +8938,7 @@ abstract class CommonObject
|
|||||||
$return .= '</tr>';
|
$return .= '</tr>';
|
||||||
}
|
}
|
||||||
} elseif ($nbbyrow < 0) {
|
} elseif ($nbbyrow < 0) {
|
||||||
$return .= '</div>';
|
$return .= '</div>'."\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9982,7 +9996,7 @@ abstract class CommonObject
|
|||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$statusfield = 'status';
|
$statusfield = 'status';
|
||||||
if ($this->element == 'don' || $this->element == 'donation') {
|
if (in_array($this->element, array('don', 'donation', 'shipping'))) {
|
||||||
$statusfield = 'fk_statut';
|
$statusfield = 'fk_statut';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -109,6 +109,24 @@ class Conf
|
|||||||
|
|
||||||
public $tzuserinputkey = 'tzserver'; // Use 'tzuserrel' to always store date in GMT and show date in time zone of user.
|
public $tzuserinputkey = 'tzserver'; // Use 'tzuserrel' to always store date in GMT and show date in time zone of user.
|
||||||
|
|
||||||
|
// TODO Remove this part.
|
||||||
|
public $fournisseur;
|
||||||
|
public $product;
|
||||||
|
public $service;
|
||||||
|
public $contrat;
|
||||||
|
public $actions;
|
||||||
|
public $agenda;
|
||||||
|
public $commande;
|
||||||
|
public $propal;
|
||||||
|
public $facture;
|
||||||
|
public $user;
|
||||||
|
public $adherent;
|
||||||
|
public $bank;
|
||||||
|
public $notification;
|
||||||
|
public $expensereport;
|
||||||
|
public $productbatch;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@ -165,7 +183,6 @@ class Conf
|
|||||||
$this->commande = new stdClass();
|
$this->commande = new stdClass();
|
||||||
$this->propal = new stdClass();
|
$this->propal = new stdClass();
|
||||||
$this->facture = new stdClass();
|
$this->facture = new stdClass();
|
||||||
$this->contrat = new stdClass();
|
|
||||||
$this->user = new stdClass();
|
$this->user = new stdClass();
|
||||||
$this->adherent = new stdClass();
|
$this->adherent = new stdClass();
|
||||||
$this->bank = new stdClass();
|
$this->bank = new stdClass();
|
||||||
@ -341,11 +358,12 @@ class Conf
|
|||||||
if ($modulename == 'supplierproposal') {
|
if ($modulename == 'supplierproposal') {
|
||||||
$modulename = 'supplier_proposal';
|
$modulename = 'supplier_proposal';
|
||||||
}
|
}
|
||||||
|
$this->modules[$modulename] = $modulename; // Add this module in list of enabled modules
|
||||||
|
// deprecated in php 8.2
|
||||||
if (!isset($this->$modulename) || !is_object($this->$modulename)) {
|
if (!isset($this->$modulename) || !is_object($this->$modulename)) {
|
||||||
$this->$modulename = new stdClass();
|
$this->$modulename = new stdClass();
|
||||||
}
|
}
|
||||||
$this->$modulename->enabled = true;
|
$this->$modulename->enabled = true;
|
||||||
$this->modules[] = $modulename; // Add this module in list of enabled modules
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -504,13 +522,6 @@ class Conf
|
|||||||
|
|
||||||
// Exception: Some dir are not the name of module. So we keep exception here for backward compatibility.
|
// Exception: Some dir are not the name of module. So we keep exception here for backward compatibility.
|
||||||
|
|
||||||
// Sous module bons d'expedition
|
|
||||||
$this->expedition_bon = new stdClass();
|
|
||||||
$this->expedition_bon->enabled = (empty($this->global->MAIN_SUBMODULE_EXPEDITION) ? 0 : $this->global->MAIN_SUBMODULE_EXPEDITION);
|
|
||||||
// Sub module delivery note Sous module bons de livraison
|
|
||||||
$this->delivery_note = new stdClass();
|
|
||||||
$this->delivery_note->enabled = (empty($this->global->MAIN_SUBMODULE_DELIVERY) ? 0 : $this->global->MAIN_SUBMODULE_DELIVERY);
|
|
||||||
|
|
||||||
// Module fournisseur
|
// Module fournisseur
|
||||||
if (!empty($this->fournisseur)) {
|
if (!empty($this->fournisseur)) {
|
||||||
$this->fournisseur->commande = new stdClass();
|
$this->fournisseur->commande = new stdClass();
|
||||||
@ -635,18 +646,19 @@ class Conf
|
|||||||
unset($this->global->PROJECT_USE_SEARCH_TO_SELECT);
|
unset($this->global->PROJECT_USE_SEARCH_TO_SELECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->productbatch->enabled)) {
|
if (isModEnabled('productbatch')) {
|
||||||
|
// If module lot/serial enabled, we force the inc/dec mode to STOCK_CALCULATE_ON_SHIPMENT_CLOSE and STOCK_CALCULATE_ON_RECEPTION_CLOSE
|
||||||
$this->global->STOCK_CALCULATE_ON_BILL = 0;
|
$this->global->STOCK_CALCULATE_ON_BILL = 0;
|
||||||
$this->global->STOCK_CALCULATE_ON_VALIDATE_ORDER = 0;
|
$this->global->STOCK_CALCULATE_ON_VALIDATE_ORDER = 0;
|
||||||
if (empty($this->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) $this->global->STOCK_CALCULATE_ON_SHIPMENT = 1;
|
|
||||||
if (empty($this->global->STOCK_CALCULATE_ON_SHIPMENT)) $this->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE = 1;
|
if (empty($this->global->STOCK_CALCULATE_ON_SHIPMENT)) $this->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE = 1;
|
||||||
|
if (empty($this->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) $this->global->STOCK_CALCULATE_ON_SHIPMENT = 1;
|
||||||
$this->global->STOCK_CALCULATE_ON_SUPPLIER_BILL = 0;
|
$this->global->STOCK_CALCULATE_ON_SUPPLIER_BILL = 0;
|
||||||
$this->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER = 0;
|
$this->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER = 0;
|
||||||
if (empty($this->reception->enabled)) {
|
if (!isModEnabled('reception')) {
|
||||||
$this->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER = 1;
|
$this->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER = 1;
|
||||||
} else {
|
} else {
|
||||||
if (empty($this->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) $this->global->STOCK_CALCULATE_ON_RECEPTION = 1;
|
|
||||||
if (empty($this->global->STOCK_CALCULATE_ON_RECEPTION)) $this->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE = 1;
|
if (empty($this->global->STOCK_CALCULATE_ON_RECEPTION)) $this->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE = 1;
|
||||||
|
if (empty($this->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) $this->global->STOCK_CALCULATE_ON_RECEPTION = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -949,6 +961,10 @@ class Conf
|
|||||||
$this->global->MAIN_MAIL_ADD_INLINE_IMAGES_IF_DATA = 1;
|
$this->global->MAIN_MAIL_ADD_INLINE_IMAGES_IF_DATA = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($this->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
|
||||||
|
$this->global->MAIL_SMTP_USE_FROM_FOR_HELO = 2;
|
||||||
|
}
|
||||||
|
|
||||||
if (!defined('MAIN_ANTIVIRUS_BYPASS_COMMAND_AND_PARAM')) {
|
if (!defined('MAIN_ANTIVIRUS_BYPASS_COMMAND_AND_PARAM')) {
|
||||||
if (defined('MAIN_ANTIVIRUS_COMMAND')) {
|
if (defined('MAIN_ANTIVIRUS_COMMAND')) {
|
||||||
$this->global->MAIN_ANTIVIRUS_COMMAND = constant('MAIN_ANTIVIRUS_COMMAND');
|
$this->global->MAIN_ANTIVIRUS_COMMAND = constant('MAIN_ANTIVIRUS_COMMAND');
|
||||||
|
|||||||
@ -961,9 +961,9 @@ class ExtraFields
|
|||||||
$unique = $this->attributes[$extrafieldsobjectkey]['unique'][$key];
|
$unique = $this->attributes[$extrafieldsobjectkey]['unique'][$key];
|
||||||
$required = $this->attributes[$extrafieldsobjectkey]['required'][$key];
|
$required = $this->attributes[$extrafieldsobjectkey]['required'][$key];
|
||||||
$param = $this->attributes[$extrafieldsobjectkey]['param'][$key];
|
$param = $this->attributes[$extrafieldsobjectkey]['param'][$key];
|
||||||
$perms = dol_eval($this->attributes[$extrafieldsobjectkey]['perms'][$key], 1, 1, '1');
|
$perms = dol_eval($this->attributes[$extrafieldsobjectkey]['perms'][$key], 1, 1, '2');
|
||||||
$langfile = $this->attributes[$extrafieldsobjectkey]['langfile'][$key];
|
$langfile = $this->attributes[$extrafieldsobjectkey]['langfile'][$key];
|
||||||
$list = dol_eval($this->attributes[$extrafieldsobjectkey]['list'][$key], 1, 1, '1');
|
$list = dol_eval($this->attributes[$extrafieldsobjectkey]['list'][$key], 1, 1, '2');
|
||||||
$totalizable = $this->attributes[$extrafieldsobjectkey]['totalizable'][$key];
|
$totalizable = $this->attributes[$extrafieldsobjectkey]['totalizable'][$key];
|
||||||
$help = $this->attributes[$extrafieldsobjectkey]['help'][$key];
|
$help = $this->attributes[$extrafieldsobjectkey]['help'][$key];
|
||||||
$hidden = (empty($list) ? 1 : 0); // If empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
|
$hidden = (empty($list) ? 1 : 0); // If empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
|
||||||
@ -1597,9 +1597,9 @@ class ExtraFields
|
|||||||
$unique = $this->attributes[$extrafieldsobjectkey]['unique'][$key];
|
$unique = $this->attributes[$extrafieldsobjectkey]['unique'][$key];
|
||||||
$required = $this->attributes[$extrafieldsobjectkey]['required'][$key];
|
$required = $this->attributes[$extrafieldsobjectkey]['required'][$key];
|
||||||
$param = $this->attributes[$extrafieldsobjectkey]['param'][$key];
|
$param = $this->attributes[$extrafieldsobjectkey]['param'][$key];
|
||||||
$perms = dol_eval($this->attributes[$extrafieldsobjectkey]['perms'][$key], 1, 1, '1');
|
$perms = dol_eval($this->attributes[$extrafieldsobjectkey]['perms'][$key], 1, 1, '2');
|
||||||
$langfile = $this->attributes[$extrafieldsobjectkey]['langfile'][$key];
|
$langfile = $this->attributes[$extrafieldsobjectkey]['langfile'][$key];
|
||||||
$list = dol_eval($this->attributes[$extrafieldsobjectkey]['list'][$key], 1, 1, '1');
|
$list = dol_eval($this->attributes[$extrafieldsobjectkey]['list'][$key], 1, 1, '2');
|
||||||
$help = $this->attributes[$extrafieldsobjectkey]['help'][$key];
|
$help = $this->attributes[$extrafieldsobjectkey]['help'][$key];
|
||||||
$hidden = (empty($list) ? 1 : 0); // If $list empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
|
$hidden = (empty($list) ? 1 : 0); // If $list empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
|
||||||
|
|
||||||
@ -2097,17 +2097,17 @@ class ExtraFields
|
|||||||
|
|
||||||
$enabled = 1;
|
$enabled = 1;
|
||||||
if (isset($this->attributes[$object->table_element]['enabled'][$key])) { // 'enabled' is often a condition on module enabled or not
|
if (isset($this->attributes[$object->table_element]['enabled'][$key])) { // 'enabled' is often a condition on module enabled or not
|
||||||
$enabled = dol_eval($this->attributes[$object->table_element]['enabled'][$key], 1, 1, '1');
|
$enabled = dol_eval($this->attributes[$object->table_element]['enabled'][$key], 1, 1, '2');
|
||||||
}
|
}
|
||||||
|
|
||||||
$visibility = 1;
|
$visibility = 1;
|
||||||
if (isset($this->attributes[$object->table_element]['list'][$key])) { // 'list' is option for visibility
|
if (isset($this->attributes[$object->table_element]['list'][$key])) { // 'list' is option for visibility
|
||||||
$visibility = intval(dol_eval($this->attributes[$object->table_element]['list'][$key], 1, 1, '1'));
|
$visibility = intval(dol_eval($this->attributes[$object->table_element]['list'][$key], 1, 1, '2'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$perms = 1;
|
$perms = 1;
|
||||||
if (isset($this->attributes[$object->table_element]['perms'][$key])) {
|
if (isset($this->attributes[$object->table_element]['perms'][$key])) {
|
||||||
$perms = dol_eval($this->attributes[$object->table_element]['perms'][$key], 1, 1, '1');
|
$perms = dol_eval($this->attributes[$object->table_element]['perms'][$key], 1, 1, '2');
|
||||||
}
|
}
|
||||||
if (empty($enabled)
|
if (empty($enabled)
|
||||||
|| (
|
|| (
|
||||||
|
|||||||
@ -1207,7 +1207,7 @@ class FormOther
|
|||||||
if (preg_match('/graph/', $box->class) && $conf->browser->layout != 'phone') {
|
if (preg_match('/graph/', $box->class) && $conf->browser->layout != 'phone') {
|
||||||
$label = $label.' <span class="fa fa-bar-chart"></span>';
|
$label = $label.' <span class="fa fa-bar-chart"></span>';
|
||||||
}
|
}
|
||||||
$arrayboxtoactivatelabel[$box->id] = $label; // We keep only boxes not shown for user, to show into combo list
|
$arrayboxtoactivatelabel[$box->id] = array('label'=>$label, 'data-html'=>img_picto('', $box->boximg, 'class="pictofixedwidth"').$langs->trans($label)); // We keep only boxes not shown for user, to show into combo list
|
||||||
}
|
}
|
||||||
foreach ($boxidactivatedforuser as $boxid) {
|
foreach ($boxidactivatedforuser as $boxid) {
|
||||||
if (empty($boxorder)) {
|
if (empty($boxorder)) {
|
||||||
@ -1226,7 +1226,7 @@ class FormOther
|
|||||||
$selectboxlist .= '<input type="hidden" name="userid" value="'.$user->id.'">';
|
$selectboxlist .= '<input type="hidden" name="userid" value="'.$user->id.'">';
|
||||||
$selectboxlist .= '<input type="hidden" name="areacode" value="'.$areacode.'">';
|
$selectboxlist .= '<input type="hidden" name="areacode" value="'.$areacode.'">';
|
||||||
$selectboxlist .= '<input type="hidden" name="boxorder" value="'.$boxorder.'">';
|
$selectboxlist .= '<input type="hidden" name="boxorder" value="'.$boxorder.'">';
|
||||||
$selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth150onsmartphone hideonprint', 0, 'hidden selected', 0, 1);
|
$selectboxlist .= Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth150onsmartphone hideonprint', 0, 'hidden selected', 0, 0);
|
||||||
if (empty($conf->use_javascript_ajax)) {
|
if (empty($conf->use_javascript_ajax)) {
|
||||||
$selectboxlist .= ' <input type="submit" class="button" value="'.$langs->trans("AddBox").'">';
|
$selectboxlist .= ' <input type="submit" class="button" value="'.$langs->trans("AddBox").'">';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -380,7 +380,7 @@ class FormProjets
|
|||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
||||||
$comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus);
|
$comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus);
|
||||||
$out .= $comboenhancement;
|
$out .= $comboenhancement;
|
||||||
$morecss .= ' minwidth200 maxwidth500';
|
$morecss .= ' minwidth150';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($option_only)) {
|
if (empty($option_only)) {
|
||||||
|
|||||||
@ -313,7 +313,7 @@ class Menubase
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this)."::create menu entry already exists", LOG_WARNING);
|
dol_syslog(get_class($this)."::create menu entry already exists", LOG_WARNING);
|
||||||
$this->error = 'Error Menu entry already exists';
|
$this->error = 'Error Menu entry ('.$this->menu_handler.','.$this->position.','.$this->url.') already exists';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -665,13 +665,17 @@ class SMTPs
|
|||||||
if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
|
if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
|
||||||
// If value of MAIL_SMTP_USE_FROM_FOR_HELO is a string, we use it as domain name
|
// If value of MAIL_SMTP_USE_FROM_FOR_HELO is a string, we use it as domain name
|
||||||
$hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
|
$hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
|
||||||
} else {
|
} elseif ($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO == 1) {
|
||||||
// If value of MAIL_SMTP_USE_FROM_FOR_HELO is 1, we use the domain in the from.
|
// If value of MAIL_SMTP_USE_FROM_FOR_HELO is 1, we use the domain in the from.
|
||||||
// If the from to is 'aaa <bbb@ccc.com>', we will keep 'ccc.com'
|
// So if the from to is 'aaa <bbb@ccc.com>', we will keep 'ccc.com'
|
||||||
$hosth = $this->getFrom('addr');
|
$hosth = $this->getFrom('addr');
|
||||||
$hosth = preg_replace('/^.*</', '', $hosth);
|
$hosth = preg_replace('/^.*</', '', $hosth);
|
||||||
$hosth = preg_replace('/>.*$/', '', $hosth);
|
$hosth = preg_replace('/>.*$/', '', $hosth);
|
||||||
$hosth = preg_replace('/.*@/', '', $hosth);
|
$hosth = preg_replace('/.*@/', '', $hosth);
|
||||||
|
} elseif ($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO == 2) {
|
||||||
|
// If value of MAIL_SMTP_USE_FROM_FOR_HELO is 2, we use the domain in the $dolibarr_main_url_root.
|
||||||
|
global $dolibarr_main_url_root;
|
||||||
|
$hosth = getDomainFromURL($dolibarr_main_url_root, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -459,7 +459,7 @@ class Translate
|
|||||||
// Enable caching of lang file in memory (not by default)
|
// Enable caching of lang file in memory (not by default)
|
||||||
$usecachekey = '';
|
$usecachekey = '';
|
||||||
// Using a memcached server
|
// Using a memcached server
|
||||||
if (!empty($conf->memcached->enabled) && !empty($conf->global->MEMCACHED_SERVER)) {
|
if (isModEnabled('memcached') && !empty($conf->global->MEMCACHED_SERVER)) {
|
||||||
$usecachekey = $newdomain.'_'.$langofdir; // Should not contains special chars
|
$usecachekey = $newdomain.'_'.$langofdir; // Should not contains special chars
|
||||||
} elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) {
|
} elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02)) {
|
||||||
// Using cache with shmop. Speed gain: 40ms - Memory overusage: 200ko (Size of session cache file)
|
// Using cache with shmop. Speed gain: 40ms - Memory overusage: 200ko (Size of session cache file)
|
||||||
|
|||||||
@ -129,6 +129,17 @@ interface Database
|
|||||||
public function DDLListTables($database, $table = '');
|
public function DDLListTables($database, $table = '');
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* List tables into a database with table type
|
||||||
|
*
|
||||||
|
* @param string $database Name of database
|
||||||
|
* @param string $table Name of table filter ('xxx%')
|
||||||
|
* @return array List of tables in an array
|
||||||
|
*/
|
||||||
|
public function DDLListTablesFull($database, $table = '');
|
||||||
|
// phpcs:enable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return last request executed with query()
|
* Return last request executed with query()
|
||||||
*
|
*
|
||||||
|
|||||||
@ -112,7 +112,7 @@ class DoliDBMysqli extends DoliDB
|
|||||||
$this->ok = true;
|
$this->ok = true;
|
||||||
|
|
||||||
// If client is old latin, we force utf8
|
// If client is old latin, we force utf8
|
||||||
$clientmustbe = empty($conf->db->dolibarr_main_db_character_set) ? 'utf8' : $conf->db->dolibarr_main_db_character_set;
|
$clientmustbe = empty($conf->db->character_set) ? 'utf8' : $conf->db->character_set;
|
||||||
if (preg_match('/latin1/', $clientmustbe)) {
|
if (preg_match('/latin1/', $clientmustbe)) {
|
||||||
$clientmustbe = 'utf8';
|
$clientmustbe = 'utf8';
|
||||||
}
|
}
|
||||||
@ -142,7 +142,7 @@ class DoliDBMysqli extends DoliDB
|
|||||||
|
|
||||||
if ($this->connected) {
|
if ($this->connected) {
|
||||||
// If client is old latin, we force utf8
|
// If client is old latin, we force utf8
|
||||||
$clientmustbe = empty($conf->db->dolibarr_main_db_character_set) ? 'utf8' : $conf->db->dolibarr_main_db_character_set;
|
$clientmustbe = empty($conf->db->character_set) ? 'utf8' : $conf->db->character_set;
|
||||||
if (preg_match('/latin1/', $clientmustbe)) {
|
if (preg_match('/latin1/', $clientmustbe)) {
|
||||||
$clientmustbe = 'utf8';
|
$clientmustbe = 'utf8';
|
||||||
}
|
}
|
||||||
@ -484,7 +484,7 @@ class DoliDBMysqli extends DoliDB
|
|||||||
*/
|
*/
|
||||||
public function escapeforlike($stringtoencode)
|
public function escapeforlike($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
return str_replace(array('\\', '_', '%'), array('\\\\', '\_', '\%'), (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -716,6 +716,38 @@ class DoliDBMysqli extends DoliDB
|
|||||||
return $listtables;
|
return $listtables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* List tables into a database
|
||||||
|
*
|
||||||
|
* @param string $database Name of database
|
||||||
|
* @param string $table Nmae of table filter ('xxx%')
|
||||||
|
* @return array List of tables in an array
|
||||||
|
*/
|
||||||
|
public function DDLListTablesFull($database, $table = '')
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
$listtables = array();
|
||||||
|
|
||||||
|
$like = '';
|
||||||
|
if ($table) {
|
||||||
|
$tmptable = preg_replace('/[^a-z0-9\.\-\_%]/i', '', $table);
|
||||||
|
|
||||||
|
$like = "LIKE '".$this->escape($tmptable)."'";
|
||||||
|
}
|
||||||
|
$tmpdatabase = preg_replace('/[^a-z0-9\.\-\_]/i', '', $database);
|
||||||
|
|
||||||
|
$sql = "SHOW FULL TABLES FROM `".$tmpdatabase."` ".$like.";";
|
||||||
|
|
||||||
|
$result = $this->query($sql);
|
||||||
|
if ($result) {
|
||||||
|
while ($row = $this->fetch_row($result)) {
|
||||||
|
$listtables[] = $row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $listtables;
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* List information of columns into a table.
|
* List information of columns into a table.
|
||||||
|
|||||||
@ -729,7 +729,7 @@ class DoliDBPgsql extends DoliDB
|
|||||||
*/
|
*/
|
||||||
public function escapeforlike($stringtoencode)
|
public function escapeforlike($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
return str_replace(array('\\', '_', '%'), array('\\\\', '\_', '\%'), (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -977,6 +977,34 @@ class DoliDBPgsql extends DoliDB
|
|||||||
return $listtables;
|
return $listtables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* List tables into a database
|
||||||
|
*
|
||||||
|
* @param string $database Name of database
|
||||||
|
* @param string $table Name of table filter ('xxx%')
|
||||||
|
* @return array List of tables in an array
|
||||||
|
*/
|
||||||
|
public function DDLListTablesFull($database, $table = '')
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
$listtables = array();
|
||||||
|
|
||||||
|
$escapedlike = '';
|
||||||
|
if ($table) {
|
||||||
|
$tmptable = preg_replace('/[^a-z0-9\.\-\_%]/i', '', $table);
|
||||||
|
|
||||||
|
$escapedlike = " AND table_name LIKE '".$this->escape($tmptable)."'";
|
||||||
|
}
|
||||||
|
$result = pg_query($this->db, "SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = 'public'".$escapedlike." ORDER BY table_name");
|
||||||
|
if ($result) {
|
||||||
|
while ($row = $this->fetch_row($result)) {
|
||||||
|
$listtables[] = $row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $listtables;
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* List information of columns into a table.
|
* List information of columns into a table.
|
||||||
|
|||||||
@ -657,7 +657,7 @@ class DoliDBSqlite3 extends DoliDB
|
|||||||
*/
|
*/
|
||||||
public function escapeforlike($stringtoencode)
|
public function escapeforlike($stringtoencode)
|
||||||
{
|
{
|
||||||
return str_replace(array('_', '\\', '%'), array('\_', '\\\\', '\%'), (string) $stringtoencode);
|
return str_replace(array('\\', '_', '%'), array('\\\\', '\_', '\%'), (string) $stringtoencode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -896,6 +896,38 @@ class DoliDBSqlite3 extends DoliDB
|
|||||||
return $listtables;
|
return $listtables;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* List tables into a database with table type
|
||||||
|
*
|
||||||
|
* @param string $database Name of database
|
||||||
|
* @param string $table Name of table filter ('xxx%')
|
||||||
|
* @return array List of tables in an array
|
||||||
|
*/
|
||||||
|
public function DDLListTablesFull($database, $table = '')
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
$listtables = array();
|
||||||
|
|
||||||
|
$like = '';
|
||||||
|
if ($table) {
|
||||||
|
$tmptable = preg_replace('/[^a-z0-9\.\-\_%]/i', '', $table);
|
||||||
|
|
||||||
|
$like = "LIKE '".$this->escape($tmptable)."'";
|
||||||
|
}
|
||||||
|
$tmpdatabase = preg_replace('/[^a-z0-9\.\-\_]/i', '', $database);
|
||||||
|
|
||||||
|
$sql = "SHOW FULL TABLES FROM ".$tmpdatabase." ".$like.";";
|
||||||
|
//print $sql;
|
||||||
|
$result = $this->query($sql);
|
||||||
|
if ($result) {
|
||||||
|
while ($row = $this->fetch_row($result)) {
|
||||||
|
$listtables[] = $row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $listtables;
|
||||||
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* List information of columns into a table.
|
* List information of columns into a table.
|
||||||
|
|||||||
@ -137,7 +137,7 @@ if (!isset($form) || !is_object($form)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Link to module builder
|
// Link to module builder
|
||||||
if (!empty($conf->modulebuilder->enabled)) {
|
if (isModEnabled('modulebuilder')) {
|
||||||
$text = '<a href="'.DOL_URL_ROOT.'/modulebuilder/index.php?mainmenu=home&leftmenu=admintools" target="modulebuilder">';
|
$text = '<a href="'.DOL_URL_ROOT.'/modulebuilder/index.php?mainmenu=home&leftmenu=admintools" target="modulebuilder">';
|
||||||
//$text.= img_picto(":".$langs->trans("ModuleBuilder"), 'printer_top.png', 'class="printer"');
|
//$text.= img_picto(":".$langs->trans("ModuleBuilder"), 'printer_top.png', 'class="printer"');
|
||||||
$text .= '<span class="fa fa-bug atoplogin"></span>';
|
$text .= '<span class="fa fa-bug atoplogin"></span>';
|
||||||
|
|||||||
@ -1166,20 +1166,28 @@ function activateModule($value, $withdeps = 1, $noconfverification = 0)
|
|||||||
if ($withdeps) {
|
if ($withdeps) {
|
||||||
if (isset($objMod->depends) && is_array($objMod->depends) && !empty($objMod->depends)) {
|
if (isset($objMod->depends) && is_array($objMod->depends) && !empty($objMod->depends)) {
|
||||||
// Activation of modules this module depends on
|
// Activation of modules this module depends on
|
||||||
// this->depends may be array('modModule1', 'mmodModule2') or array('always1'=>"modModule1", 'FR'=>'modModule2')
|
// this->depends may be array('modModule1', 'mmodModule2') or array('always'=>array('modModule1'), 'FR'=>array('modModule2"))
|
||||||
foreach ($objMod->depends as $key => $modulestring) {
|
foreach ($objMod->depends as $key => $modulestringorarray) {
|
||||||
//var_dump((! is_numeric($key)) && ! preg_match('/^always/', $key) && $mysoc->country_code && ! preg_match('/^'.$mysoc->country_code.'/', $key));exit;
|
//var_dump((! is_numeric($key)) && ! preg_match('/^always/', $key) && $mysoc->country_code && ! preg_match('/^'.$mysoc->country_code.'/', $key));exit;
|
||||||
if ((!is_numeric($key)) && !preg_match('/^always/', $key) && $mysoc->country_code && !preg_match('/^'.$mysoc->country_code.'/', $key)) {
|
if ((!is_numeric($key)) && !preg_match('/^always/', $key) && $mysoc->country_code && !preg_match('/^'.$mysoc->country_code.'/', $key)) {
|
||||||
dol_syslog("We are not concerned by dependency with key=".$key." because our country is ".$mysoc->country_code);
|
dol_syslog("We are not concerned by dependency with key=".$key." because our country is ".$mysoc->country_code);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!is_array($modulestringorarray)) {
|
||||||
|
$modulestringorarray = array($modulestringorarray);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($modulestringorarray as $modulestring) {
|
||||||
$activate = false;
|
$activate = false;
|
||||||
|
$activateerr = '';
|
||||||
foreach ($modulesdir as $dir) {
|
foreach ($modulesdir as $dir) {
|
||||||
if (file_exists($dir.$modulestring.".class.php")) {
|
if (file_exists($dir.$modulestring.".class.php")) {
|
||||||
$resarray = activateModule($modulestring);
|
$resarray = activateModule($modulestring);
|
||||||
if (empty($resarray['errors'])) {
|
if (empty($resarray['errors'])) {
|
||||||
$activate = true;
|
$activate = true;
|
||||||
} else {
|
} else {
|
||||||
|
$activateerr = join(', ', $resarray['errors']);
|
||||||
foreach ($resarray['errors'] as $errorMessage) {
|
foreach ($resarray['errors'] as $errorMessage) {
|
||||||
dol_syslog($errorMessage, LOG_ERR);
|
dol_syslog($errorMessage, LOG_ERR);
|
||||||
}
|
}
|
||||||
@ -1192,10 +1200,14 @@ function activateModule($value, $withdeps = 1, $noconfverification = 0)
|
|||||||
$ret['nbmodules'] += $resarray['nbmodules'];
|
$ret['nbmodules'] += $resarray['nbmodules'];
|
||||||
$ret['nbperms'] += $resarray['nbperms'];
|
$ret['nbperms'] += $resarray['nbperms'];
|
||||||
} else {
|
} else {
|
||||||
|
if ($activateerr) {
|
||||||
|
$ret['errors'][] = $activateerr;
|
||||||
|
}
|
||||||
$ret['errors'][] = $langs->trans('activateModuleDependNotSatisfied', $objMod->name, $modulestring);
|
$ret['errors'][] = $langs->trans('activateModuleDependNotSatisfied', $objMod->name, $modulestring);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && !empty($objMod->conflictwith)) {
|
if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && !empty($objMod->conflictwith)) {
|
||||||
// Desactivation des modules qui entrent en conflit
|
// Desactivation des modules qui entrent en conflit
|
||||||
|
|||||||
@ -128,7 +128,7 @@ function societe_prepare_head(Societe $object)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$supplier_module_enabled = 0;
|
$supplier_module_enabled = 0;
|
||||||
if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_proposal') || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled('supplier_proposal') || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$supplier_module_enabled = 1;
|
$supplier_module_enabled = 1;
|
||||||
}
|
}
|
||||||
if ($supplier_module_enabled == 1 && $object->fournisseur && !empty($user->rights->fournisseur->lire)) {
|
if ($supplier_module_enabled == 1 && $object->fournisseur && !empty($user->rights->fournisseur->lire)) {
|
||||||
@ -179,7 +179,7 @@ function societe_prepare_head(Societe $object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Related items
|
// Related items
|
||||||
if ((isModEnabled('commande') || isModEnabled('propal') || isModEnabled('facture') || isModEnabled('ficheinter') || (isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))
|
if ((isModEnabled('commande') || isModEnabled('propal') || isModEnabled('facture') || isModEnabled('ficheinter') || isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))
|
||||||
&& empty($conf->global->THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB)) {
|
&& empty($conf->global->THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB)) {
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/societe/consumption.php?socid='.$object->id;
|
||||||
$head[$h][1] = $langs->trans("Referers");
|
$head[$h][1] = $langs->trans("Referers");
|
||||||
@ -1339,7 +1339,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
|
|
||||||
// Photo - Name
|
// Photo - Name
|
||||||
if (!empty($arrayfields['t.name']['checked'])) {
|
if (!empty($arrayfields['t.name']['checked'])) {
|
||||||
print '<td>';
|
print '<td class="tdoverflowmax150">';
|
||||||
print $form->showphoto('contact', $contactstatic, 0, 0, 0, 'photorefnoborder valignmiddle marginrightonly', 'small', 1, 0, 1);
|
print $form->showphoto('contact', $contactstatic, 0, 0, 0, 'photorefnoborder valignmiddle marginrightonly', 'small', 1, 0, 1);
|
||||||
print $contactstatic->getNomUrl(0, '', 0, '&backtopage='.urlencode($backtopage));
|
print $contactstatic->getNomUrl(0, '', 0, '&backtopage='.urlencode($backtopage));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -1347,17 +1347,18 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
|
|
||||||
// Job position
|
// Job position
|
||||||
if (!empty($arrayfields['t.poste']['checked'])) {
|
if (!empty($arrayfields['t.poste']['checked'])) {
|
||||||
print '<td>';
|
print '<td class="tdoverflowmax100" title="'.dol_escape_htmltag($obj->poste).'">';
|
||||||
if ($obj->poste) {
|
if ($obj->poste) {
|
||||||
print $obj->poste;
|
print dol_escape_htmltag($obj->poste);
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Address - Phone - Email
|
// Address - Phone - Email
|
||||||
if (!empty($arrayfields['t.address']['checked'])) {
|
if (!empty($arrayfields['t.address']['checked'])) {
|
||||||
print '<td>';
|
$addresstoshow = $contactstatic->getBannerAddress('contact', $object);
|
||||||
print $contactstatic->getBannerAddress('contact', $object);
|
print '<td class="tdoverflowmax150" title="'.dol_escape_htmltag(dol_string_nohtmltag($addresstoshow)).'">';
|
||||||
|
print $addresstoshow;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1379,7 +1380,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
|
|
||||||
// Birthday
|
// Birthday
|
||||||
if (!empty($arrayfields['t.birthday']['checked'])) {
|
if (!empty($arrayfields['t.birthday']['checked'])) {
|
||||||
print '<td>';
|
print '<td class="nowraponall">';
|
||||||
print dol_print_date($db->jdate($obj->birthday));
|
print dol_print_date($db->jdate($obj->birthday));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
@ -1390,7 +1391,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($showuserlogin) {
|
if ($showuserlogin) {
|
||||||
print '<td>';
|
print '<td class="tdoverflowmax125">';
|
||||||
$tmpuser= new User($db);
|
$tmpuser= new User($db);
|
||||||
$resfetch = $tmpuser->fetch(0, '', '', 0, -1, '', $contactstatic->id);
|
$resfetch = $tmpuser->fetch(0, '', '', 0, -1, '', $contactstatic->id);
|
||||||
if ($resfetch > 0) {
|
if ($resfetch > 0) {
|
||||||
@ -1433,7 +1434,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
$colspan++;
|
$colspan++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
|
print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$colspan = 1 + ($showuserlogin ? 1 : 0);
|
$colspan = 1 + ($showuserlogin ? 1 : 0);
|
||||||
@ -1442,7 +1443,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl
|
|||||||
$colspan++;
|
$colspan++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
|
print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
|
||||||
}
|
}
|
||||||
print "\n</table>\n";
|
print "\n</table>\n";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -93,7 +93,7 @@ function contact_prepare_head(Contact $object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Related items
|
// Related items
|
||||||
if (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || isModEnabled('ficheinter') || (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled('commande') || isModEnabled("propal") || isModEnabled('facture') || isModEnabled('ficheinter') || isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$head[$tab][0] = DOL_URL_ROOT.'/contact/consumption.php?id='.$object->id;
|
$head[$tab][0] = DOL_URL_ROOT.'/contact/consumption.php?id='.$object->id;
|
||||||
$head[$tab][1] = $langs->trans("Referers");
|
$head[$tab][1] = $langs->trans("Referers");
|
||||||
$head[$tab][2] = 'consumption';
|
$head[$tab][2] = 'consumption';
|
||||||
|
|||||||
@ -53,7 +53,7 @@ function expedition_prepare_head(Expedition $object)
|
|||||||
$hselected = $h;
|
$hselected = $h;
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
if (!empty($conf->global->MAIN_SUBMODULE_DELIVERY)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
$head[$h][0] = DOL_URL_ROOT."/admin/delivery.php";
|
$head[$h][0] = DOL_URL_ROOT."/admin/delivery.php";
|
||||||
$head[$h][1] = $langs->trans("Receivings");
|
$head[$h][1] = $langs->trans("Receivings");
|
||||||
$h++;
|
$h++;
|
||||||
@ -121,7 +121,7 @@ function expedition_admin_prepare_head()
|
|||||||
$head[$h][2] = 'receivings';
|
$head[$h][2] = 'receivings';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
if (!empty($conf->global->MAIN_SUBMODULE_DELIVERY)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
$extrafields->fetch_name_optionals_label('delivery');
|
$extrafields->fetch_name_optionals_label('delivery');
|
||||||
$extrafields->fetch_name_optionals_label('deliverydet');
|
$extrafields->fetch_name_optionals_label('deliverydet');
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@
|
|||||||
* Copyright (C) 2022 Anthony Berton <anthony.berton@bb2a.fr>
|
* Copyright (C) 2022 Anthony Berton <anthony.berton@bb2a.fr>
|
||||||
* Copyright (C) 2022 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2022 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2022 Charlene Benke <charlene@patas-monkey.com>
|
* Copyright (C) 2022 Charlene Benke <charlene@patas-monkey.com>
|
||||||
|
* Copyright (C) 2023 Joachim Kueter <git-jk@bloxera.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -166,7 +167,21 @@ function getDolUserInt($key, $default = 0, $tmpuser = null)
|
|||||||
function isModEnabled($module)
|
function isModEnabled($module)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
return !empty($conf->$module->enabled);
|
|
||||||
|
// Fix special cases
|
||||||
|
$arrayconv = array(
|
||||||
|
'project' => 'projet'
|
||||||
|
);
|
||||||
|
if (empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) {
|
||||||
|
$arrayconv['supplier_order'] = 'fournisseur';
|
||||||
|
$arrayconv['supplier_invoice'] = 'fournisseur';
|
||||||
|
}
|
||||||
|
if (!empty($arrayconv[$module])) {
|
||||||
|
$module = $arrayconv[$module];
|
||||||
|
}
|
||||||
|
|
||||||
|
return !empty($conf->modules[$module]);
|
||||||
|
//return !empty($conf->$module->enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -619,7 +634,7 @@ function GETPOST($paramname, $check = 'alphanohtml', $method = 0, $filter = null
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($conf->global->MAIN_ENABLE_DEFAULT_VALUES)) {
|
if (!empty($conf->global->MAIN_ENABLE_DEFAULT_VALUES)) {
|
||||||
if (!empty($_GET['action']) && (preg_match('/^create|^add_price|^make/', $_GET['action']) || preg_match('/^presend/', $_GET['action'])) && !isset($_GET[$paramname]) && !isset($_POST[$paramname])) {
|
if (!empty($_GET['action']) && (preg_match('/^create/', $_GET['action']) || preg_match('/^presend/', $_GET['action'])) && !isset($_GET[$paramname]) && !isset($_POST[$paramname])) {
|
||||||
// Now search in setup to overwrite default values
|
// Now search in setup to overwrite default values
|
||||||
if (!empty($user->default_values)) { // $user->default_values defined from menu 'Setup - Default values'
|
if (!empty($user->default_values)) { // $user->default_values defined from menu 'Setup - Default values'
|
||||||
if (isset($user->default_values[$relativepathstring]['createform'])) {
|
if (isset($user->default_values[$relativepathstring]['createform'])) {
|
||||||
@ -1529,7 +1544,7 @@ function dol_escape_json($stringtoescape)
|
|||||||
* @param string $noescapetags '' or 'common' or list of tags to not escape. TODO Does not works yet when there is attributes into tag.
|
* @param string $noescapetags '' or 'common' or list of tags to not escape. TODO Does not works yet when there is attributes into tag.
|
||||||
* @param int $escapeonlyhtmltags 1=Escape only html tags, not the special chars like accents.
|
* @param int $escapeonlyhtmltags 1=Escape only html tags, not the special chars like accents.
|
||||||
* @return string Escaped string
|
* @return string Escaped string
|
||||||
* @see dol_string_nohtmltag(), dol_string_nospecial(), dol_string_unaccent()
|
* @see dol_string_nohtmltag(), dol_string_nospecial(), dol_string_unaccent(), dol_htmlentitiesbr()
|
||||||
*/
|
*/
|
||||||
function dol_escape_htmltag($stringtoescape, $keepb = 0, $keepn = 0, $noescapetags = '', $escapeonlyhtmltags = 0)
|
function dol_escape_htmltag($stringtoescape, $keepb = 0, $keepn = 0, $noescapetags = '', $escapeonlyhtmltags = 0)
|
||||||
{
|
{
|
||||||
@ -3569,7 +3584,7 @@ function dol_print_phone($phone, $countrycode = '', $cid = 0, $socid = 0, $addli
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (($cid || $socid) && !empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create)
|
//if (($cid || $socid) && isModEnabled('agenda') && $user->rights->agenda->myactions->create)
|
||||||
if (isModEnabled('agenda') && $user->hasRight("agenda", "myactions", "create")) {
|
if (isModEnabled('agenda') && $user->hasRight("agenda", "myactions", "create")) {
|
||||||
$type = 'AC_TEL';
|
$type = 'AC_TEL';
|
||||||
$link = '';
|
$link = '';
|
||||||
@ -3786,22 +3801,22 @@ function dol_print_address($address, $htmlid, $element, $id, $noprint = 0, $char
|
|||||||
|
|
||||||
// TODO Remove this block, we can add this using the hook now
|
// TODO Remove this block, we can add this using the hook now
|
||||||
$showgmap = $showomap = 0;
|
$showgmap = $showomap = 0;
|
||||||
if (($element == 'thirdparty' || $element == 'societe') && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS)) {
|
if (($element == 'thirdparty' || $element == 'societe') && isModEnabled('google') && !empty($conf->global->GOOGLE_ENABLE_GMAPS)) {
|
||||||
$showgmap = 1;
|
$showgmap = 1;
|
||||||
}
|
}
|
||||||
if ($element == 'contact' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_CONTACTS)) {
|
if ($element == 'contact' && isModEnabled('google') && !empty($conf->global->GOOGLE_ENABLE_GMAPS_CONTACTS)) {
|
||||||
$showgmap = 1;
|
$showgmap = 1;
|
||||||
}
|
}
|
||||||
if ($element == 'member' && !empty($conf->google->enabled) && !empty($conf->global->GOOGLE_ENABLE_GMAPS_MEMBERS)) {
|
if ($element == 'member' && isModEnabled('google') && !empty($conf->global->GOOGLE_ENABLE_GMAPS_MEMBERS)) {
|
||||||
$showgmap = 1;
|
$showgmap = 1;
|
||||||
}
|
}
|
||||||
if (($element == 'thirdparty' || $element == 'societe') && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS)) {
|
if (($element == 'thirdparty' || $element == 'societe') && isModEnabled('openstreetmap') && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS)) {
|
||||||
$showomap = 1;
|
$showomap = 1;
|
||||||
}
|
}
|
||||||
if ($element == 'contact' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_CONTACTS)) {
|
if ($element == 'contact' && isModEnabled('openstreetmap') && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_CONTACTS)) {
|
||||||
$showomap = 1;
|
$showomap = 1;
|
||||||
}
|
}
|
||||||
if ($element == 'member' && !empty($conf->openstreetmap->enabled) && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_MEMBERS)) {
|
if ($element == 'member' && isModEnabled('openstreetmap') && !empty($conf->global->OPENSTREETMAP_ENABLE_MAPS_MEMBERS)) {
|
||||||
$showomap = 1;
|
$showomap = 1;
|
||||||
}
|
}
|
||||||
if ($showgmap) {
|
if ($showgmap) {
|
||||||
@ -9764,7 +9779,7 @@ function printCommonFooter($zone = 'private')
|
|||||||
|
|
||||||
// Google Analytics
|
// Google Analytics
|
||||||
// TODO Add a hook here
|
// TODO Add a hook here
|
||||||
if (!empty($conf->google->enabled) && !empty($conf->global->MAIN_GOOGLE_AN_ID)) {
|
if (isModEnabled('google') && !empty($conf->global->MAIN_GOOGLE_AN_ID)) {
|
||||||
$tmptagarray = explode(',', $conf->global->MAIN_GOOGLE_AN_ID);
|
$tmptagarray = explode(',', $conf->global->MAIN_GOOGLE_AN_ID);
|
||||||
foreach ($tmptagarray as $tmptag) {
|
foreach ($tmptagarray as $tmptag) {
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|||||||
@ -56,7 +56,7 @@ function facture_prepare_head($object)
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->prelevement->enabled)) {
|
if (isModEnabled('prelevement')) {
|
||||||
$nbStandingOrders = 0;
|
$nbStandingOrders = 0;
|
||||||
$sql = "SELECT COUNT(pfd.rowid) as nb";
|
$sql = "SELECT COUNT(pfd.rowid) as nb";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pfd";
|
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_demande as pfd";
|
||||||
@ -1142,7 +1142,7 @@ function getPurchaseInvoiceUnpaidOpenTable($maxCount = 500, $socid = 0)
|
|||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire) || (isModEnabled("supplier_invoice") && $user->rights->supplier_invoice->lire)) {
|
if (isModEnabled("supplier_invoice") && ($user->hasRight('fournisseur', 'facture', 'lire') || $user->hasRight('supplier_invoice', 'read'))) {
|
||||||
$facstatic = new FactureFournisseur($db);
|
$facstatic = new FactureFournisseur($db);
|
||||||
|
|
||||||
$sql = "SELECT ff.rowid, ff.ref, ff.fk_statut as status, ff.type, ff.libelle as label, ff.total_ht, ff.total_tva, ff.total_ttc, ff.paye";
|
$sql = "SELECT ff.rowid, ff.ref, ff.fk_statut as status, ff.type, ff.libelle as label, ff.total_ht, ff.total_tva, ff.total_ttc, ff.paye";
|
||||||
|
|||||||
@ -742,3 +742,108 @@ function writePermsInAsciiDoc($file, $destfile)
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Object in ModuleApi File
|
||||||
|
* @param string $file path of file
|
||||||
|
* @param array $objects array of objects in the module
|
||||||
|
* @param string $modulename name of module
|
||||||
|
* @return int 1 if OK, -1 if KO
|
||||||
|
*/
|
||||||
|
function addObjectsToApiFile($file, $objects, $modulename)
|
||||||
|
{
|
||||||
|
if (!file_exists($file)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
$content = file($file);
|
||||||
|
$includeClass = "dol_include_once('/mymodule/class/myobject.class.php');";
|
||||||
|
$props = "public \$myobject;";
|
||||||
|
$varcomented = "@var MyObject \$myobject {@type MyObject}";
|
||||||
|
$constructObj = "\$this->myobject = new MyObject(\$this->db);";
|
||||||
|
|
||||||
|
// add properties and declare them in consturctor
|
||||||
|
foreach ($content as $lineNumber => &$lineContent) {
|
||||||
|
if (strpos($lineContent, $varcomented) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
$lineContent .= "\t * @var ".$object." \$".strtolower($object)." {@type ".$object."}". PHP_EOL;
|
||||||
|
}
|
||||||
|
//var_dump($lineContent);exit;
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $props) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
$lineContent .= "\tpublic \$".strtolower($object).";". PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $constructObj) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
$lineContent .= "\t\t\$this->".strtolower($object)." = new ".$object."(\$this->db);". PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $includeClass) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
$lineContent .= "dol_include_once('/".strtolower($modulename)."/class/".strtolower($object).".class.php');". PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$allContent = implode("", $content);
|
||||||
|
file_put_contents($file, $allContent);
|
||||||
|
|
||||||
|
//add methods for each object
|
||||||
|
$allContent = getFromFile($file, '/*begin methods CRUD*/', '/*end methods CRUD*/');
|
||||||
|
foreach ($objects as $object) {
|
||||||
|
$contentReplaced =str_replace(["myobject","MyObject"], [strtolower($object),$object], $allContent);
|
||||||
|
dolReplaceInFile($file, array('/*end methods CRUD*/' => '/*CRUD FOR '.strtoupper($object).'*/'."\n".$contentReplaced."\n\t".'/*END CRUD FOR '.strtoupper($object).'*/'."\n\t".'/*end methods CRUD*/'));
|
||||||
|
}
|
||||||
|
dolReplaceInFile($file, array($allContent => '','MyModule' => ucfirst($modulename)));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove Object variables and methods from API_Module File
|
||||||
|
* @param string $file file api module
|
||||||
|
* @param string $objectname name of object whant to remove
|
||||||
|
* @param string $modulename name of module
|
||||||
|
* @return int 1 if OK, -1 if KO
|
||||||
|
*/
|
||||||
|
function removeObjectFromApiFile($file, $objectname, $modulename)
|
||||||
|
{
|
||||||
|
$begin = '/*CRUD FOR '.strtoupper($objectname).'*/';
|
||||||
|
$end = '/*END CRUD FOR '.strtoupper($objectname).'*/';
|
||||||
|
$includeClass = "dol_include_once('/".strtolower($modulename)."/class/".strtolower($objectname).".class.php');";
|
||||||
|
$varcomentedDel = "\t * @var ".$objectname." \$".strtolower($objectname)." {@type ".$objectname."}";
|
||||||
|
$propsDel = "\tpublic \$".strtolower($objectname).";";
|
||||||
|
$constructObjDel = "\t\t\$this->".strtolower($objectname)." = new ".$objectname."(\$this->db);";
|
||||||
|
|
||||||
|
if (!file_exists($file)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
$content = file($file);
|
||||||
|
// for delete property and the initialization from the construct
|
||||||
|
foreach ($content as $lineNumber => &$lineContent) {
|
||||||
|
if (strpos($lineContent, $includeClass) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $varcomentedDel) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $propsDel) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
}
|
||||||
|
if (strpos($lineContent, $constructObjDel) !== false) {
|
||||||
|
$lineContent = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$allContent = implode("", $content);
|
||||||
|
file_put_contents($file, $allContent);
|
||||||
|
// for delete methods of object
|
||||||
|
$allContent = getFromFile($file, $begin, $end);
|
||||||
|
$check = dolReplaceInFile($file, array($allContent => ''));
|
||||||
|
if ($check) {
|
||||||
|
dolReplaceInFile($file, array($begin => '', $end => ''));
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|||||||
@ -60,28 +60,28 @@ function commande_prepare_head(Commande $object)
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isModEnabled('expedition_bon') && $user->hasRight('expedition', 'lire'))
|
if ((getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && $user->hasRight('expedition', 'lire'))
|
||||||
|| (isModEnabled('delivery_note') && $user->hasRight('expedition', 'delivery', 'lire'))) {
|
|| (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && $user->hasRight('expedition', 'delivery', 'lire'))) {
|
||||||
$nbShipments = $object->getNbOfShipments();
|
$nbShipments = $object->getNbOfShipments();
|
||||||
$nbReceiption = 0;
|
$nbReceiption = 0;
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id;
|
||||||
$text = '';
|
$text = '';
|
||||||
if (isModEnabled('expedition_bon')) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION')) {
|
||||||
$text .= $langs->trans("Shipments");
|
$text .= $langs->trans("Shipments");
|
||||||
}
|
}
|
||||||
if (isModEnabled('expedition_bon') && isModEnabled('delivery_note')) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
$text .= ' - ';
|
$text .= ' - ';
|
||||||
}
|
}
|
||||||
if (isModEnabled('delivery_note')) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
$text .= $langs->trans("Receivings");
|
$text .= $langs->trans("Receivings");
|
||||||
}
|
}
|
||||||
if ($nbShipments > 0 || $nbReceiption > 0) {
|
if ($nbShipments > 0 || $nbReceiption > 0) {
|
||||||
$text .= '<span class="badge marginleftonlyshort">'.($nbShipments ? $nbShipments : 0);
|
$text .= '<span class="badge marginleftonlyshort">'.($nbShipments ? $nbShipments : 0);
|
||||||
}
|
}
|
||||||
if (isModEnabled('expedition_bon') && isModEnabled('delivery_note') && ($nbShipments > 0 || $nbReceiption > 0)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && ($nbShipments > 0 || $nbReceiption > 0)) {
|
||||||
$text .= ' - ';
|
$text .= ' - ';
|
||||||
}
|
}
|
||||||
if (isModEnabled('expedition_bon') && isModEnabled('delivery_note') && ($nbShipments > 0 || $nbReceiption > 0)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && ($nbShipments > 0 || $nbReceiption > 0)) {
|
||||||
$text .= ($nbReceiption ? $nbReceiption : 0);
|
$text .= ($nbReceiption ? $nbReceiption : 0);
|
||||||
}
|
}
|
||||||
if ($nbShipments > 0 || $nbReceiption > 0) {
|
if ($nbShipments > 0 || $nbReceiption > 0) {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2008-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2008-2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/lib/parsemd.lib.php
|
* \file htdocs/core/lib/parsemd.lib.php
|
||||||
* \brief This file contains functions dedicated to MD parsind.
|
* \brief This file contains functions dedicated to MD parsing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,8 +40,9 @@ function dolMd2Html($content, $parser = 'parsedown', $replaceimagepath = null)
|
|||||||
}
|
}
|
||||||
if ($parser == 'parsedown') {
|
if ($parser == 'parsedown') {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/includes/parsedown/Parsedown.php';
|
include_once DOL_DOCUMENT_ROOT.'/includes/parsedown/Parsedown.php';
|
||||||
$Parsedown = new Parsedown();
|
$parsedown = new Parsedown();
|
||||||
$content = $Parsedown->text($content);
|
$parsedown->setSafeMode(true); // This will escape HTML link <a href=""> into html entities but markdown links are ok
|
||||||
|
$content = $parsedown->text($content);
|
||||||
} else {
|
} else {
|
||||||
$content = nl2br($content);
|
$content = nl2br($content);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,7 +70,7 @@ function product_prepare_head($object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($object->status_buy) || (isModEnabled('margin') && !empty($object->status))) { // If margin is on and product on sell, we may need the cost price even if product os not on purchase
|
if (!empty($object->status_buy) || (isModEnabled('margin') && !empty($object->status))) { // If margin is on and product on sell, we may need the cost price even if product os not on purchase
|
||||||
if ((((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $user->rights->fournisseur->lire)
|
if ((isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && ($user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'read') || $user->hasRight('supplier_invoice', 'read'))
|
||||||
|| (isModEnabled('margin') && $user->hasRight("margin", "liretous"))
|
|| (isModEnabled('margin') && $user->hasRight("margin", "liretous"))
|
||||||
) {
|
) {
|
||||||
if ($usercancreadprice) {
|
if ($usercancreadprice) {
|
||||||
|
|||||||
@ -126,7 +126,7 @@ function project_prepare_head(Project $project, $moreparam = '')
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))
|
if (isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")
|
||||||
|| isModEnabled("propal") || isModEnabled('commande')
|
|| isModEnabled("propal") || isModEnabled('commande')
|
||||||
|| isModEnabled('facture') || isModEnabled('contrat')
|
|| isModEnabled('facture') || isModEnabled('contrat')
|
||||||
|| isModEnabled('ficheinter') || isModEnabled('agenda') || isModEnabled('deplacement') || isModEnabled('stock')) {
|
|| isModEnabled('ficheinter') || isModEnabled('agenda') || isModEnabled('deplacement') || isModEnabled('stock')) {
|
||||||
|
|||||||
@ -42,16 +42,19 @@ function propal_prepare_head($object)
|
|||||||
$head[$h][2] = 'comm';
|
$head[$h][2] = 'comm';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
if ((empty($conf->commande->enabled) && ((isModEnabled("expedition") && isModEnabled('expedition_bon') && $user->rights->expedition->lire)
|
if ((empty($conf->commande->enabled) && ((isModEnabled("expedition") && getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && $user->rights->expedition->lire)
|
||||||
|| (isModEnabled("expedition") && !empty($conf->delivery_note->enabled) && $user->rights->expedition->delivery->lire)))) {
|
|| (isModEnabled("expedition") && getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && $user->rights->expedition->delivery->lire)))) {
|
||||||
$langs->load("sendings");
|
$langs->load("sendings");
|
||||||
$text = '';
|
$text = '';
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/expedition/propal.php?id='.$object->id;
|
$head[$h][0] = DOL_URL_ROOT.'/expedition/propal.php?id='.$object->id;
|
||||||
if (isModEnabled('expedition_bon')) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION')) {
|
||||||
$text = $langs->trans("Shipment");
|
$text = $langs->trans("Shipment");
|
||||||
}
|
}
|
||||||
if (isModEnabled('delivery_note')) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
$text .= '/'.$langs->trans("Receivings");
|
$text .= '/';
|
||||||
|
}
|
||||||
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
|
$text .= $langs->trans("Receivings");
|
||||||
}
|
}
|
||||||
$head[$h][1] = $text;
|
$head[$h][1] = $text;
|
||||||
$head[$h][2] = 'shipping';
|
$head[$h][2] = 'shipping';
|
||||||
|
|||||||
@ -109,6 +109,7 @@ function dolGetRandomBytes($length)
|
|||||||
/**
|
/**
|
||||||
* Encode a string with a symetric encryption. Used to encrypt sensitive data into database.
|
* Encode a string with a symetric encryption. Used to encrypt sensitive data into database.
|
||||||
* Note: If a backup is restored onto another instance with a different $dolibarr_main_instance_unique_id, then decoded value will differ.
|
* Note: If a backup is restored onto another instance with a different $dolibarr_main_instance_unique_id, then decoded value will differ.
|
||||||
|
* This function is called for example by dol_set_const() when saving a sensible data into database configuration table llx_const.
|
||||||
*
|
*
|
||||||
* @param string $chain string to encode
|
* @param string $chain string to encode
|
||||||
* @param string $key If '', we use $dolibarr_main_instance_unique_id
|
* @param string $key If '', we use $dolibarr_main_instance_unique_id
|
||||||
|
|||||||
@ -47,7 +47,7 @@ function shipping_prepare_head($object)
|
|||||||
$head[$h][2] = 'shipping';
|
$head[$h][2] = 'shipping';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
if ($conf->delivery_note->enabled && $user->rights->expedition->delivery->lire) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY') && $user->rights->expedition->delivery->lire) {
|
||||||
// delivery link
|
// delivery link
|
||||||
$object->fetchObjectLinked($object->id, $object->element);
|
$object->fetchObjectLinked($object->id, $object->element);
|
||||||
if (isset($object->linkedObjectsIds['delivery']) && is_array($object->linkedObjectsIds['delivery']) && count($object->linkedObjectsIds['delivery']) > 0) { // If there is a delivery
|
if (isset($object->linkedObjectsIds['delivery']) && is_array($object->linkedObjectsIds['delivery']) && count($object->linkedObjectsIds['delivery']) > 0) { // If there is a delivery
|
||||||
@ -133,7 +133,7 @@ function delivery_prepare_head($object)
|
|||||||
$h = 0;
|
$h = 0;
|
||||||
$head = array();
|
$head = array();
|
||||||
|
|
||||||
if (isModEnabled('expedition_bon') && $user->rights->expedition->lire) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_EXPEDITION') && $user->rights->expedition->lire) {
|
||||||
$head[$h][0] = DOL_URL_ROOT."/expedition/card.php?id=".$object->origin_id;
|
$head[$h][0] = DOL_URL_ROOT."/expedition/card.php?id=".$object->origin_id;
|
||||||
$head[$h][1] = $langs->trans("SendingCard");
|
$head[$h][1] = $langs->trans("SendingCard");
|
||||||
$head[$h][2] = 'shipping';
|
$head[$h][2] = 'shipping';
|
||||||
@ -236,13 +236,13 @@ function show_list_sending_receive($origin, $origin_id, $filter = '')
|
|||||||
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end,";
|
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end,";
|
||||||
$sql .= " ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id,";
|
$sql .= " ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id,";
|
||||||
$sql .= " e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
|
$sql .= " e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
|
||||||
//if ($conf->delivery_note->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
|
//if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
|
||||||
$sql .= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch,';
|
$sql .= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch,';
|
||||||
$sql .= ' p.description as product_desc';
|
$sql .= ' p.description as product_desc';
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."expedition as e";
|
$sql .= ", ".MAIN_DB_PREFIX."expedition as e";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj";
|
$sql .= ", ".MAIN_DB_PREFIX.$origin."det as obj";
|
||||||
//if ($conf->delivery_note->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line";
|
//if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."delivery as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."deliverydet as ld ON ld.fk_delivery = l.rowid AND obj.rowid = ld.fk_origin_line";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid";
|
||||||
//TODO Add link to expeditiondet_batch
|
//TODO Add link to expeditiondet_batch
|
||||||
$sql .= " WHERE e.entity IN (".getEntity('expedition').")";
|
$sql .= " WHERE e.entity IN (".getEntity('expedition').")";
|
||||||
@ -285,7 +285,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '')
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}*/
|
}*/
|
||||||
if (!empty($conf->delivery_note->enabled)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
print '<td>'.$langs->trans("DeliveryOrder").'</td>';
|
print '<td>'.$langs->trans("DeliveryOrder").'</td>';
|
||||||
//print '<td class="center">'.$langs->trans("QtyReceived").'</td>';
|
//print '<td class="center">'.$langs->trans("QtyReceived").'</td>';
|
||||||
print '<td class="right">'.$langs->trans("DeliveryDate").'</td>';
|
print '<td class="right">'.$langs->trans("DeliveryDate").'</td>';
|
||||||
@ -427,7 +427,7 @@ function show_list_sending_receive($origin, $origin_id, $filter = '')
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Informations on receipt
|
// Informations on receipt
|
||||||
if (!empty($conf->delivery_note->enabled)) {
|
if (getDolGlobalInt('MAIN_SUBMODULE_DELIVERY')) {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/delivery/class/delivery.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/delivery/class/delivery.class.php';
|
||||||
$expedition->id = $objp->sendingid;
|
$expedition->id = $objp->sendingid;
|
||||||
$expedition->fetchObjectLinked($expedition->id, $expedition->element);
|
$expedition->fetchObjectLinked($expedition->id, $expedition->element);
|
||||||
|
|||||||
@ -3,18 +3,16 @@ README (english)
|
|||||||
Decription of htdocs/core/login directory
|
Decription of htdocs/core/login directory
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
This directory contains files that handle way to validate passwords.
|
This directory contains files that handle the way to validate passwords.
|
||||||
|
|
||||||
If you want to add a new password checker function, just add a file in
|
If you want to add a new password checker function, just add a file in this directory that follow an example of an already existing files.
|
||||||
this directory that follow example of already existing files.
|
|
||||||
This file must be called for example :
|
This file must be called for example :
|
||||||
functions_mypasschecker.php
|
functions_mypasschecker.php
|
||||||
|
|
||||||
Edit function name to call it:
|
Edit the function name to call it:
|
||||||
check_user_mypasschecker
|
check_user_mypasschecker
|
||||||
|
|
||||||
Change code of this function to return true if couple
|
Change code of this function to return true if couple $usertotest / $passwordtotest is ok for you.
|
||||||
$usertotest / $passwordtotest is ok for you.
|
|
||||||
|
|
||||||
Then, you must edit you conf.php file to change the value of
|
Then, you must edit you conf.php file to change the value of
|
||||||
$dolibarr_main_authentication
|
$dolibarr_main_authentication
|
||||||
@ -24,3 +22,8 @@ mypasschecker
|
|||||||
Once this is done, when you log in to Dolibarr, the function
|
Once this is done, when you log in to Dolibarr, the function
|
||||||
check_user_mypasschecker in this file is called.
|
check_user_mypasschecker in this file is called.
|
||||||
If the function return true and login exists, login is accepted.
|
If the function return true and login exists, login is accepted.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
See page https://wiki.dolibarr.org/index.php?title=Authentication,_SSO_and_SSL for more information.
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,9 @@
|
|||||||
* \file htdocs/core/login/functions_openid.php
|
* \file htdocs/core/login/functions_openid.php
|
||||||
* \ingroup core
|
* \ingroup core
|
||||||
* \brief Authentication functions for OpenId mode
|
* \brief Authentication functions for OpenId mode
|
||||||
|
*
|
||||||
|
* This authentication method is based on "OpenID v2" and is deprecated.
|
||||||
|
* Use instead the method "OpenID Connect".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/openid.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/openid.class.php';
|
||||||
@ -70,7 +73,7 @@ function check_user_password_openid($usertotest, $passwordtotest, $entitytotest)
|
|||||||
$sql = "SELECT login, entity, datestartvalidity, dateendvalidity";
|
$sql = "SELECT login, entity, datestartvalidity, dateendvalidity";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."user";
|
$sql .= " FROM ".MAIN_DB_PREFIX."user";
|
||||||
$sql .= " WHERE openid = '".$db->escape(GETPOST('openid_identity'))."'";
|
$sql .= " WHERE openid = '".$db->escape(GETPOST('openid_identity'))."'";
|
||||||
$sql .= " AND entity IN (0,".($_SESSION["dol_entity"] ? ((int) $_SESSION["dol_entity"]) : 1).")";
|
$sql .= " AND entity IN (0,".(!empty($_SESSION["dol_entity"]) ? ((int) $_SESSION["dol_entity"]) : 1).")";
|
||||||
|
|
||||||
dol_syslog("functions_openid::check_user_password_openid", LOG_DEBUG);
|
dol_syslog("functions_openid::check_user_password_openid", LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|||||||
148
htdocs/core/login/functions_openid_connect.php
Normal file
148
htdocs/core/login/functions_openid_connect.php
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2022 Jeritiana Ravelojaona <jeritiana.rav@smartone.ai>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/login/functions_openid_connect.php
|
||||||
|
* \ingroup core
|
||||||
|
* \brief OpenID Connect: Authorization Code flow authentication
|
||||||
|
*
|
||||||
|
* See https://github.com/Dolibarr/dolibarr/issues/22740 for more information about setup openid_connect
|
||||||
|
*/
|
||||||
|
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check validity of user/password/entity
|
||||||
|
* If test is ko, reason must be filled into $_SESSION["dol_loginmesg"]
|
||||||
|
*
|
||||||
|
* @param string $usertotest Login
|
||||||
|
* @param string $passwordtotest Password
|
||||||
|
* @param int $entitytotest Number of instance (always 1 if module multicompany not enabled)
|
||||||
|
* @return string Login if OK, '' if KO
|
||||||
|
*/
|
||||||
|
function check_user_password_openid_connect($usertotest, $passwordtotest, $entitytotest)
|
||||||
|
{
|
||||||
|
global $db, $conf, $langs;
|
||||||
|
|
||||||
|
// Force master entity in transversal mode
|
||||||
|
$entity = $entitytotest;
|
||||||
|
if (isModEnabled('multicompany') && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) {
|
||||||
|
$entity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$login = '';
|
||||||
|
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect usertotest=".$usertotest." passwordtotest=".preg_replace('/./', '*', $passwordtotest)." entitytotest=".$entitytotest);
|
||||||
|
|
||||||
|
// Step 1 is done by user: request an authorization code
|
||||||
|
|
||||||
|
if (GETPOSTISSET('username')) {
|
||||||
|
// OIDC does not require credentials here: pass on to next auth handler
|
||||||
|
$_SESSION["dol_loginmesg"] = "Not an OpenID Connect flow";
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect not an OIDC flow");
|
||||||
|
} elseif (GETPOSTISSET('code')) {
|
||||||
|
$auth_code = GETPOST('code', 'aZ09');
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect code=".$auth_code);
|
||||||
|
|
||||||
|
// Step 2: turn the authorization code into an access token, using client_secret
|
||||||
|
$auth_param = [
|
||||||
|
'grant_type' => 'authorization_code',
|
||||||
|
'client_id' => $conf->global->MAIN_AUTHENTICATION_OIDC_CLIENT_ID,
|
||||||
|
'client_secret' => $conf->global->MAIN_AUTHENTICATION_OIDC_CLIENT_SECRET,
|
||||||
|
'code' => $auth_code,
|
||||||
|
'redirect_uri' => $conf->global->MAIN_AUTHENTICATION_OIDC_REDIRECT_URL
|
||||||
|
];
|
||||||
|
|
||||||
|
$token_response = getURLContent($conf->global->MAIN_AUTHENTICATION_OIDC_TOKEN_URL, 'POST', http_build_query($auth_param));
|
||||||
|
$token_content = json_decode($token_response['content']);
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect /token=".print_r($token_response, true), LOG_DEBUG);
|
||||||
|
|
||||||
|
if (property_exists($token_content, 'access_token')) {
|
||||||
|
// Step 3: retrieve user info using token
|
||||||
|
$userinfo_headers = array('Authorization: Bearer '.$token_content->access_token);
|
||||||
|
$userinfo_response = getURLContent($conf->global->MAIN_AUTHENTICATION_OIDC_USERINFO_URL, 'GET', '', 1, $userinfo_headers);
|
||||||
|
$userinfo_content = json_decode($userinfo_response['content']);
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect /userinfo=".print_r($userinfo_response, true), LOG_DEBUG);
|
||||||
|
|
||||||
|
// Get the user attribute (claim) matching the Dolibarr login
|
||||||
|
$login_claim = 'email'; // default
|
||||||
|
if (!empty($conf->global->MAIN_AUTHENTICATION_OIDC_LOGIN_CLAIM)) {
|
||||||
|
$login_claim = $conf->global->MAIN_AUTHENTICATION_OIDC_LOGIN_CLAIM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property_exists($userinfo_content, $login_claim)) {
|
||||||
|
// Success: retrieve claim to return to Dolibarr as login
|
||||||
|
$sql = 'SELECT login, entity, datestartvalidity, dateendvalidity';
|
||||||
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'user';
|
||||||
|
$sql .= " WHERE login = '".$db->escape($userinfo_content->$login_claim)."'";
|
||||||
|
$sql .= ' AND entity IN (0,'.(array_key_exists('dol_entity', $_SESSION) ? ((int) $_SESSION["dol_entity"]) : 1).')';
|
||||||
|
|
||||||
|
dol_syslog("functions_openid::check_user_password_openid", LOG_DEBUG);
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
if ($obj) {
|
||||||
|
// TODO I think we can remove this because this is done now natively by core after calling check_user_password_openid_connect()
|
||||||
|
$now = dol_now();
|
||||||
|
if ($obj->datestartvalidity && $db->jdate($obj->datestartvalidity) > $now) {
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array('main', 'errors'));
|
||||||
|
$_SESSION["dol_loginmesg"] = $langs->transnoentitiesnoconv("ErrorLoginDateValidity");
|
||||||
|
return '--bad-login-validity--';
|
||||||
|
}
|
||||||
|
if ($obj->dateendvalidity && $db->jdate($obj->dateendvalidity) < dol_get_first_hour($now)) {
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array('main', 'errors'));
|
||||||
|
$_SESSION["dol_loginmesg"] = $langs->transnoentitiesnoconv("ErrorLoginDateValidity");
|
||||||
|
return '--bad-login-validity--';
|
||||||
|
}
|
||||||
|
|
||||||
|
$login = $obj->login;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($userinfo_content->error) {
|
||||||
|
// Got user info response but content is an error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Error in OAuth 2.0 flow (".$userinfo_content->error_description.")";
|
||||||
|
} elseif ($userinfo_response['http_code'] == 200) {
|
||||||
|
// Claim does not exist
|
||||||
|
$_SESSION["dol_loginmesg"] = "OpenID Connect claim not found: ".$login_claim;
|
||||||
|
} elseif ($userinfo_response['curl_error_no']) {
|
||||||
|
// User info request error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Network error: ".$userinfo_response['curl_error_msg']." (".$userinfo_response['curl_error_no'].")";
|
||||||
|
} else {
|
||||||
|
// Other user info request error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Userinfo request error (".$userinfo_response['http_code'].")";
|
||||||
|
}
|
||||||
|
} elseif ($token_content->error) {
|
||||||
|
// Got token response but content is an error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Error in OAuth 2.0 flow (".$token_content->error_description.")";
|
||||||
|
} elseif ($token_response['curl_error_no']) {
|
||||||
|
// Token request error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Network error: ".$token_response['curl_error_msg']." (".$token_response['curl_error_no'].")";
|
||||||
|
} else {
|
||||||
|
// Other token request error
|
||||||
|
$_SESSION["dol_loginmesg"] = "Token request error (".$token_response['http_code'].")";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No code received
|
||||||
|
$_SESSION["dol_loginmesg"] = "Error in OAuth 2.0 flow (no code received)";
|
||||||
|
}
|
||||||
|
|
||||||
|
dol_syslog("functions_openid_connect::check_user_password_openid_connect END");
|
||||||
|
|
||||||
|
return !empty($login) ? $login : false;
|
||||||
|
}
|
||||||
@ -12,13 +12,13 @@ delete from llx_menu where menu_handler=__HANDLER__ and entity=__ENTITY__;
|
|||||||
-- Top-Menu
|
-- Top-Menu
|
||||||
-- old: (module, enabled, rowid, ...)
|
-- old: (module, enabled, rowid, ...)
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 1__+MAX_llx_menu__, '', '1', __HANDLER__, 'top', 'home', '', 0, '/index.php?mainmenu=home&leftmenu=', 'Home', -1, '', '', '', 2, 10, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 1__+MAX_llx_menu__, '', '1', __HANDLER__, 'top', 'home', '', 0, '/index.php?mainmenu=home&leftmenu=', 'Home', -1, '', '', '', 2, 10, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 2__+MAX_llx_menu__, 'societe|fournisseur|supplier_order|supplier_invoice', '(isModEnabled("societe") && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) || isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || $conf->supplier_order->enabled || $conf->supplier_invoice->enabled))', __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 2__+MAX_llx_menu__, 'societe|fournisseur|supplier_order|supplier_invoice', '(isModEnabled("societe") && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS) || isModeEnabled('supplier_order') || isModEnabled('supplier_invoice')))', __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 3__+MAX_llx_menu__, 'product|service', '$conf->product->enabled || $conf->service->enabled', __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'ProductsPipeServices', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 30, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 3__+MAX_llx_menu__, 'product|service', 'isModEnabled("product") || isModEnabled("service")', __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'ProductsPipeServices', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 30, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 16__+MAX_llx_menu__, 'bom|mrp', '$conf->bom->enabled || $conf->mrp->enabled', __HANDLER__, 'top', 'mrp', '', 0, '/mrp/index.php?mainmenu=mrp&leftmenu=', 'MRP', -1, 'mrp', '$user->rights->bom->read||$user->rights->mrp->read', '', 0, 31, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 16__+MAX_llx_menu__, 'bom|mrp', '$conf->bom->enabled || $conf->mrp->enabled', __HANDLER__, 'top', 'mrp', '', 0, '/mrp/index.php?mainmenu=mrp&leftmenu=', 'MRP', -1, 'mrp', '$user->rights->bom->read||$user->rights->mrp->read', '', 0, 31, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 7__+MAX_llx_menu__, 'projet', '$conf->project->enabled', __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 32, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 7__+MAX_llx_menu__, 'projet', '$conf->project->enabled', __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 32, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 5__+MAX_llx_menu__, 'propal|commande|fournisseur|supplier_order|supplier_invoice|contrat|ficheinter', '$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled', __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 40, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 5__+MAX_llx_menu__, 'propal|commande|fournisseur|supplier_order|supplier_invoice|contrat|ficheinter', '$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled', __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 40, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 6__+MAX_llx_menu__, 'facture|don|tax|salaries|loan|banque', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'top', 'billing', '', 0, '/compta/index.php?mainmenu=billing&leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read || $user->rights->banque->lire', '', 2, 50, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 6__+MAX_llx_menu__, 'facture|don|tax|salaries|loan|banque', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled || isModEnabled("banque")', __HANDLER__, 'top', 'billing', '', 0, '/compta/index.php?mainmenu=billing&leftmenu=', 'MenuFinancial', -1, 'compta', '$user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read || $user->rights->banque->lire', '', 2, 50, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 14__+MAX_llx_menu__, 'banque|prelevement', '$conf->banque->enabled || $conf->prelevement->enabled', __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/list.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 52, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 14__+MAX_llx_menu__, 'banque|prelevement', 'isModEnabled("banque") || isModEnabled("prelevement")', __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/list.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 52, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 9__+MAX_llx_menu__, 'comptabilite|accounting|asset', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->asset->enabled', __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=accountancy', 'MenuAccountancy', -1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->mouvements->lire || $user->rights->asset->read', '', 2, 54, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 9__+MAX_llx_menu__, 'comptabilite|accounting|asset', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->asset->enabled', __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=accountancy', 'MenuAccountancy', -1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->mouvements->lire || $user->rights->asset->read', '', 2, 54, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 8__+MAX_llx_menu__, '', '', __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&leftmenu=', 'Tools', -1, 'other', '', '', 2, 90, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 8__+MAX_llx_menu__, '', '', __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&leftmenu=', 'Tools', -1, 'other', '', '', 2, 90, __ENTITY__);
|
||||||
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 13__+MAX_llx_menu__, 'adherent', '$conf->adherent->enabled', __HANDLER__, 'top', 'members', '', 0, '/adherents/index.php?mainmenu=members&leftmenu=', 'Members', -1, 'members', '$user->rights->adherent->lire', '', 2, 19, __ENTITY__);
|
insert into llx_menu (rowid, module, enabled, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ( 13__+MAX_llx_menu__, 'adherent', '$conf->adherent->enabled', __HANDLER__, 'top', 'members', '', 0, '/adherents/index.php?mainmenu=members&leftmenu=', 'Members', -1, 'members', '$user->rights->adherent->lire', '', 2, 19, __ENTITY__);
|
||||||
@ -86,8 +86,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?mainmenu=companies&leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?mainmenu=companies&leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&leftmenu=thirdparties', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&leftmenu=thirdparties', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=supplier&action=create&type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=prospects&action=create&type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&leftmenu=prospects&action=create&type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
|
||||||
@ -99,7 +99,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 602__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 602__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 604__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=p', 'ThirdPartyProspects', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 604__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=p', 'ThirdPartyProspects', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 605__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=c', 'ThirdPartyCustomers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 605__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=c', 'ThirdPartyCustomers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && (isModEnabled("supplier_order") || isModEnabled("supplier_invoice"))', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 607__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=o', 'Others', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe")', __HANDLER__, 'left', 607__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&leftmenu=contacts&type=o', 'Others', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 4, __ENTITY__);
|
||||||
|
|
||||||
-- Third parties - Category customer
|
-- Third parties - Category customer
|
||||||
@ -107,18 +107,18 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 651__+MAX_llx_menu__, 'companies', '', 650__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=1', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 651__+MAX_llx_menu__, 'companies', '', 650__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=1', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
||||||
|
|
||||||
-- Third parties - Category supplier
|
-- Third parties - Category supplier
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '(isModEnabled("supplier_proposal") || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
||||||
|
|
||||||
-- Third parties - Category contact
|
-- Third parties - Category contact
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 670__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=4', 'ContactCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 670__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&leftmenu=cat&type=4', 'ContactCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 671__+MAX_llx_menu__, 'companies', '', 670__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=4', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("societe") && $conf->categorie->enabled', __HANDLER__, 'left', 671__+MAX_llx_menu__, 'companies', '', 670__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&action=create&type=4', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
|
||||||
|
|
||||||
-- Product - Product
|
-- Product - Product
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2800__+MAX_llx_menu__, 'products', 'product', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&leftmenu=product&type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("product")', __HANDLER__, 'left', 2800__+MAX_llx_menu__, 'products', 'product', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&leftmenu=product&type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/card.php?mainmenu=products&leftmenu=product&action=create&type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("product")', __HANDLER__, 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/card.php?mainmenu=products&leftmenu=product&action=create&type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/list.php?mainmenu=products&leftmenu=product&type=0', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("product")', __HANDLER__, 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/list.php?mainmenu=products&leftmenu=product&type=0', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?mainmenu=products&type=0', 'MenuStocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("product")', __HANDLER__, 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?mainmenu=products&type=0', 'MenuStocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?mainmenu=products&type=0&search_subjecttolotserial=1', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?mainmenu=products&type=0&search_subjecttolotserial=1', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2806__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stock/productlot_list.php?mainmenu=products', 'LotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2806__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stock/productlot_list.php?mainmenu=products', 'LotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 6, __ENTITY__);
|
||||||
|
|
||||||
@ -127,9 +127,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&id=all&leftmenu=stats&type=0', 'Statistics', 1, 'main', '$user->rights->produit->lire', '', 2, 8, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&id=all&leftmenu=stats&type=0', 'Statistics', 1, 'main', '$user->rights->produit->lire', '', 2, 8, __ENTITY__);
|
||||||
|
|
||||||
-- Product - Services
|
-- Product - Services
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2900__+MAX_llx_menu__, 'products', 'service', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&leftmenu=service&type=1', 'Services', 0, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("service")', __HANDLER__, 'left', 2900__+MAX_llx_menu__, 'products', 'service', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&leftmenu=service&type=1', 'Services', 0, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/card.php?mainmenu=products&leftmenu=service&action=create&type=1', 'NewService', 1, 'products', '$user->rights->service->creer', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("service")', __HANDLER__, 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/card.php?mainmenu=products&leftmenu=service&action=create&type=1', 'NewService', 1, 'products', '$user->rights->service->creer', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/list.php?mainmenu=products&leftmenu=service&type=1', 'List', 1, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("service")', __HANDLER__, 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/list.php?mainmenu=products&leftmenu=service&type=1', 'List', 1, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2903__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&id=all&leftmenu=stats&type=1', 'Statistics', 1, 'main', '$user->rights->service->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2903__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&id=all&leftmenu=stats&type=1', 'Statistics', 1, 'main', '$user->rights->service->lire', '', 2, 5, __ENTITY__);
|
||||||
|
|
||||||
-- Product - Stocks
|
-- Product - Stocks
|
||||||
@ -251,7 +251,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?mainmenu=billing&leftmenu=donations', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
|
-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?mainmenu=billing&leftmenu=donations', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
|
||||||
|
|
||||||
-- Special expenses
|
-- Special expenses
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?mainmenu=billing&leftmenu=tax', 'MenuTaxesAndSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || isModEnabled("banque")', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?mainmenu=billing&leftmenu=tax', 'MenuTaxesAndSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (isModEnabled("banque") && $user->rights->banque->lire)', '', 0, 6, __ENTITY__);
|
||||||
|
|
||||||
-- Social contributions
|
-- Social contributions
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'billing', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/list.php?mainmenu=billing&leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'billing', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/list.php?mainmenu=billing&leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
|
||||||
@ -279,9 +279,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)', __HANDLER__, 'left', 2223__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/calc.php?mainmenu=billing&leftmenu=tax_loan', 'Calculator', 1, 'companies', '$user->rights->loan->calc', '', 0, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)', __HANDLER__, 'left', 2223__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/calc.php?mainmenu=billing&leftmenu=tax_loan', 'Calculator', 1, 'companies', '$user->rights->loan->calc', '', 0, 4, __ENTITY__);
|
||||||
|
|
||||||
-- Various payments
|
-- Various payments
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)', __HANDLER__, 'left', 2350__+MAX_llx_menu__, 'billing', 'tax_various', 6__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&leftmenu=tax_various', 'MenuVariousPayment', 0, 'banks', '$user->rights->banque->lire', '', 0, 30, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)', __HANDLER__, 'left', 2350__+MAX_llx_menu__, 'billing', 'tax_various', 6__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&leftmenu=tax_various', 'MenuVariousPayment', 0, 'banks', '$user->rights->banque->lire', '', 0, 30, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2351__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/card.php?mainmenu=billing&leftmenu=tax_various&action=create', 'New', 1, 'various_payment', '$user->rights->banque->modifier', '', 0, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && $leftmenu=="tax_various"', __HANDLER__, 'left', 2351__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/card.php?mainmenu=billing&leftmenu=tax_various&action=create', 'New', 1, 'various_payment', '$user->rights->banque->modifier', '', 0, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2352__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&leftmenu=tax_various', 'List', 1, 'various_payment', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && $leftmenu=="tax_various"', __HANDLER__, 'left', 2352__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&leftmenu=tax_various', 'List', 1, 'various_payment', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
||||||
|
|
||||||
-- Accounting (Double entries)
|
-- Accounting (Double entries)
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2400__+MAX_llx_menu__, 'accountancy', 'accountancy', 9__+MAX_llx_menu__, '/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy', 'MenuAccountancy', 0, 'main', '! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire', '', 0, 7, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2400__+MAX_llx_menu__, 'accountancy', 'accountancy', 9__+MAX_llx_menu__, '/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy', 'MenuAccountancy', 0, 'main', '! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire', '', 0, 7, __ENTITY__);
|
||||||
@ -314,9 +314,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)', __HANDLER__, 'left', 2401__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_customer', 2400__+MAX_llx_menu__, '/accountancy/customer/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer', 'CustomersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)', __HANDLER__, 'left', 2401__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_customer', 2400__+MAX_llx_menu__, '/accountancy/customer/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer', 'CustomersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2402__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2402__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2403__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES) && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2403__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 4, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && isModEnabled("supplier_invoice") && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && isModEnabled("supplier_invoice") && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && (isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_invoice")) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && isModEnabled("supplier_invoice") && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES) && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)', __HANDLER__, 'left', 2420__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_expensereport', 2400__+MAX_llx_menu__, '/accountancy/expensereport/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport', 'ExpenseReportsVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)', __HANDLER__, 'left', 2420__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_expensereport', 2400__+MAX_llx_menu__, '/accountancy/expensereport/index.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport', 'ExpenseReportsVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2421__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2421__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2422__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS) && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2422__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
|
||||||
@ -371,33 +371,33 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
|
|||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3006__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy', 'MenuListTypeAssets', 3, 'assets', '($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->asset->model_advance->read:$user->rights->asset->read)', '', 0, 25, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->asset->enabled && $leftmenu=="asset"', __HANDLER__, 'left', 3006__+MAX_llx_menu__, 'asset', '', 3004__+MAX_llx_menu__, '/asset/type.php?mainmenu=accountancy', 'MenuListTypeAssets', 3, 'assets', '($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->asset->model_advance->read:$user->rights->asset->read)', '', 0, 25, __ENTITY__);
|
||||||
|
|
||||||
-- Check deposit
|
-- Check deposit
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1711__+MAX_llx_menu__, 'accountancy', 'checks', 14__+MAX_llx_menu__, '/compta/paiement/cheque/index.php?mainmenu=bank&leftmenu=checks', 'MenuChequeDeposits', 0, 'bills', '$user->rights->banque->lire', '', 2, 9, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && isModEnabled("banque") && (isModEnabled("facture") || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1711__+MAX_llx_menu__, 'accountancy', 'checks', 14__+MAX_llx_menu__, '/compta/paiement/cheque/index.php?mainmenu=bank&leftmenu=checks', 'MenuChequeDeposits', 0, 'bills', '$user->rights->banque->lire', '', 2, 9, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1712__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/card.php?mainmenu=bank&leftmenu=checks&action=new', 'NewCheckDeposit', 1, 'compta', '$user->rights->banque->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && isModEnabled("banque")pty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1712__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/card.php?mainmenu=bank&leftmenu=checks&action=new', 'NewCheckDeposit', 1, 'compta', '$user->rights->banque->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1713__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/list.php?mainmenu=bank&leftmenu=checks', 'List', 1, 'bills', '$user->rights->banque->lire', '', 2, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && isModEnabled("banque") && (isModEnabled("facture") || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1713__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/list.php?mainmenu=bank&leftmenu=checks', 'List', 1, 'bills', '$user->rights->banque->lire', '', 2, 1, __ENTITY__);
|
||||||
|
|
||||||
-- PaymentByDirectDebit
|
-- PaymentByDirectDebit
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled', __HANDLER__, 'left', 2500__+MAX_llx_menu__, 'accountancy', 'withdraw', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?mainmenu=bank&leftmenu=withdraw', 'PaymentByDirectDebit', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement")', __HANDLER__, 'left', 2500__+MAX_llx_menu__, 'accountancy', 'withdraw', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?mainmenu=bank&leftmenu=withdraw', 'PaymentByDirectDebit', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2502__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/create.php?mainmenu=bank&leftmenu=withdraw', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="withdraw"', __HANDLER__, 'left', 2502__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/create.php?mainmenu=bank&leftmenu=withdraw', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2503__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/orders_list.php?mainmenu=bank&leftmenu=withdraw', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="withdraw"', __HANDLER__, 'left', 2503__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/orders_list.php?mainmenu=bank&leftmenu=withdraw', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2504__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/list.php?mainmenu=bank&leftmenu=withdraw', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="withdraw"', __HANDLER__, 'left', 2504__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/list.php?mainmenu=bank&leftmenu=withdraw', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2506__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/rejets.php?mainmenu=bank&leftmenu=withdraw', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="withdraw"', __HANDLER__, 'left', 2506__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/rejets.php?mainmenu=bank&leftmenu=withdraw', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2507__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/stats.php?mainmenu=bank&leftmenu=withdraw', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="withdraw"', __HANDLER__, 'left', 2507__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/stats.php?mainmenu=bank&leftmenu=withdraw', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
|
||||||
|
|
||||||
-- PaymentByCreditTransfer
|
-- PaymentByCreditTransfer
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled', __HANDLER__, 'left', 2510__+MAX_llx_menu__, 'accountancy', 'banktransfer', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'PaymentByBankTransfer', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement")', __HANDLER__, 'left', 2510__+MAX_llx_menu__, 'accountancy', 'banktransfer', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'PaymentByBankTransfer', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2512__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/create.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2512__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/create.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2513__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/orders_list.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2513__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/orders_list.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2514__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/list.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2514__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/list.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2516__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/rejets.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2516__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/rejets.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2517__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/stats.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("prelevement") && $leftmenu=="banktransfer"', __HANDLER__, 'left', 2517__+MAX_llx_menu__, 'accountancy', '', 2510__+MAX_llx_menu__, '/compta/prelevement/stats.php?mainmenu=bank&leftmenu=banktransfer&type=bank-transfer', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
|
||||||
|
|
||||||
-- Bank
|
-- Bank
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled', __HANDLER__, 'left', 2600__+MAX_llx_menu__, 'accountancy', 'bank', 14__+MAX_llx_menu__, '/compta/bank/list.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', 0, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque")', __HANDLER__, 'left', 2600__+MAX_llx_menu__, 'accountancy', 'bank', 14__+MAX_llx_menu__, '/compta/bank/list.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', 0, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2601__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/card.php?mainmenu=bank&action=create&leftmenu=bank', 'MenuNewFinancialAccount', 1, 'banks', '$user->rights->banque->configurer', '', 0, 0, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2601__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/card.php?mainmenu=bank&action=create&leftmenu=bank', 'MenuNewFinancialAccount', 1, 'banks', '$user->rights->banque->configurer', '', 0, 0, __ENTITY__);
|
||||||
-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2602__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/categ.php?mainmenu=bank&leftmenu=bank', 'Rubriques', 1, 'categories', '$user->rights->banque->configurer', '', 0, 1, __ENTITY__);
|
-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2602__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/categ.php?mainmenu=bank&leftmenu=bank', 'Rubriques', 1, 'categories', '$user->rights->banque->configurer', '', 0, 1, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries_list.php?mainmenu=bank&leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries_list.php?mainmenu=bank&leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?mainmenu=bank&leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?mainmenu=bank&leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?mainmenu=bank&leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'isModEnabled("banque") && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?mainmenu=bank&leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
|
||||||
|
|
||||||
-- Bank - Categories
|
-- Bank - Categories
|
||||||
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?mainmenu=bank&leftmenu=bank&type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?mainmenu=bank&leftmenu=bank&type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
|
||||||
|
|||||||
@ -400,7 +400,7 @@ function print_left_auguria_menu($db, $menu_array_before, $menu_array_after, &$t
|
|||||||
$nature = "sells";
|
$nature = "sells";
|
||||||
}
|
}
|
||||||
if ($objp->nature == 3
|
if ($objp->nature == 3
|
||||||
&& ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_invoice'))
|
&& isModEnabled('supplier_invoice')
|
||||||
&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {
|
&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {
|
||||||
$nature = "purchases";
|
$nature = "purchases";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -123,7 +123,7 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
|
|||||||
'enabled'=> ((isModEnabled('societe') &&
|
'enabled'=> ((isModEnabled('societe') &&
|
||||||
(empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
|
(empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
|
||||||
)
|
)
|
||||||
|| ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice'))
|
|| (isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice'))
|
||||||
),
|
),
|
||||||
'perms'=> ($user->hasRight('societe', 'lire') || $user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')),
|
'perms'=> ($user->hasRight('societe', 'lire') || $user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')),
|
||||||
'module'=>'societe|fournisseur'
|
'module'=>'societe|fournisseur'
|
||||||
@ -1238,7 +1238,7 @@ function get_left_menu_thridparties($mainmenu, &$newmenu, $usemenuhider = 1, $le
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Suppliers
|
// Suppliers
|
||||||
if (isModEnabled('societe') && (((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) || isModEnabled('supplier_proposal'))) {
|
if (isModEnabled('societe') && (isModEnabled('supplier_order') || isModEnabled('supplier_invoice') || isModEnabled('supplier_proposal'))) {
|
||||||
$langs->load("suppliers");
|
$langs->load("suppliers");
|
||||||
$newmenu->add("/societe/list.php?type=f&leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 2, ($user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')), '', $mainmenu, 'suppliers');
|
$newmenu->add("/societe/list.php?type=f&leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 2, ($user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')), '', $mainmenu, 'suppliers');
|
||||||
$newmenu->add("/societe/card.php?leftmenu=suppliers&action=create&type=f", $langs->trans("MenuNewSupplier"), 3, $user->hasRight('societe', 'creer') && ($user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')));
|
$newmenu->add("/societe/card.php?leftmenu=suppliers&action=create&type=f", $langs->trans("MenuNewSupplier"), 3, $user->hasRight('societe', 'creer') && ($user->hasRight('fournisseur', 'lire') || $user->hasRight('supplier_order', 'lire') || $user->hasRight('supplier_invoice', 'lire') || $user->hasRight('supplier_proposal', 'lire')));
|
||||||
@ -1259,7 +1259,7 @@ function get_left_menu_thridparties($mainmenu, &$newmenu, $usemenuhider = 1, $le
|
|||||||
$newmenu->add("/categories/index.php?leftmenu=cat&type=2", $menutoshow, 1, $user->hasRight('categorie', 'lire'), '', $mainmenu, 'cat');
|
$newmenu->add("/categories/index.php?leftmenu=cat&type=2", $menutoshow, 1, $user->hasRight('categorie', 'lire'), '', $mainmenu, 'cat');
|
||||||
}
|
}
|
||||||
// Categories suppliers
|
// Categories suppliers
|
||||||
if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
if (isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
||||||
$newmenu->add("/categories/index.php?leftmenu=catfournish&type=1", $langs->trans("SuppliersCategoriesShort"), 1, $user->hasRight('categorie', 'lire'));
|
$newmenu->add("/categories/index.php?leftmenu=catfournish&type=1", $langs->trans("SuppliersCategoriesShort"), 1, $user->hasRight('categorie', 'lire'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1275,7 +1275,7 @@ function get_left_menu_thridparties($mainmenu, &$newmenu, $usemenuhider = 1, $le
|
|||||||
if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {
|
if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) {
|
||||||
$newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->hasRight('societe', 'contact', 'lire'));
|
$newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->hasRight('societe', 'contact', 'lire'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
if (isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
||||||
$newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->hasRight('fournisseur', 'lire'));
|
$newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->hasRight('fournisseur', 'lire'));
|
||||||
}
|
}
|
||||||
$newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("ContactOthers"), 2, $user->hasRight('societe', 'contact', 'lire'));
|
$newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("ContactOthers"), 2, $user->hasRight('societe', 'contact', 'lire'));
|
||||||
@ -1632,7 +1632,7 @@ function get_left_menu_accountancy($mainmenu, &$newmenu, $usemenuhider = 1, $lef
|
|||||||
if (isModEnabled('banque')) {
|
if (isModEnabled('banque')) {
|
||||||
$newmenu->add("/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", $langs->trans("MenuBankAccounts"), 1, $user->hasRight('accounting', 'chartofaccount'), '', $mainmenu, 'accountancy_admin_bank', 70);
|
$newmenu->add("/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", $langs->trans("MenuBankAccounts"), 1, $user->hasRight('accounting', 'chartofaccount'), '', $mainmenu, 'accountancy_admin_bank', 70);
|
||||||
}
|
}
|
||||||
if (isModEnabled('facture') || ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_invoice'))) {
|
if (isModEnabled('facture') || isModEnabled('supplier_invoice')) {
|
||||||
$newmenu->add("/admin/dict.php?id=10&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuVatAccounts"), 1, $user->hasRight('accounting', 'chartofaccount'), '', $mainmenu, 'accountancy_admin_default', 80);
|
$newmenu->add("/admin/dict.php?id=10&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuVatAccounts"), 1, $user->hasRight('accounting', 'chartofaccount'), '', $mainmenu, 'accountancy_admin_default', 80);
|
||||||
}
|
}
|
||||||
if (isModEnabled('tax')) {
|
if (isModEnabled('tax')) {
|
||||||
@ -1703,7 +1703,7 @@ function get_left_menu_accountancy($mainmenu, &$newmenu, $usemenuhider = 1, $lef
|
|||||||
$nature = "sells";
|
$nature = "sells";
|
||||||
}
|
}
|
||||||
if ($objp->nature == 3
|
if ($objp->nature == 3
|
||||||
&& ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_invoice'))
|
&& isModEnabled('supplier_invoice')
|
||||||
&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {
|
&& empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) {
|
||||||
$nature = "purchases";
|
$nature = "purchases";
|
||||||
}
|
}
|
||||||
@ -1815,7 +1815,7 @@ function get_left_menu_accountancy($mainmenu, &$newmenu, $usemenuhider = 1, $lef
|
|||||||
if (isModEnabled('accounting') && $user->hasRight('accounting', 'comptarapport', 'lire') && $mainmenu == 'accountancy') {
|
if (isModEnabled('accounting') && $user->hasRight('accounting', 'comptarapport', 'lire') && $mainmenu == 'accountancy') {
|
||||||
$modecompta = 'BOOKKEEPING'; // Not yet implemented.
|
$modecompta = 'BOOKKEEPING'; // Not yet implemented.
|
||||||
}
|
}
|
||||||
if ($modecompta && ((isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_invoice'))) {
|
if ($modecompta && isModEnabled('supplier_invoice')) {
|
||||||
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {
|
if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) {
|
||||||
$newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnover"), 2, $user->hasRight('accounting', 'comptarapport', 'lire'));
|
$newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnover"), 2, $user->hasRight('accounting', 'comptarapport', 'lire'));
|
||||||
$newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->hasRight('accounting', 'comptarapport', 'lire'));
|
$newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->hasRight('accounting', 'comptarapport', 'lire'));
|
||||||
@ -2031,7 +2031,7 @@ function get_left_menu_products($mainmenu, &$newmenu, $usemenuhider = 1, $leftme
|
|||||||
if (isModEnabled('variants')) {
|
if (isModEnabled('variants')) {
|
||||||
$newmenu->add("/variants/list.php", $langs->trans("VariantAttributes"), 1, $user->hasRight('product', 'read'));
|
$newmenu->add("/variants/list.php", $langs->trans("VariantAttributes"), 1, $user->hasRight('product', 'read'));
|
||||||
}
|
}
|
||||||
if (isModEnabled('propal') || (isModEnabled('commande') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('facture') || isModEnabled('fournisseur') || isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
if (isModEnabled('propal') || isModEnabled('commande') || isModEnabled('facture') || isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
||||||
$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=0", $langs->trans("Statistics"), 1, $user->hasRight('product', 'read'));
|
$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=0", $langs->trans("Statistics"), 1, $user->hasRight('product', 'read'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2048,7 +2048,7 @@ function get_left_menu_products($mainmenu, &$newmenu, $usemenuhider = 1, $leftme
|
|||||||
$newmenu->add("/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->hasRight('service', 'read'), '', $mainmenu, 'service', 0, '', '', '', img_picto('', 'service', 'class="pictofixedwidth"'));
|
$newmenu->add("/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->hasRight('service', 'read'), '', $mainmenu, 'service', 0, '', '', '', img_picto('', 'service', 'class="pictofixedwidth"'));
|
||||||
$newmenu->add("/product/card.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->hasRight('service', 'creer'));
|
$newmenu->add("/product/card.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->hasRight('service', 'creer'));
|
||||||
$newmenu->add("/product/list.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->hasRight('service', 'read'));
|
$newmenu->add("/product/list.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->hasRight('service', 'read'));
|
||||||
if (isModEnabled('propal') || isModEnabled('commande') || isModEnabled('facture') || (isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
if (isModEnabled('propal') || isModEnabled('commande') || isModEnabled('facture') || isModEnabled('supplier_proposal') || isModEnabled('supplier_order') || isModEnabled('supplier_invoice')) {
|
||||||
$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=1", $langs->trans("Statistics"), 1, $user->hasRight('service', 'read'));
|
$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=1", $langs->trans("Statistics"), 1, $user->hasRight('service', 'read'));
|
||||||
}
|
}
|
||||||
// Categories
|
// Categories
|
||||||
|
|||||||
@ -683,6 +683,11 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
if ((float) DOL_VERSION >= 6.0) {
|
if ((float) DOL_VERSION >= 6.0) {
|
||||||
@include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
|
@include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
|
||||||
|
|
||||||
|
// Replace a HTML string with a Markdown syntax
|
||||||
|
$content = preg_replace('/<a href="([^"]+)">([^<]+)<\/a>/', '[\2](\1)', $content);
|
||||||
|
//$content = preg_replace('/<a href="([^"]+)" target="([^"]+)">([^<]+)<\/a>/', '[\3](\1){:target="\2"}', $content);
|
||||||
|
$content = preg_replace('/<a href="([^"]+)" target="([^"]+)">([^<]+)<\/a>/', '[\3](\1)', $content);
|
||||||
|
|
||||||
$content = dolMd2Html(
|
$content = dolMd2Html(
|
||||||
$content,
|
$content,
|
||||||
'parsedown',
|
'parsedown',
|
||||||
@ -692,6 +697,8 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
|||||||
'images/' => dol_buildpath(strtolower($this->name).'/images/', 1),
|
'images/' => dol_buildpath(strtolower($this->name).'/images/', 1),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$content = preg_replace('/<a href="/', '<a target="_blank" rel="noopener noreferrer" href="', $content);
|
||||||
} else {
|
} else {
|
||||||
$content = nl2br($content);
|
$content = nl2br($content);
|
||||||
}
|
}
|
||||||
|
|||||||
101
htdocs/core/modules/export/export_csviso.modules.php
Normal file
101
htdocs/core/modules/export/export_csviso.modules.php
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2006-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/export/export_csv.modules.php
|
||||||
|
* \ingroup export
|
||||||
|
* \brief File of class to build exports with CSV format
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/export/exportcsv.modules.php';
|
||||||
|
|
||||||
|
// avoid timeout for big export
|
||||||
|
set_time_limit(0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to build export files with format CSV iso
|
||||||
|
*/
|
||||||
|
class ExportCsvIso extends ExportCsv
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
$this->db = $db;
|
||||||
|
|
||||||
|
$this->separator = ',';
|
||||||
|
if (!empty($conf->global->EXPORT_CSV_SEPARATOR_TO_USE)) {
|
||||||
|
$this->separator = $conf->global->EXPORT_CSV_SEPARATOR_TO_USE;
|
||||||
|
}
|
||||||
|
|
||||||
|
$conf->global->EXPORT_CSV_FORCE_CHARSET = 'ISO-8859-1';
|
||||||
|
|
||||||
|
$this->escape = '"';
|
||||||
|
$this->enclosure = '"';
|
||||||
|
$this->id = 'csviso'; // Same value then xxx in file name export_xxx.modules.php
|
||||||
|
$this->label = 'CSV ISO-8859-1'; // Label of driver
|
||||||
|
$this->desc = $langs->trans("CSVFormatDesc", $this->separator, $this->enclosure, $this->escape);
|
||||||
|
$this->extension = 'csv'; // Extension for generated file by this driver
|
||||||
|
$this->picto = 'mime/other'; // Picto
|
||||||
|
$this->version = '1.32'; // Driver version
|
||||||
|
|
||||||
|
// If driver use an external library, put its name here
|
||||||
|
$this->label_lib = 'Dolibarr';
|
||||||
|
$this->version_lib = DOL_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Output title line into file
|
||||||
|
*
|
||||||
|
* @param array $array_export_fields_label Array with list of label of fields
|
||||||
|
* @param array $array_selected_sorted Array with list of field to export
|
||||||
|
* @param Translate $outputlangs Object lang to translate values
|
||||||
|
* @param array $array_types Array with types of fields
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function write_title($array_export_fields_label, $array_selected_sorted, $outputlangs, $array_types)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
$conf->global->EXPORT_CSV_FORCE_CHARSET = 'ISO-8859-1';
|
||||||
|
|
||||||
|
parent::write_title($array_export_fields_label, $array_selected_sorted, $outputlangs, $array_types);
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Output record line into file
|
||||||
|
*
|
||||||
|
* @param array $array_selected_sorted Array with list of field to export
|
||||||
|
* @param resource $objp A record from a fetch with all fields from select
|
||||||
|
* @param Translate $outputlangs Object lang to translate values
|
||||||
|
* @param array $array_types Array with types of fields
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function write_record($array_selected_sorted, $objp, $outputlangs, $array_types)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
$conf->global->EXPORT_CSV_FORCE_CHARSET = 'ISO-8859-1';
|
||||||
|
|
||||||
|
parent::write_record($array_selected_sorted, $objp, $outputlangs, $array_types);
|
||||||
|
}
|
||||||
|
}
|
||||||
99
htdocs/core/modules/export/export_csvutf8.modules.php
Normal file
99
htdocs/core/modules/export/export_csvutf8.modules.php
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2006-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/export/export_csv.modules.php
|
||||||
|
* \ingroup export
|
||||||
|
* \brief File of class to build exports with CSV format
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/export/exportcsv.modules.php';
|
||||||
|
|
||||||
|
// avoid timeout for big export
|
||||||
|
set_time_limit(0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to build export files with format CSV utf-8
|
||||||
|
*/
|
||||||
|
class ExportCsvUtf8 extends ExportCsv
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
$this->db = $db;
|
||||||
|
|
||||||
|
$this->separator = ',';
|
||||||
|
if (!empty($conf->global->EXPORT_CSV_SEPARATOR_TO_USE)) {
|
||||||
|
$this->separator = $conf->global->EXPORT_CSV_SEPARATOR_TO_USE;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->escape = '"';
|
||||||
|
$this->enclosure = '"';
|
||||||
|
$this->id = 'csvutf8'; // Same value then xxx in file name export_xxx.modules.php
|
||||||
|
$this->label = 'CSV UTF-8'; // Label of driver
|
||||||
|
$this->desc = $langs->trans("CSVFormatDesc", $this->separator, $this->enclosure, $this->escape);
|
||||||
|
$this->extension = 'csv'; // Extension for generated file by this driver
|
||||||
|
$this->picto = 'mime/other'; // Picto
|
||||||
|
$this->version = '1.32'; // Driver version
|
||||||
|
|
||||||
|
// If driver use an external library, put its name here
|
||||||
|
$this->label_lib = 'Dolibarr';
|
||||||
|
$this->version_lib = DOL_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Output title line into file
|
||||||
|
*
|
||||||
|
* @param array $array_export_fields_label Array with list of label of fields
|
||||||
|
* @param array $array_selected_sorted Array with list of field to export
|
||||||
|
* @param Translate $outputlangs Object lang to translate values
|
||||||
|
* @param array $array_types Array with types of fields
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function write_title($array_export_fields_label, $array_selected_sorted, $outputlangs, $array_types)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
$conf->global->EXPORT_CSV_FORCE_CHARSET = 'UTF-8';
|
||||||
|
|
||||||
|
parent::write_title($array_export_fields_label, $array_selected_sorted, $outputlangs, $array_types);
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Output record line into file
|
||||||
|
*
|
||||||
|
* @param array $array_selected_sorted Array with list of field to export
|
||||||
|
* @param resource $objp A record from a fetch with all fields from select
|
||||||
|
* @param Translate $outputlangs Object lang to translate values
|
||||||
|
* @param array $array_types Array with types of fields
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function write_record($array_selected_sorted, $objp, $outputlangs, $array_types)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$conf->global->EXPORT_CSV_FORCE_CHARSET = 'UTF-8';
|
||||||
|
parent::write_record($array_selected_sorted, $objp, $outputlangs, $array_types);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/modules/export/export_csv.modules.php
|
* \file htdocs/core/modules/export/exportcsv.modules.php
|
||||||
* \ingroup export
|
* \ingroup export
|
||||||
* \brief File of class to build exports with CSV format
|
* \brief File of class to build exports with CSV format
|
||||||
*/
|
*/
|
||||||
@ -57,36 +57,6 @@ class ExportCsv extends ModeleExports
|
|||||||
|
|
||||||
public $handle; // Handle fichier
|
public $handle; // Handle fichier
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @param DoliDB $db Database handler
|
|
||||||
*/
|
|
||||||
public function __construct($db)
|
|
||||||
{
|
|
||||||
global $conf, $langs;
|
|
||||||
$this->db = $db;
|
|
||||||
|
|
||||||
$this->separator = ',';
|
|
||||||
if (!empty($conf->global->EXPORT_CSV_SEPARATOR_TO_USE)) {
|
|
||||||
$this->separator = $conf->global->EXPORT_CSV_SEPARATOR_TO_USE;
|
|
||||||
}
|
|
||||||
$this->escape = '"';
|
|
||||||
$this->enclosure = '"';
|
|
||||||
|
|
||||||
$this->id = 'csv'; // Same value then xxx in file name export_xxx.modules.php
|
|
||||||
$this->label = 'CSV'; // Label of driver
|
|
||||||
$this->desc = $langs->trans("CSVFormatDesc", $this->separator, $this->enclosure, $this->escape);
|
|
||||||
$this->extension = 'csv'; // Extension for generated file by this driver
|
|
||||||
$this->picto = 'mime/other'; // Picto
|
|
||||||
$this->version = '1.32'; // Driver version
|
|
||||||
|
|
||||||
// If driver use an external library, put its name here
|
|
||||||
$this->label_lib = 'Dolibarr';
|
|
||||||
$this->version_lib = DOL_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getDriverId
|
* getDriverId
|
||||||
*
|
*
|
||||||
@ -215,11 +185,8 @@ class ExportCsv extends ModeleExports
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if (!empty($conf->global->EXPORT_CSV_FORCE_CHARSET)) {
|
|
||||||
$outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET;
|
$outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET;
|
||||||
} else {
|
|
||||||
$outputlangs->charset_output = 'ISO-8859-1';
|
|
||||||
}
|
|
||||||
$selectlabel = array();
|
$selectlabel = array();
|
||||||
|
|
||||||
foreach ($array_selected_sorted as $code => $value) {
|
foreach ($array_selected_sorted as $code => $value) {
|
||||||
@ -256,11 +223,7 @@ class ExportCsv extends ModeleExports
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if (!empty($conf->global->EXPORT_CSV_FORCE_CHARSET)) {
|
|
||||||
$outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET;
|
$outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET;
|
||||||
} else {
|
|
||||||
$outputlangs->charset_output = 'ISO-8859-1';
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->col = 0;
|
$this->col = 0;
|
||||||
|
|
||||||
@ -86,6 +86,8 @@ class ImportCsv extends ModeleImports
|
|||||||
|
|
||||||
public $nbupdate = 0; // # of update done during the import
|
public $nbupdate = 0; // # of update done during the import
|
||||||
|
|
||||||
|
public $charset = '';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
|||||||
@ -75,6 +75,9 @@ class ModeleImports
|
|||||||
|
|
||||||
public $libversion = array();
|
public $libversion = array();
|
||||||
|
|
||||||
|
public $charset;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array Element mapping from table name
|
* @var array Element mapping from table name
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -253,7 +253,7 @@ class mailing_advthirdparties extends MailingTargets
|
|||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
|
|
||||||
if (empty($conf->categorie->enabled)) {
|
if (!isModEnabled("categorie")) {
|
||||||
$num = 0; // Force empty list if category module is not enabled
|
$num = 0; // Force empty list if category module is not enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -295,7 +295,7 @@ class mailing_thirdparties extends MailingTargets
|
|||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
|
|
||||||
if (empty($conf->categorie->enabled)) {
|
if (!isModEnabled("categorie")) {
|
||||||
$num = 0; // Force empty list if category module is not enabled
|
$num = 0; // Force empty list if category module is not enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -113,7 +113,7 @@ class modAgenda extends DolibarrModules
|
|||||||
//------------
|
//------------
|
||||||
$datestart = dol_now();
|
$datestart = dol_now();
|
||||||
$this->cronjobs = array(
|
$this->cronjobs = array(
|
||||||
0=>array('label'=>'SendEmailsReminders', 'jobtype'=>'method', 'class'=>'comm/action/class/actioncomm.class.php', 'objectname'=>'ActionComm', 'method'=>'sendEmailsReminder', 'parameters'=>'', 'comment'=>'SendEMailsReminder', 'frequency'=>5, 'unitfrequency'=>60, 'priority'=>10, 'status'=>1, 'test'=>'$conf->agenda->enabled', 'datestart'=>$datestart),
|
0=>array('label'=>'SendEmailsReminders', 'jobtype'=>'method', 'class'=>'comm/action/class/actioncomm.class.php', 'objectname'=>'ActionComm', 'method'=>'sendEmailsReminder', 'parameters'=>'', 'comment'=>'SendEMailsReminder', 'frequency'=>5, 'unitfrequency'=>60, 'priority'=>10, 'status'=>1, 'test'=>'isModEnabled("agenda")', 'datestart'=>$datestart),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
@ -212,7 +212,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>86,
|
'position'=>86,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read || $user->rights->resource->read',
|
'perms'=>'$user->rights->agenda->myactions->read || $user->rights->resource->read',
|
||||||
'enabled'=>'$conf->agenda->enabled || $conf->resource->enabled',
|
'enabled'=>'isModEnabled("agenda") || isModEnabled("resource")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2,
|
'user'=>2,
|
||||||
);
|
);
|
||||||
@ -228,7 +228,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>100,
|
'position'=>100,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2,
|
'user'=>2,
|
||||||
);
|
);
|
||||||
@ -242,7 +242,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'commercial',
|
'langs'=>'commercial',
|
||||||
'position'=>101,
|
'position'=>101,
|
||||||
'perms'=>'($user->hasRight("agenda", "myactions", "create")||$user->hasRight("agenda", "allactions", "create"))',
|
'perms'=>'($user->hasRight("agenda", "myactions", "create")||$user->hasRight("agenda", "allactions", "create"))',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -257,7 +257,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>140,
|
'position'=>140,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -271,7 +271,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>141,
|
'position'=>141,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -285,7 +285,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>142,
|
'position'=>142,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -329,7 +329,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>110,
|
'position'=>110,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -343,7 +343,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>111,
|
'position'=>111,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -357,7 +357,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>112,
|
'position'=>112,
|
||||||
'perms'=>'$user->rights->agenda->myactions->read',
|
'perms'=>'$user->rights->agenda->myactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
@ -400,7 +400,7 @@ class modAgenda extends DolibarrModules
|
|||||||
'langs'=>'agenda',
|
'langs'=>'agenda',
|
||||||
'position'=>160,
|
'position'=>160,
|
||||||
'perms'=>'$user->rights->agenda->allactions->read',
|
'perms'=>'$user->rights->agenda->allactions->read',
|
||||||
'enabled'=>'$conf->agenda->enabled',
|
'enabled'=>'isModEnabled("agenda")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
);
|
);
|
||||||
|
|||||||
@ -162,7 +162,7 @@ class modBanque extends DolibarrModules
|
|||||||
"s.nom"=>"company", "s.code_compta"=>"company", "s.code_compta_fournisseur"=>"company"
|
"s.nom"=>"company", "s.code_compta"=>"company", "s.code_compta_fournisseur"=>"company"
|
||||||
);
|
);
|
||||||
$this->export_special_array[$r] = array('-b.amount'=>'NULLIFNEG', 'b.amount'=>'NULLIFNEG');
|
$this->export_special_array[$r] = array('-b.amount'=>'NULLIFNEG', 'b.amount'=>'NULLIFNEG');
|
||||||
if ((!isModEnabled('fournisseur') && !empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !isModEnabled('supplier_order') || !isModEnabled('supplier_invoice')) {
|
if (!isModEnabled('supplier_order') && !isModEnabled('supplier_invoice')) {
|
||||||
unset($this->export_fields_array[$r]['s.code_compta_fournisseur']);
|
unset($this->export_fields_array[$r]['s.code_compta_fournisseur']);
|
||||||
unset($this->export_entities_array[$r]['s.code_compta_fournisseur']);
|
unset($this->export_entities_array[$r]['s.code_compta_fournisseur']);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,9 +105,10 @@ class modBom extends DolibarrModules
|
|||||||
|
|
||||||
// Dependencies
|
// Dependencies
|
||||||
$this->hidden = false; // A condition to hide module
|
$this->hidden = false; // A condition to hide module
|
||||||
$this->depends = array('modProduct'); // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->requiredby = array('modMrp'); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->depends = array('modProduct');
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array('modMrp');
|
||||||
|
$this->conflictwith = array();
|
||||||
$this->langfiles = array("mrp");
|
$this->langfiles = array("mrp");
|
||||||
//$this->phpmin = array(7, 0)); // Minimum version of PHP required by module
|
//$this->phpmin = array(7, 0)); // Minimum version of PHP required by module
|
||||||
$this->need_dolibarr_version = array(9, 0); // Minimum version of Dolibarr required by module
|
$this->need_dolibarr_version = array(9, 0); // Minimum version of Dolibarr required by module
|
||||||
|
|||||||
@ -129,7 +129,7 @@ class modBookCal extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array();
|
$this->depends = array();
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -130,7 +130,7 @@ class modCategorie extends DolibarrModules
|
|||||||
if (isModEnabled("product") || isModEnabled("service")) {
|
if (isModEnabled("product") || isModEnabled("service")) {
|
||||||
$typeexample .= ($typeexample ? " / " : "")."0=Product-Service";
|
$typeexample .= ($typeexample ? " / " : "")."0=Product-Service";
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$typeexample .= ($typeexample ? "/" : "")."1=Supplier";
|
$typeexample .= ($typeexample ? "/" : "")."1=Supplier";
|
||||||
}
|
}
|
||||||
if (isModEnabled("societe")) {
|
if (isModEnabled("societe")) {
|
||||||
@ -205,7 +205,7 @@ class modCategorie extends DolibarrModules
|
|||||||
$this->export_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1];
|
$this->export_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1];
|
||||||
$this->export_label[$r] = 'CatSupList';
|
$this->export_label[$r] = 'CatSupList';
|
||||||
$this->export_icon[$r] = $this->picto;
|
$this->export_icon[$r] = $this->picto;
|
||||||
$this->export_enabled[$r] = 'isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")';
|
$this->export_enabled[$r] = 'isModEnabled("supplier_order") || isModEnabled("supplier_invoice")';
|
||||||
$this->export_permission[$r] = array(array("categorie", "lire"), array("fournisseur", "lire"));
|
$this->export_permission[$r] = array(array("categorie", "lire"), array("fournisseur", "lire"));
|
||||||
$this->export_fields_array[$r] = array(
|
$this->export_fields_array[$r] = array(
|
||||||
'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel",
|
'cat.rowid'=>"CategId", 'cat.label'=>"Label", 'cat.description'=>"Description", 'cat.fk_parent'=>"ParentCategoryID", 'pcat.label'=>"ParentCategoryLabel",
|
||||||
@ -493,7 +493,7 @@ class modCategorie extends DolibarrModules
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 1 Suppliers
|
// 1 Suppliers
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$r++;
|
$r++;
|
||||||
$this->import_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1];
|
$this->import_code[$r] = $this->rights_class.'_1_'.Categorie::$MAP_ID_TO_CODE[1];
|
||||||
$this->import_label[$r] = "CatSupLinks"; // Translation key
|
$this->import_label[$r] = "CatSupLinks"; // Translation key
|
||||||
|
|||||||
@ -127,7 +127,7 @@ class modECM extends DolibarrModules
|
|||||||
'langs'=>'ecm',
|
'langs'=>'ecm',
|
||||||
'position'=>82,
|
'position'=>82,
|
||||||
'perms'=>'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup',
|
'perms'=>'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup',
|
||||||
'enabled'=>'$conf->ecm->enabled',
|
'enabled'=>'isModEnabled("ecm")',
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
|
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
|
||||||
);
|
);
|
||||||
|
|||||||
@ -114,7 +114,7 @@ class modEventOrganization extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array('modProjet','modCategorie');
|
$this->depends = array('modProjet','modCategorie');
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -363,6 +363,8 @@ class modExpedition extends DolibarrModules
|
|||||||
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."', 'shipping', ".((int) $conf->entity).")",
|
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."', 'shipping', ".((int) $conf->entity).")",
|
||||||
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[3][2])."' AND type = 'delivery' AND entity = ".((int) $conf->entity),
|
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[3][2])."' AND type = 'delivery' AND entity = ".((int) $conf->entity),
|
||||||
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[3][2])."', 'delivery', ".((int) $conf->entity).")",
|
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[3][2])."', 'delivery', ".((int) $conf->entity).")",
|
||||||
|
//"DELETE FROM ".MAIN_DB_PREFIX."const WHERE name IN ('STOCK_CALCULATE_ON_BILL', 'STOCK_CALCULATE_ON_VALIDATE_ORDER', 'STOCK_CALCULATE_ON_SHIPMENT', 'STOCK_CALCULATE_ON_SHIPMENT_CLOSE') AND entity = ".((int) $conf->entity),
|
||||||
|
//"INSERT INTO ".MAIN_DB_PREFIX."const (name, value, entity) VALUES ('STOCK_CALCULATE_ON_SHIPMENT_CLOSE', 1, ".((int) $conf->entity).")"
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this->_init($sql, $options);
|
return $this->_init($sql, $options);
|
||||||
|
|||||||
@ -131,7 +131,7 @@ class modKnowledgeManagement extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array();
|
$this->depends = array();
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -113,7 +113,7 @@ class modMargin extends DolibarrModules
|
|||||||
'url'=>'/margin/index.php',
|
'url'=>'/margin/index.php',
|
||||||
'langs'=>'margins', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'margins', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>100,
|
'position'=>100,
|
||||||
'enabled'=>'$conf->margin->enabled', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
|
'enabled'=>'isModEnabled("margin")', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
|
||||||
'perms'=>'$user->rights->margins->liretous', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'$user->rights->margins->liretous', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
|
'user'=>2, // 0=Menu for internal users, 1=external users, 2=both
|
||||||
|
|||||||
@ -117,9 +117,9 @@ class modMrp extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array('modBom');
|
$this->depends = array('modBom');
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array('modWorkstation'); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
$this->langfiles = array("mrp");
|
$this->langfiles = array("mrp");
|
||||||
$this->phpmin = array(7, 0); // Minimum version of PHP required by module
|
$this->phpmin = array(7, 0); // Minimum version of PHP required by module
|
||||||
|
|||||||
@ -138,7 +138,7 @@ class modPartnership extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array();
|
$this->depends = array();
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -72,7 +72,7 @@ class modPaypal extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
$this->hidden = false; // A condition to hide module
|
$this->hidden = false; // A condition to hide module
|
||||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||||
$this->requiredby = array('modPaypalPlus'); // List of module ids to disable if this one is disabled
|
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||||
$this->phpmin = array(7, 0); // Minimum version of PHP required by module
|
$this->phpmin = array(7, 0); // Minimum version of PHP required by module
|
||||||
$this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module
|
$this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module
|
||||||
@ -116,7 +116,7 @@ class modPaypal extends DolibarrModules
|
|||||||
'url'=>'/paypal/importpayments.php',
|
'url'=>'/paypal/importpayments.php',
|
||||||
'langs'=>'paypal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'paypal', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>501,
|
'position'=>501,
|
||||||
'enabled'=>'$conf->paypal->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
'enabled'=>'$conf->paypal->enabled && isModEnabled("banque") && $conf->global->MAIN_FEATURES_LEVEL >= 2', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||||
'perms'=>'$user->rights->banque->consolidate', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'$user->rights->banque->consolidate', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
|
|||||||
@ -168,7 +168,7 @@ class modProduct extends DolibarrModules
|
|||||||
'url'=>'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools',
|
'url'=>'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools',
|
||||||
'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>300,
|
'position'=>300,
|
||||||
'enabled'=>'$conf->product->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
'enabled'=>'isModEnabled("product") && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||||
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>0); // 0=Menu for internal users, 1=external users, 2=both
|
'user'=>0); // 0=Menu for internal users, 1=external users, 2=both
|
||||||
@ -211,7 +211,7 @@ class modProduct extends DolibarrModules
|
|||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
$this->export_fields_array[$r]['p.recuperableonly'] = 'NPR';
|
$this->export_fields_array[$r]['p.recuperableonly'] = 'NPR';
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
||||||
}
|
}
|
||||||
if (isModEnabled('stock')) {
|
if (isModEnabled('stock')) {
|
||||||
@ -224,7 +224,7 @@ class modProduct extends DolibarrModules
|
|||||||
$keyforelement = 'product';
|
$keyforelement = 'product';
|
||||||
$keyforaliasextra = 'extra';
|
$keyforaliasextra = 'extra';
|
||||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery'));
|
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) {
|
if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) {
|
||||||
@ -258,7 +258,7 @@ class modProduct extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text'));
|
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric'));
|
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -277,7 +277,7 @@ class modProduct extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -292,7 +292,7 @@ class modProduct extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -313,7 +313,7 @@ class modProduct extends DolibarrModules
|
|||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid';
|
||||||
}
|
}
|
||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc';
|
||||||
}
|
}
|
||||||
if (isModEnabled('stock')) {
|
if (isModEnabled('stock')) {
|
||||||
@ -625,7 +625,7 @@ class modProduct extends DolibarrModules
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
$this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
||||||
}
|
}
|
||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
@ -709,7 +709,7 @@ class modProduct extends DolibarrModules
|
|||||||
'p.desiredstock' => ''
|
'p.desiredstock' => ''
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$import_sample = array_merge($import_sample, array('p.cost_price'=>'90'));
|
$import_sample = array_merge($import_sample, array('p.cost_price'=>'90'));
|
||||||
}
|
}
|
||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
@ -775,7 +775,7 @@ class modProduct extends DolibarrModules
|
|||||||
$this->import_updatekeys_array[$r] = array('pwp.fk_product'=>'Product', 'pwp.fk_entrepot'=>'Warehouse');
|
$this->import_updatekeys_array[$r] = array('pwp.fk_product'=>'Product', 'pwp.fk_entrepot'=>'Warehouse');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
// Import suppliers prices (note: this code is duplicated in module Service)
|
// Import suppliers prices (note: this code is duplicated in module Service)
|
||||||
$r++;
|
$r++;
|
||||||
$this->import_code[$r] = $this->rights_class.'_supplierprices';
|
$this->import_code[$r] = $this->rights_class.'_supplierprices';
|
||||||
|
|||||||
@ -284,6 +284,8 @@ class modReception extends DolibarrModules
|
|||||||
$sql = array(
|
$sql = array(
|
||||||
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[0][2])."' AND type = 'reception' AND entity = ".((int) $conf->entity),
|
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[0][2])."' AND type = 'reception' AND entity = ".((int) $conf->entity),
|
||||||
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."','reception',".((int) $conf->entity).")",
|
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."','reception',".((int) $conf->entity).")",
|
||||||
|
//"DELETE FROM ".MAIN_DB_PREFIX."const WHERE name IN ('STOCK_CALCULATE_ON_SUPPLIER_BILL', 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER', 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER', 'STOCK_CALCULATE_ON_RECEPTION', 'STOCK_CALCULATE_ON_RECEPTION_CLOSE') AND entity = ".((int) $conf->entity),
|
||||||
|
//"INSERT INTO ".MAIN_DB_PREFIX."const (name, value, entity) VALUES ('STOCK_CALCULATE_ON_RECEPTION_CLOSE', 1, ".((int) $conf->entity).")"
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this->_init($sql, $options);
|
return $this->_init($sql, $options);
|
||||||
|
|||||||
@ -117,7 +117,7 @@ class modRecruitment extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array();
|
$this->depends = array();
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -135,7 +135,7 @@ class modService extends DolibarrModules
|
|||||||
'url'=>'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools',
|
'url'=>'/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools',
|
||||||
'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'products', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>300,
|
'position'=>300,
|
||||||
'enabled'=>'$conf->product->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
'enabled'=>'isModEnabled("product") && preg_match(\'/^(admintools|all)/\',$leftmenu)', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||||
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'1', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>0); // 0=Menu for internal users, 1=external users, 2=both
|
'user'=>0); // 0=Menu for internal users, 1=external users, 2=both
|
||||||
@ -176,7 +176,7 @@ class modService extends DolibarrModules
|
|||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
$this->export_fields_array[$r]['p.recuperableonly'] = 'NPR';
|
$this->export_fields_array[$r]['p.recuperableonly'] = 'NPR';
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
||||||
}
|
}
|
||||||
if (isModEnabled('stock')) {
|
if (isModEnabled('stock')) {
|
||||||
@ -189,7 +189,7 @@ class modService extends DolibarrModules
|
|||||||
$keyforelement = 'product';
|
$keyforelement = 'product';
|
||||||
$keyforaliasextra = 'extra';
|
$keyforaliasextra = 'extra';
|
||||||
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery'));
|
$this->export_fields_array[$r] = array_merge($this->export_fields_array[$r], array('s.nom'=>'Supplier', 'pf.ref_fourn'=>'SupplierRef', 'pf.quantity'=>'QtyMin', 'pf.remise_percent'=>'DiscountQtyMin', 'pf.unitprice'=>'BuyingPrice', 'pf.delivery_time_days'=>'NbDaysToDelivery'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) {
|
if (!empty($conf->global->EXPORTTOOL_CATEGORIES)) {
|
||||||
@ -221,7 +221,7 @@ class modService extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text'));
|
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric'));
|
$this->export_TypeFields_array[$r] = array_merge($this->export_TypeFields_array[$r], array('s.nom'=>'Text', 'pf.ref_fourn'=>'Text', 'pf.unitprice'=>'Numeric', 'pf.quantity'=>'Numeric', 'pf.remise_percent'=>'Numeric', 'pf.delivery_time_days'=>'Numeric'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -240,7 +240,7 @@ class modService extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -255,7 +255,7 @@ class modService extends DolibarrModules
|
|||||||
if (isModEnabled('barcode')) {
|
if (isModEnabled('barcode')) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('p.barcode'=>'product'));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
$this->export_entities_array[$r] = array_merge($this->export_entities_array[$r], array('s.nom'=>'product_supplier_ref', 'pf.ref_fourn'=>'product_supplier_ref', 'pf.unitprice'=>'product_supplier_ref', 'pf.quantity'=>'product_supplier_ref', 'pf.remise_percent'=>'product_supplier_ref', 'pf.delivery_time_days'=>'product_supplier_ref'));
|
||||||
}
|
}
|
||||||
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
if (getDolGlobalInt('MAIN_MULTILANGS')) {
|
||||||
@ -276,7 +276,7 @@ class modService extends DolibarrModules
|
|||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_lang as l ON l.fk_product = p.rowid';
|
||||||
}
|
}
|
||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra ON p.rowid = extra.fk_object';
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc';
|
$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc';
|
||||||
}
|
}
|
||||||
$this->export_sql_end[$r] .= ' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity('product').')';
|
$this->export_sql_end[$r] .= ' WHERE p.fk_product_type = 1 AND p.entity IN ('.getEntity('product').')';
|
||||||
@ -284,7 +284,7 @@ class modService extends DolibarrModules
|
|||||||
$this->export_sql_order[$r] = ' GROUP BY p.rowid'; // FIXME The group by used a generic value to say "all fields in select except function fields"
|
$this->export_sql_order[$r] = ' GROUP BY p.rowid'; // FIXME The group by used a generic value to say "all fields in select except function fields"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->product->enabled)) { // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
if (!isModEnabled("product")) { // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
||||||
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||||
// Exports product multiprice
|
// Exports product multiprice
|
||||||
$r++;
|
$r++;
|
||||||
@ -572,7 +572,7 @@ class modService extends DolibarrModules
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
$this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array('p.cost_price'=>'CostPrice'));
|
||||||
}
|
}
|
||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
@ -663,7 +663,7 @@ class modService extends DolibarrModules
|
|||||||
'p.desiredstock' => ''
|
'p.desiredstock' => ''
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice") || isModEnabled('margin')) {
|
||||||
$import_sample = array_merge($import_sample, array('p.cost_price'=>'90'));
|
$import_sample = array_merge($import_sample, array('p.cost_price'=>'90'));
|
||||||
}
|
}
|
||||||
if (is_object($mysoc) && $usenpr) {
|
if (is_object($mysoc) && $usenpr) {
|
||||||
@ -705,8 +705,8 @@ class modService extends DolibarrModules
|
|||||||
$this->import_updatekeys_array[$r] = array_merge($this->import_updatekeys_array[$r], array('p.barcode'=>'BarCode')); //only show/allow barcode as update key if Barcode module enabled
|
$this->import_updatekeys_array[$r] = array_merge($this->import_updatekeys_array[$r], array('p.barcode'=>'BarCode')); //only show/allow barcode as update key if Barcode module enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->product->enabled)) { // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
if (!isModEnabled("product")) { // We enable next import templates only if module product not already enabled (to avoid duplicate entries)
|
||||||
if ((isModEnabled("fournisseur") && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
||||||
// Import suppliers prices (note: this code is duplicated in module Service)
|
// Import suppliers prices (note: this code is duplicated in module Service)
|
||||||
$r++;
|
$r++;
|
||||||
$this->import_code[$r] = $this->rights_class.'_supplierprices';
|
$this->import_code[$r] = $this->rights_class.'_supplierprices';
|
||||||
|
|||||||
@ -413,7 +413,7 @@ class modSociete extends DolibarrModules
|
|||||||
't.libelle'=>"company",
|
't.libelle'=>"company",
|
||||||
's.entity'=>'company',
|
's.entity'=>'company',
|
||||||
); // We define here only fields that use another picto
|
); // We define here only fields that use another picto
|
||||||
if (!isModEnabled('fournisseur') && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || isModEnabled("supplier_order") || isModEnabled("supplier_invoice")) {
|
if (!isModEnabled("supplier_order") && !isModEnabled("supplier_invoice")) {
|
||||||
unset($this->export_fields_array[$r]['s.code_fournisseur']);
|
unset($this->export_fields_array[$r]['s.code_fournisseur']);
|
||||||
unset($this->export_entities_array[$r]['s.code_fournisseur']);
|
unset($this->export_entities_array[$r]['s.code_fournisseur']);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,7 +61,7 @@ class modStockTransfer extends DolibarrModules
|
|||||||
// Module description, used if translation string 'ModuleStockTransferDesc' not found (StockTransfer is name of module).
|
// Module description, used if translation string 'ModuleStockTransferDesc' not found (StockTransfer is name of module).
|
||||||
$this->description = $langs->trans("ModuleStockTransferDesc");
|
$this->description = $langs->trans("ModuleStockTransferDesc");
|
||||||
// Used only if file README.md and README-LL.md not found.
|
// Used only if file README.md and README-LL.md not found.
|
||||||
$this->descriptionlong = "StockTransfer description (Long)";
|
$this->descriptionlong = "Advanced management of stock transfer orders with generation of stock transfer sheets";
|
||||||
// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
|
// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
|
||||||
$this->version = 'experimental';
|
$this->version = 'experimental';
|
||||||
// Url to the file with your last numberversion of this module
|
// Url to the file with your last numberversion of this module
|
||||||
@ -119,7 +119,7 @@ class modStockTransfer extends DolibarrModules
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// A condition to hide module
|
// A condition to hide module
|
||||||
$this->hidden = false;
|
$this->hidden = false;
|
||||||
// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
$this->depends = array('modStock', 'modProduct');
|
$this->depends = array('modStock', 'modProduct');
|
||||||
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
$this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
|
||||||
|
|||||||
@ -101,7 +101,7 @@ class modStripe extends DolibarrModules
|
|||||||
'url'=>'/stripe/importpayments.php',
|
'url'=>'/stripe/importpayments.php',
|
||||||
'langs'=>'stripe', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
'langs'=>'stripe', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||||
'position'=>500,
|
'position'=>500,
|
||||||
'enabled'=>'$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
'enabled'=>'$conf->stripe->enabled && isModEnabled("banque") && $conf->global->MAIN_FEATURES_LEVEL >= 2', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||||
'perms'=>'$user->rights->banque->modifier', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
'perms'=>'$user->rights->banque->modifier', // Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
|
||||||
'target'=>'',
|
'target'=>'',
|
||||||
'user'=>2
|
'user'=>2
|
||||||
|
|||||||
@ -98,7 +98,8 @@ class modTakePos extends DolibarrModules
|
|||||||
|
|
||||||
// Dependencies
|
// Dependencies
|
||||||
$this->hidden = false; // A condition to hide module
|
$this->hidden = false; // A condition to hide module
|
||||||
$this->depends = array('always1'=>"modBanque", 'always2'=>"modFacture", 'always3'=>"modProduct", 'always4'=>'modCategorie', 'FR1'=>'modBlockedLog'); // List of module class names as string that must be enabled if this module is enabled
|
// List of module class names as string that must be enabled if this module is enabled. Example: array('always'=>array('modModuleToEnable1','modModuleToEnable2'), 'FR'=>array('modModuleToEnableFR'...))
|
||||||
|
$this->depends = array('always'=>array("modBanque", "modFacture", "modProduct", "modCategorie"), 'FR'=>array('modBlockedLog'));
|
||||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||||
$this->langfiles = array("cashdesk");
|
$this->langfiles = array("cashdesk");
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user