Merge remote-tracking branch 'upstream/develop' into 17p1
This commit is contained in:
commit
32a9e53382
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
5
.github/workflows/exakat.yml
vendored
5
.github/workflows/exakat.yml
vendored
@ -5,11 +5,14 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: "0 20 * * *"
|
- cron: "0 20 * * *"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
exakat:
|
exakat:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Exakat
|
- name: Exakat
|
||||||
uses: docker://exakat/exakat-ga
|
uses: docker://exakat/exakat-ga
|
||||||
with:
|
with:
|
||||||
|
|||||||
21
.travis.yml
21
.travis.yml
@ -93,23 +93,26 @@ install:
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer - for $TRAVIS_PHP_VERSION"
|
echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION"
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then
|
||||||
composer -n require phpunit/phpunit ^5 \
|
composer -n require phpunit/phpunit ^5 \
|
||||||
php-parallel-lint/php-parallel-lint ^1 \
|
php-parallel-lint/php-parallel-lint ^1 \
|
||||||
php-parallel-lint/php-console-highlighter ^0 \
|
php-parallel-lint/php-console-highlighter ^0 \
|
||||||
|
php-parallel-lint/php-var-dump-check ~0.4 \
|
||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
|
||||||
composer -n require phpunit/phpunit ^6 \
|
composer -n require phpunit/phpunit ^6 \
|
||||||
php-parallel-lint/php-parallel-lint ^1 \
|
php-parallel-lint/php-parallel-lint ^1 \
|
||||||
php-parallel-lint/php-console-highlighter ^0 \
|
php-parallel-lint/php-console-highlighter ^0 \
|
||||||
|
php-parallel-lint/php-var-dump-check ~0.4 \
|
||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ]; then
|
if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ]; then
|
||||||
composer -n require phpunit/phpunit ^7 \
|
composer -n require phpunit/phpunit ^7 \
|
||||||
php-parallel-lint/php-parallel-lint ^1.2 \
|
php-parallel-lint/php-parallel-lint ^1.2 \
|
||||||
php-parallel-lint/php-console-highlighter ^0 \
|
php-parallel-lint/php-console-highlighter ^0 \
|
||||||
|
php-parallel-lint/php-var-dump-check ~0.4 \
|
||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
# phpunit 9 is required for php 8
|
# phpunit 9 is required for php 8
|
||||||
@ -117,6 +120,7 @@ install:
|
|||||||
composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \
|
composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \
|
||||||
php-parallel-lint/php-parallel-lint ^1.2 \
|
php-parallel-lint/php-parallel-lint ^1.2 \
|
||||||
php-parallel-lint/php-console-highlighter ^0 \
|
php-parallel-lint/php-console-highlighter ^0 \
|
||||||
|
php-parallel-lint/php-var-dump-check ~0.4 \
|
||||||
squizlabs/php_codesniffer ^3
|
squizlabs/php_codesniffer ^3
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
@ -166,6 +170,10 @@ before_script:
|
|||||||
which phpcs
|
which phpcs
|
||||||
phpcs --version | head -
|
phpcs --version | head -
|
||||||
phpcs -i | head -
|
phpcs -i | head -
|
||||||
|
# Check PHP Vardump check version
|
||||||
|
echo "PHP Vardump check version"
|
||||||
|
which var_dump_check
|
||||||
|
var_dump_check --version
|
||||||
# Check PHPUnit version
|
# Check PHPUnit version
|
||||||
echo "PHPUnit version"
|
echo "PHPUnit version"
|
||||||
which phpunit
|
which phpunit
|
||||||
@ -297,6 +305,17 @@ script:
|
|||||||
set +e
|
set +e
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
- |
|
||||||
|
echo "Checking missing debug"
|
||||||
|
# Ensure we catch errors
|
||||||
|
set -e
|
||||||
|
# Exclusions are defined in the ruleset.xml file
|
||||||
|
if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then
|
||||||
|
var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
|
||||||
|
fi
|
||||||
|
set +e
|
||||||
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
export INSTALL_FORCED_FILE=htdocs/install/install.forced.php
|
export INSTALL_FORCED_FILE=htdocs/install/install.forced.php
|
||||||
echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
|
echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
|
||||||
|
|||||||
@ -13,6 +13,7 @@ NEW: PHP 8.1 compatibility
|
|||||||
NEW: Support for recurring purchase invoices.
|
NEW: Support for recurring purchase invoices.
|
||||||
NEW: #20292 Include German public holidays
|
NEW: #20292 Include German public holidays
|
||||||
NEW: Can show ZATCA QRCode on PDFs
|
NEW: Can show ZATCA QRCode on PDFs
|
||||||
|
NEW: Can show Swiss QR Code on PDFs
|
||||||
NEW: #17123 added ExtraFields for Stock Mouvement
|
NEW: #17123 added ExtraFields for Stock Mouvement
|
||||||
NEW: #20609 : new massaction to assign a sale representatives on a selection of thirdparties
|
NEW: #20609 : new massaction to assign a sale representatives on a selection of thirdparties
|
||||||
NEW: #20653 edit discount pourcentage for all lines in one shot
|
NEW: #20653 edit discount pourcentage for all lines in one shot
|
||||||
@ -197,7 +198,7 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* Method fetch_all_resources(), fetch_all_used(), fetch_all_available() of DolResource has been removed (they were not used by core code).
|
* Method fetch_all_resources(), fetch_all_used(), fetch_all_available() of DolResource has been removed (they were not used by core code).
|
||||||
* Method fetch_all of DolResource has been renamed into fetchAll() to match naming conventions.
|
* Method fetch_all of DolResource has been renamed into fetchAll() to match naming conventions.
|
||||||
* The hook 'upgrade' and 'doUpgrade2" has been renamed 'doUpgradeBefore' and 'doUpgradeAfterDB'. A new trigger 'doUpgradeAfterFiles' has been introduced.
|
* The hook 'upgrade' and 'doUpgrade2" has been renamed 'doUpgradeBefore' and 'doUpgradeAfterDB'. A new trigger 'doUpgradeAfterFiles' has been introduced.
|
||||||
|
* The context hook 'suppliercard' when on the supplier tab of a thirdparty has been renamed into 'thirdpartysupplier'
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 15.0.2 compared to 15.0.1 *****
|
***** ChangeLog for 15.0.2 compared to 15.0.1 *****
|
||||||
|
|||||||
@ -499,8 +499,9 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/cache.manifest`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/cache.manifest`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`;
|
||||||
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.nova*`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.pgsql`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`;
|
||||||
|
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`;
|
||||||
|
|||||||
@ -276,6 +276,13 @@ RESTLER:
|
|||||||
|
|
||||||
$loaders = array_unique(static::$rogueLoaders, SORT_REGULAR);
|
$loaders = array_unique(static::$rogueLoaders, SORT_REGULAR);
|
||||||
|
|
||||||
|
* Replace CommentParser.php line 423
|
||||||
|
elseif (count($value) && is_numeric($value[0]))
|
||||||
|
|
||||||
|
with
|
||||||
|
|
||||||
|
elseif (count($value) && isset($value[0]) && is_numeric($value[0]))
|
||||||
|
|
||||||
|
|
||||||
+With swagger 2 provided into /explorer:
|
+With swagger 2 provided into /explorer:
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|||||||
@ -20,3 +20,10 @@ https://www.pwc.com/m1/en/services/tax/me-tax-legal-news/2021/saudi-arabia-guide
|
|||||||
https://www.tecklenborgh.com/post/ksa-zatca-publishes-guide-on-how-to-develop-a-fatoora-compliant-qr-code
|
https://www.tecklenborgh.com/post/ksa-zatca-publishes-guide-on-how-to-develop-a-fatoora-compliant-qr-code
|
||||||
|
|
||||||
Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php
|
Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php
|
||||||
|
|
||||||
|
|
||||||
|
* FOR QR-Bill in switzerland
|
||||||
|
----------------------------
|
||||||
|
Syntax of QR Code https://www.swiss-qr-invoice.org/fr/
|
||||||
|
Syntax of complentary field named "structured information of invoice S1": https://www.swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-fr.pdf
|
||||||
|
To test/validate: https://www.swiss-qr-invoice.org/validator/
|
||||||
@ -7,7 +7,7 @@
|
|||||||
# To run the fix manually: cd ~/git/dolibarr; phpcbf -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true "fileordir"
|
# To run the fix manually: cd ~/git/dolibarr; phpcbf -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true "fileordir"
|
||||||
|
|
||||||
PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
|
PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
|
||||||
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php`
|
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep -v '/includes/'| grep \\\\.php`
|
||||||
DIRPHPCS=""
|
DIRPHPCS=""
|
||||||
AUTOFIX=1
|
AUTOFIX=1
|
||||||
|
|
||||||
|
|||||||
@ -350,6 +350,8 @@ if ($resql) {
|
|||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$newcardbutton = '';
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') {
|
if ($optioncss != '') {
|
||||||
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
|||||||
@ -168,10 +168,13 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
|
|||||||
$object->labelshort = GETPOST('labelshort', 'alpha');
|
$object->labelshort = GETPOST('labelshort', 'alpha');
|
||||||
|
|
||||||
$result = $object->update($user);
|
$result = $object->update($user);
|
||||||
|
|
||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
|
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||||
header("Location: " . $urltogo);
|
header("Location: " . $urltogo);
|
||||||
exit();
|
exit();
|
||||||
|
} elseif ($result == -2) {
|
||||||
|
setEventMessages($langs->trans("ErrorAccountNumberAlreadyExists", $object->account_number), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($object->error, null, 'errors');
|
setEventMessages($object->error, null, 'errors');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,7 +98,6 @@ if (!empty($conf->loan->enabled)) {
|
|||||||
$list_account[] = 'ACCOUNTING_ACCOUNT_SUSPENSE';
|
$list_account[] = 'ACCOUNTING_ACCOUNT_SUSPENSE';
|
||||||
if (!empty($conf->societe->enabled)) {
|
if (!empty($conf->societe->enabled)) {
|
||||||
$list_account[] = '---Deposits---';
|
$list_account[] = '---Deposits---';
|
||||||
$list_account[] = 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -106,7 +105,7 @@ if (!empty($conf->societe->enabled)) {
|
|||||||
*/
|
*/
|
||||||
if ($action == 'update') {
|
if ($action == 'update') {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
// Process $list_account_main
|
||||||
foreach ($list_account_main as $constname) {
|
foreach ($list_account_main as $constname) {
|
||||||
$constvalue = GETPOST($constname, 'alpha');
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
@ -114,7 +113,7 @@ if ($action == 'update') {
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Process $list_account
|
||||||
foreach ($list_account as $constname) {
|
foreach ($list_account as $constname) {
|
||||||
$reg = array();
|
$reg = array();
|
||||||
if (preg_match('/---(.*)---/', $constname, $reg)) { // This is a separator
|
if (preg_match('/---(.*)---/', $constname, $reg)) { // This is a separator
|
||||||
@ -128,6 +127,13 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$constname = 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT';
|
||||||
|
$constvalue = GETPOST($constname, 'int');
|
||||||
|
if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -135,7 +141,7 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'setdisableauxiliaryaccountoncustomerdeposit') {
|
if ($action == 'setACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT') {
|
||||||
$setDisableAuxiliaryAccountOnCustomerDeposit = GETPOST('value', 'int');
|
$setDisableAuxiliaryAccountOnCustomerDeposit = GETPOST('value', 'int');
|
||||||
$res = dolibarr_set_const($db, "ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT", $setDisableAuxiliaryAccountOnCustomerDeposit, 'yesno', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT", $setDisableAuxiliaryAccountOnCustomerDeposit, 'yesno', 0, '', $conf->entity);
|
||||||
if (!($res > 0)) {
|
if (!($res > 0)) {
|
||||||
@ -195,7 +201,8 @@ foreach ($list_account_main as $key) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
// Value
|
// Value
|
||||||
print '<td class="right">'; // Do not force class=right, or it align also the content of the select box
|
print '<td class="right">'; // Do not force class=right, or it align also the content of the select box
|
||||||
print $formaccounting->select_account($conf->global->$key, $key, 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accountsmain');
|
$key_value = getDolGlobalString($key);
|
||||||
|
print $formaccounting->select_account($key_value, $key, 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accountsmain');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@ -246,15 +253,28 @@ foreach ($list_account as $key) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->societe->enabled)) {
|
|
||||||
|
// Customer deposit account
|
||||||
|
print '<tr class="oddeven value">';
|
||||||
|
// Param
|
||||||
|
print '<td>';
|
||||||
|
print img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT');
|
||||||
|
print '</td>';
|
||||||
|
// Value
|
||||||
|
print '<td class="right">'; // Do not force class=right, or it align also the content of the select box
|
||||||
|
print $formaccounting->select_account(getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT'), 'ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT', 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accounts');
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
if (!empty($conf->societe->enabled) && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT') != '-1') {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>' . img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnCustomerDeposit") . '</td>';
|
print '<td>' . img_picto('', 'bill', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnCustomerDeposit") . '</td>';
|
||||||
if (!empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT)) {
|
if (getDolGlobalInt('ACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT')) {
|
||||||
print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setdisableauxiliaryaccountoncustomerdeposit&value=0">';
|
print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT&value=0">';
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
|
print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setdisableauxiliaryaccountoncustomerdeposit&value=1">';
|
print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT&value=1">';
|
||||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
}
|
}
|
||||||
@ -264,7 +284,7 @@ if (!empty($conf->societe->enabled)) {
|
|||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print "</div>\n";
|
print "</div>\n";
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Modify').'"></div>';
|
print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Save').'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2013-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
* Copyright (C) 2017-2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2017-2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -211,7 +211,7 @@ if ($num) {
|
|||||||
|
|
||||||
// Value
|
// Value
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.$conf->global->$key.'">';
|
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -239,7 +239,7 @@ if (!$conf->use_javascript_ajax) {
|
|||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$listmodelcsv = $accountancyexport->getType();
|
$listmodelcsv = $accountancyexport->getType();
|
||||||
print $form->selectarray("ACCOUNTING_EXPORT_MODELCSV", $listmodelcsv, $conf->global->ACCOUNTING_EXPORT_MODELCSV, 0, 0, 0, '', 0, 0, 0, '', '', 1);
|
print $form->selectarray("ACCOUNTING_EXPORT_MODELCSV", $listmodelcsv, getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV'), 0, 0, 0, '', 0, 0, 0, '', '', 1);
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -358,7 +358,7 @@ foreach ($list as $key) {
|
|||||||
print '<td>'.$label.'</td>';
|
print '<td>'.$label.'</td>';
|
||||||
// Value
|
// Value
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print '<input type="text" class="maxwidth100" id="'.$key.'" name="'.$key.'" value="'.$conf->global->$key.'">';
|
print '<input type="text" class="maxwidth50 right" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -409,12 +409,12 @@ foreach ($list_binding as $key) {
|
|||||||
// Value
|
// Value
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($key == 'ACCOUNTING_DATE_START_BINDING') {
|
if ($key == 'ACCOUNTING_DATE_START_BINDING') {
|
||||||
print $form->selectDate(($conf->global->$key ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1);
|
print $form->selectDate((!empty($conf->global->$key) ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1);
|
||||||
} elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') {
|
} elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') {
|
||||||
$array = array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear"));
|
$array = array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear"));
|
||||||
print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0));
|
print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0));
|
||||||
} else {
|
} else {
|
||||||
print '<input type="text" class="maxwidth100" id="'.$key.'" name="'.$key.'" value="'.$conf->global->$key.'">';
|
print '<input type="text" class="maxwidth100" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
/* Copyright (C) 2017-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -76,6 +76,8 @@ if (empty($sortorder)) {
|
|||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
|
$search_country_id = GETPOST('search_country_id', 'int');
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$hookmanager->initHooks(array('admin'));
|
$hookmanager->initHooks(array('admin'));
|
||||||
|
|
||||||
|
|||||||
@ -540,7 +540,7 @@ if ($action == 'create') {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Date document creation
|
// Date document export
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td class="titlefield">'.$langs->trans("DateExport").'</td>';
|
print '<td class="titlefield">'.$langs->trans("DateExport").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -548,7 +548,7 @@ if ($action == 'create') {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Date document creation
|
// Date document validation
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td class="titlefield">'.$langs->trans("DateValidation").'</td>';
|
print '<td class="titlefield">'.$langs->trans("DateValidation").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -607,6 +607,7 @@ if ($action == 'create') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt
|
$result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
@ -640,16 +641,21 @@ if ($action == 'create') {
|
|||||||
print_liste_field_titre("Debit", "", "", "", "", 'class="right"');
|
print_liste_field_titre("Debit", "", "", "", "", 'class="right"');
|
||||||
print_liste_field_titre("Credit", "", "", "", "", 'class="right"');
|
print_liste_field_titre("Credit", "", "", "", "", 'class="right"');
|
||||||
if (empty($object->date_validation)) {
|
if (empty($object->date_validation)) {
|
||||||
print_liste_field_titre("Action", "", "", "", "", 'width="60" class="center"');
|
print_liste_field_titre("Action", "", "", "", "", 'width="60"', "", "", 'center ');
|
||||||
} else {
|
} else {
|
||||||
print_liste_field_titre("");
|
print_liste_field_titre("");
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Add an empty line
|
// Add an empty line if there is not yet
|
||||||
$line = new BookKeepingLine();
|
if (!empty($object->linesmvt[0])) {
|
||||||
$object->linesmvt[] = $line;
|
$tmpline = $object->linesmvt[0];
|
||||||
|
if (!empty($tmpline->numero_compte)) {
|
||||||
|
$line = new BookKeepingLine();
|
||||||
|
$object->linesmvt[] = $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($object->linesmvt as $line) {
|
foreach ($object->linesmvt as $line) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
@ -702,9 +708,7 @@ if ($action == 'create') {
|
|||||||
print '<td><input type="text" class="minwidth200" name="label_operation" value="' . $label_operation . '"/></td>';
|
print '<td><input type="text" class="minwidth200" name="label_operation" value="' . $label_operation . '"/></td>';
|
||||||
print '<td class="right"><input type="text" size="6" class="right" name="debit" value=""/></td>';
|
print '<td class="right"><input type="text" size="6" class="right" name="debit" value=""/></td>';
|
||||||
print '<td class="right"><input type="text" size="6" class="right" name="credit" value=""/></td>';
|
print '<td class="right"><input type="text" size="6" class="right" name="credit" value=""/></td>';
|
||||||
print '<td>';
|
print '<td class="center"><input type="submit" class="button" name="save" value="' . $langs->trans("Add") . '"></td>';
|
||||||
print '<input type="submit" class="button" name="save" value="' . $langs->trans("Add") . '">';
|
|
||||||
print '</td>';
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<!-- td columns in display mode -->';
|
print '<!-- td columns in display mode -->';
|
||||||
|
|||||||
@ -132,6 +132,7 @@ $search_not_reconciled = GETPOST('search_not_reconciled', 'alpha');
|
|||||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
|
$optioncss = GETPOST('optioncss', 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) {
|
if (empty($page) || $page < 0) {
|
||||||
$page = 0;
|
$page = 0;
|
||||||
@ -206,7 +207,7 @@ if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
|
|||||||
|
|
||||||
$accountancyexport = new AccountancyExport($db);
|
$accountancyexport = new AccountancyExport($db);
|
||||||
$listofformat = $accountancyexport->getType();
|
$listofformat = $accountancyexport->getType();
|
||||||
$formatexportset = $conf->global->ACCOUNTING_EXPORT_MODELCSV;
|
$formatexportset = getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV');
|
||||||
if (empty($listofformat[$formatexportset])) {
|
if (empty($listofformat[$formatexportset])) {
|
||||||
$formatexportset = 1;
|
$formatexportset = 1;
|
||||||
}
|
}
|
||||||
@ -913,6 +914,8 @@ if ($massactionbutton && $contextpage != 'poslist') {
|
|||||||
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$moreforfilter = '';
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2016 Neil Orley <neil.orley@oeris.fr>
|
/* Copyright (C) 2016 Neil Orley <neil.orley@oeris.fr>
|
||||||
* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2020 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2020 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013-2021 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2013-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -40,6 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
|||||||
$langs->loadLangs(array("accountancy", "compta"));
|
$langs->loadLangs(array("accountancy", "compta"));
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
$socid = GETPOST('socid', 'int');
|
||||||
$massaction = GETPOST('massaction', 'alpha');
|
$massaction = GETPOST('massaction', 'alpha');
|
||||||
$confirm = GETPOST('confirm', 'alpha');
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
$toselect = GETPOST('toselect', 'array');
|
$toselect = GETPOST('toselect', 'array');
|
||||||
@ -104,6 +105,7 @@ if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_
|
|||||||
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
|
$optioncss = GETPOST('optioncss', 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) {
|
if (empty($page) || $page < 0) {
|
||||||
$page = 0;
|
$page = 0;
|
||||||
@ -571,6 +573,7 @@ $num = count($object->lines);
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
// Print form confirm
|
// Print form confirm
|
||||||
|
$formconfirm = '';
|
||||||
print $formconfirm;
|
print $formconfirm;
|
||||||
|
|
||||||
// List of mass actions available
|
// List of mass actions available
|
||||||
|
|||||||
@ -347,8 +347,8 @@ class AccountingAccount extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Update record
|
* Update record
|
||||||
*
|
*
|
||||||
* @param User $user Use making update
|
* @param User $user User making update
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO (-2 = duplicate), >0 if OK
|
||||||
*/
|
*/
|
||||||
public function update($user)
|
public function update($user)
|
||||||
{
|
{
|
||||||
@ -378,6 +378,12 @@ class AccountingAccount extends CommonObject
|
|||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
|
if ($this->db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
|
||||||
|
$this->error = $this->db->lasterror();
|
||||||
|
$this->db->rollback();
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
$this->error = $this->db->lasterror();
|
$this->error = $this->db->lasterror();
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
@ -592,16 +598,9 @@ class AccountingAccount extends CommonObject
|
|||||||
if ($this->db->num_rows($resql)) {
|
if ($this->db->num_rows($resql)) {
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if ($obj->fk_user_author) {
|
|
||||||
$cuser = new User($this->db);
|
$this->user_creation_id = $obj->fk_user_author;
|
||||||
$cuser->fetch($obj->fk_user_author);
|
$this->user_modification_id = $obj->fk_user_modif;
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
if ($obj->fk_user_modif) {
|
|
||||||
$muser = new User($this->db);
|
|
||||||
$muser->fetch($obj->fk_user_modif);
|
|
||||||
$this->user_modification = $muser;
|
|
||||||
}
|
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_modification = $this->db->jdate($obj->tms);
|
$this->date_modification = $this->db->jdate($obj->tms);
|
||||||
}
|
}
|
||||||
@ -733,7 +732,7 @@ class AccountingAccount extends CommonObject
|
|||||||
* @param FactureLigne|SupplierInvoiceLine $factureDet Facture Det
|
* @param FactureLigne|SupplierInvoiceLine $factureDet Facture Det
|
||||||
* @param array $accountingAccount Array of Account account
|
* @param array $accountingAccount Array of Account account
|
||||||
* @param string $type Customer / Supplier
|
* @param string $type Customer / Supplier
|
||||||
* @return array Accounting accounts suggested
|
* @return array|int Accounting accounts suggested or < 0 if technical error.
|
||||||
*/
|
*/
|
||||||
public function getAccountingCodeToBind(Societe $buyer, Societe $seller, Product $product, $facture, $factureDet, $accountingAccount = array(), $type = '')
|
public function getAccountingCodeToBind(Societe $buyer, Societe $seller, Product $product, $facture, $factureDet, $accountingAccount = array(), $type = '')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -606,9 +606,13 @@ class BookKeeping extends CommonObject
|
|||||||
if (empty($this->credit)) {
|
if (empty($this->credit)) {
|
||||||
$this->credit = 0;
|
$this->credit = 0;
|
||||||
}
|
}
|
||||||
|
if (empty($this->montant)) {
|
||||||
|
$this->montant = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$this->debit = price2num($this->debit, 'MT');
|
$this->debit = price2num($this->debit, 'MT');
|
||||||
$this->credit = price2num($this->credit, 'MT');
|
$this->credit = price2num($this->credit, 'MT');
|
||||||
|
$this->montant = price2num($this->montant, 'MT');
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
@ -1661,11 +1665,10 @@ class BookKeeping extends CommonObject
|
|||||||
$this->doc_date = $this->db->jdate($obj->doc_date);
|
$this->doc_date = $this->db->jdate($obj->doc_date);
|
||||||
$this->doc_ref = $obj->doc_ref;
|
$this->doc_ref = $obj->doc_ref;
|
||||||
$this->doc_type = $obj->doc_type;
|
$this->doc_type = $obj->doc_type;
|
||||||
$this->date_creation = $obj->date_creation;
|
$this->date_creation = $this->db->jdate($obj->date_creation);
|
||||||
$this->date_modification = $obj->date_modification;
|
$this->date_modification = $this->db->jdate($obj->date_modification);
|
||||||
$this->date_export = $obj->date_export;
|
$this->date_export = $this->db->jdate($obj->date_export);
|
||||||
$this->date_validation = $obj->date_validated;
|
$this->date_validation = $this->db->jdate($obj->date_validation);
|
||||||
$this->date_validation = $obj->date_validation;
|
|
||||||
} else {
|
} else {
|
||||||
$this->error = "Error ".$this->db->lasterror();
|
$this->error = "Error ".$this->db->lasterror();
|
||||||
dol_syslog(__METHOD__.$this->error, LOG_ERR);
|
dol_syslog(__METHOD__.$this->error, LOG_ERR);
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013 Olivier Geffroy <jeff@jeffinfo.com>
|
/* Copyright (C) 2013 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013-2021 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2013-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -174,7 +174,9 @@ if ($action == 'validatehistory') {
|
|||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_sell_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa2.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_sell_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa2.entity = ".$conf->entity;
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa3 ON " . $alias_product_perentity . ".accountancy_code_sell_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa3.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa3 ON " . $alias_product_perentity . ".accountancy_code_sell_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa3.entity = ".$conf->entity;
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_societe_perentity . ".accountancy_code_sell = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_societe_perentity . ".accountancy_code_sell = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity;
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0 AND l.product_type <= 2 AND f.entity = ".((int) $conf->entity);
|
$sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
||||||
|
$sql .= " AND l.product_type <= 2";
|
||||||
|
$sql .= " AND f.entity IN (".getEntity('invoice', 0).")"; // We don't share object for accountancy
|
||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -158,8 +158,8 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Mass actions
|
// Mass actions
|
||||||
$objectclass = 'AccountingAccount';
|
$objectclass = 'AccountingAccount';
|
||||||
$permissiontoread = $user->rights->accounting->read;
|
$permissiontoread = $user->hasRight('accounting', 'read');
|
||||||
$permissiontodelete = $user->rights->accounting->delete;
|
$permissiontodelete = $user->hasRight('accounting', 'delete');
|
||||||
$uploaddir = $conf->accounting->dir_output;
|
$uploaddir = $conf->accounting->dir_output;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||||
}
|
}
|
||||||
@ -469,7 +469,7 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) {
|
if (!empty($msg)) {
|
||||||
print $msg.'<br>';
|
print $msg.'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -150,8 +150,8 @@ if (empty($reshook)) {
|
|||||||
// Mass actions
|
// Mass actions
|
||||||
$objectclass = 'ExpenseReport';
|
$objectclass = 'ExpenseReport';
|
||||||
$objectlabel = 'ExpenseReport';
|
$objectlabel = 'ExpenseReport';
|
||||||
$permissiontoread = $user->rights->expensereport->read;
|
$permissiontoread = $user->hasRight('accounting', 'read');
|
||||||
$permissiontodelete = $user->rights->expensereport->delete;
|
$permissiontodelete = $user->hasRight('accounting', 'delete');
|
||||||
$uploaddir = $conf->expensereport->dir_output;
|
$uploaddir = $conf->expensereport->dir_output;
|
||||||
include DOL_DOCUMENT_ROOT . '/core/actions_massactions.inc.php';
|
include DOL_DOCUMENT_ROOT . '/core/actions_massactions.inc.php';
|
||||||
}
|
}
|
||||||
@ -370,7 +370,7 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoExpenseReport").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoExpenseReport").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) {
|
if (!empty($msg)) {
|
||||||
print $msg.'<br>';
|
print $msg.'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -305,8 +305,16 @@ if ($result) {
|
|||||||
|
|
||||||
// get_url may return -1 which is not traversable
|
// get_url may return -1 which is not traversable
|
||||||
if (is_array($links) && count($links) > 0) {
|
if (is_array($links) && count($links) > 0) {
|
||||||
|
$is_sc = false;
|
||||||
|
foreach ($links as $v) {
|
||||||
|
if ($v['type'] == 'sc') {
|
||||||
|
$is_sc = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
// Now loop on each link of record in bank (code similar to bankentries_list.php)
|
// Now loop on each link of record in bank (code similar to bankentries_list.php)
|
||||||
foreach ($links as $key => $val) {
|
foreach ($links as $key => $val) {
|
||||||
|
if ($links[$key]['type'] == 'user' && !$is_sc) continue;
|
||||||
if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'member', 'payment_loan', 'payment_salary', 'payment_various'))) {
|
if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'member', 'payment_loan', 'payment_salary', 'payment_various'))) {
|
||||||
// So we excluded 'company' and 'user' here. We want only payment lines
|
// So we excluded 'company' and 'user' here. We want only payment lines
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2021 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2021 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013-2021 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2013-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -38,7 +38,7 @@ $validatemonth = GETPOST('validatemonth', 'int');
|
|||||||
$validateyear = GETPOST('validateyear', 'int');
|
$validateyear = GETPOST('validateyear', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if (empty($conf->accounting->enabled)) {
|
if (!isModEnabled('accounting')) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0) {
|
if ($user->socid > 0) {
|
||||||
@ -75,7 +75,7 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
$chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version');
|
$chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if (empty($conf->accounting->enabled)) {
|
if (!isModEnabled('accounting')) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0) {
|
if ($user->socid > 0) {
|
||||||
@ -171,8 +171,10 @@ if ($action == 'validatehistory') {
|
|||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON " . $alias_product_perentity . ".accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON " . $alias_product_perentity . ".accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa.entity = ".$conf->entity;
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_buy_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa2.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa2 ON " . $alias_product_perentity . ".accountancy_code_buy_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa2.entity = ".$conf->entity;
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa3 ON " . $alias_product_perentity . ".accountancy_code_buy_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa3.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa3 ON " . $alias_product_perentity . ".accountancy_code_buy_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa3.entity = ".$conf->entity;
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_societe_perentity . ".accountancy_code_buy = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa4 ON " . $alias_product_perentity . ".accountancy_code_buy = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode)."' AND aa4.entity = ".$conf->entity;
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0 AND l.product_type <= 2 AND f.entity = ".((int) $conf->entity);
|
$sql .= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
||||||
|
$sql .= " AND l.product_type <= 2";
|
||||||
|
$sql .= " AND f.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
@ -373,10 +375,14 @@ $sql .= " AND ff.fk_statut > 0";
|
|||||||
$sql .= " AND ffd.product_type <= 2";
|
$sql .= " AND ffd.product_type <= 2";
|
||||||
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
||||||
$sql .= " AND aa.account_number IS NULL";
|
$sql .= " AND aa.account_number IS NULL";
|
||||||
|
if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.")";
|
||||||
|
} else {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_DEPOSIT.")";
|
||||||
|
}
|
||||||
$sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label";
|
$sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label";
|
||||||
$sql .= ' ORDER BY aa.account_number';
|
|
||||||
|
|
||||||
dol_syslog('htdocs/accountancy/supplier/index.php');
|
dol_syslog('htdocs/accountancy/supplier/index.php', LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
@ -474,11 +480,17 @@ $sql .= " AND ff.datef <= '".$db->idate($search_date_end)."'";
|
|||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
|
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
||||||
$sql .= " AND ff.fk_statut > 0";
|
$sql .= " AND ff.fk_statut > 0";
|
||||||
$sql .= " AND ffd.product_type <= 2";
|
$sql .= " AND ffd.product_type <= 2";
|
||||||
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.")";
|
||||||
|
} else {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.", ".FactureFournisseur::TYPE_DEPOSIT.")";
|
||||||
|
}
|
||||||
$sql .= " AND aa.account_number IS NOT NULL";
|
$sql .= " AND aa.account_number IS NOT NULL";
|
||||||
$sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label";
|
$sql .= " GROUP BY ffd.fk_code_ventilation,aa.account_number,aa.label";
|
||||||
|
$sql .= ' ORDER BY aa.account_number';
|
||||||
|
|
||||||
dol_syslog('htdocs/accountancy/supplier/index.php');
|
dol_syslog('htdocs/accountancy/supplier/index.php');
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
@ -494,13 +506,15 @@ if ($resql) {
|
|||||||
print length_accountg($row[0]);
|
print length_accountg($row[0]);
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>';
|
|
||||||
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind') {
|
if ($row[0] == 'tobind') {
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.((int) $y), $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.((int) $y), $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else {
|
} else {
|
||||||
print $row[1];
|
print $row[1];
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
for ($i = 2; $i <= 13; $i++) {
|
for ($i = 2; $i <= 13; $i++) {
|
||||||
print '<td class="right nowraponall amount">';
|
print '<td class="right nowraponall amount">';
|
||||||
print price($row[$i]);
|
print price($row[$i]);
|
||||||
@ -523,7 +537,6 @@ print "</table>\n";
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
@ -560,9 +573,14 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange
|
|||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND ff.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
|
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
||||||
$sql .= " AND ff.fk_statut > 0";
|
$sql .= " AND ff.fk_statut > 0";
|
||||||
$sql .= " AND ffd.product_type <= 2";
|
$sql .= " AND ffd.product_type <= 2";
|
||||||
$sql .= " AND ff.entity IN (".getEntity('facture_fourn', 0).")"; // We don't share object for accountancy
|
if (!empty($conf->global->FACTURE_SUPPLIER_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.")";
|
||||||
|
} else {
|
||||||
|
$sql .= " AND ff.type IN (".FactureFournisseur::TYPE_STANDARD.", ".FactureFournisseur::TYPE_REPLACEMENT.", ".FactureFournisseur::TYPE_CREDIT_NOTE.", ".FactureFournisseur::TYPE_DEPOSIT.")";
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog('htdocs/accountancy/supplier/index.php');
|
dol_syslog('htdocs/accountancy/supplier/index.php');
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|||||||
@ -384,7 +384,7 @@ if ($result) {
|
|||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
|
|
||||||
print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit);
|
print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num_lines, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit);
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilDoneSupplier").'</span><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilDoneSupplier").'</span><br>';
|
||||||
|
|
||||||
print '<br><div class="inline-block divButAction paddingbottom">'.$langs->trans("ChangeAccount").' ';
|
print '<br><div class="inline-block divButAction paddingbottom">'.$langs->trans("ChangeAccount").' ';
|
||||||
|
|||||||
@ -161,8 +161,8 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Mass actions
|
// Mass actions
|
||||||
$objectclass = 'AccountingAccount';
|
$objectclass = 'AccountingAccount';
|
||||||
$permissiontoread = $user->rights->accounting->read;
|
$permissiontoread = $user->hasRight('accounting', 'read');
|
||||||
$permissiontodelete = $user->rights->accounting->delete;
|
$permissiontodelete = $user->hasRight('accounting', 'delete');
|
||||||
$uploaddir = $conf->accounting->dir_output;
|
$uploaddir = $conf->accounting->dir_output;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||||
}
|
}
|
||||||
@ -477,7 +477,7 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) {
|
if (!empty($msg)) {
|
||||||
print $msg.'<br>';
|
print $msg.'<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -108,7 +108,7 @@ if ($action == 'set_default') {
|
|||||||
$res3 = dolibarr_set_const($db, 'ADHERENT_CREATE_EXTERNAL_USER_LOGIN', GETPOST('ADHERENT_CREATE_EXTERNAL_USER_LOGIN', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res3 = dolibarr_set_const($db, 'ADHERENT_CREATE_EXTERNAL_USER_LOGIN', GETPOST('ADHERENT_CREATE_EXTERNAL_USER_LOGIN', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res4 = dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
// Use vat for invoice creation
|
// Use vat for invoice creation
|
||||||
if (!empty($conf->facture->enabled)) {
|
if (isModEnabled('facture')) {
|
||||||
$res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res4 = dolibarr_set_const($db, 'ADHERENT_VAT_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_VAT_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res5 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res5 = dolibarr_set_const($db, 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', GETPOST('ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) {
|
if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) {
|
||||||
@ -241,10 +241,10 @@ $arraychoices = array('0'=>$langs->trans("None"));
|
|||||||
if (!empty($conf->banque->enabled)) {
|
if (!empty($conf->banque->enabled)) {
|
||||||
$arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
$arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
||||||
}
|
}
|
||||||
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
$arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly");
|
$arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly");
|
||||||
}
|
}
|
||||||
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
$arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice");
|
$arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice");
|
||||||
}
|
}
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -256,7 +256,7 @@ print '</td>';
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Use vat for invoice creation
|
// Use vat for invoice creation
|
||||||
if (!empty($conf->facture->enabled)) {
|
if (isModEnabled('facture')) {
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("VATToUseForSubscriptions").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("VATToUseForSubscriptions").'</td>';
|
||||||
if (!empty($conf->banque->enabled)) {
|
if (!empty($conf->banque->enabled)) {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
|
|||||||
@ -162,11 +162,11 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
|
|
||||||
$newcardbutton = '';
|
$newcardbutton = '';
|
||||||
if (!empty($conf->agenda->enabled)) {
|
if (isModEnabled('agenda')) {
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).($object->id > 0 ? '?id='.$object->id : '').'&origin=member&originid='.$id);
|
$newcardbutton .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).($object->id > 0 ? '?id='.$object->id : '').'&origin=member&originid='.$id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$param = '&id='.$id;
|
$param = '&id='.$id;
|
||||||
|
|||||||
@ -285,7 +285,7 @@ if (empty($reshook)) {
|
|||||||
$object->lastname = trim(GETPOST("lastname", 'alphanohtml'));
|
$object->lastname = trim(GETPOST("lastname", 'alphanohtml'));
|
||||||
$object->gender = trim(GETPOST("gender", 'alphanohtml'));
|
$object->gender = trim(GETPOST("gender", 'alphanohtml'));
|
||||||
$object->login = trim(GETPOST("login", 'alphanohtml'));
|
$object->login = trim(GETPOST("login", 'alphanohtml'));
|
||||||
$object->pass = trim(GETPOST("pass", 'alpha'));
|
$object->pass = trim(GETPOST("pass", 'none')); // For password, we must use 'none'
|
||||||
|
|
||||||
$object->societe = trim(GETPOST("societe", 'alphanohtml')); // deprecated
|
$object->societe = trim(GETPOST("societe", 'alphanohtml')); // deprecated
|
||||||
$object->company = trim(GETPOST("societe", 'alphanohtml'));
|
$object->company = trim(GETPOST("societe", 'alphanohtml'));
|
||||||
@ -450,8 +450,8 @@ if (empty($reshook)) {
|
|||||||
$email = preg_replace('/\s+/', '', GETPOST("member_email", 'alpha'));
|
$email = preg_replace('/\s+/', '', GETPOST("member_email", 'alpha'));
|
||||||
$url = trim(GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL));
|
$url = trim(GETPOST('url', 'custom', 0, FILTER_SANITIZE_URL));
|
||||||
$login = GETPOST("member_login", 'alphanohtml');
|
$login = GETPOST("member_login", 'alphanohtml');
|
||||||
$pass = GETPOST("password", 'alpha');
|
$pass = GETPOST("password", 'none'); // For password, we use 'none'
|
||||||
$photo = GETPOST("photo", 'alpha');
|
$photo = GETPOST("photo", 'alphanohtml');
|
||||||
$morphy = GETPOST("morphy", 'alphanohtml');
|
$morphy = GETPOST("morphy", 'alphanohtml');
|
||||||
$public = GETPOST("public", 'alphanohtml');
|
$public = GETPOST("public", 'alphanohtml');
|
||||||
|
|
||||||
@ -634,7 +634,7 @@ if (empty($reshook)) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$errmesg = $object->error;
|
setEventMessages($object->error, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -999,7 +999,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
||||||
$generated_password = getRandomPassword(false);
|
$generated_password = getRandomPassword(false);
|
||||||
print '<tr><td><span class="fieldrequired">'.$langs->trans("Password").'</span></td><td>';
|
print '<tr><td><span class="fieldrequired">'.$langs->trans("Password").'</span></td><td>';
|
||||||
print '<input type="text" class="minwidth300" maxlength="50" name="password" value="'.$generated_password.'">';
|
print '<input type="text" class="minwidth300" maxlength="50" name="password" value="'.dol_escape_htmltag($generated_password).'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1224,7 +1224,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
// Password
|
// Password
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Password").'</td><td><input type="password" name="pass" class="minwidth300" maxlength="50" value="'.(GETPOSTISSET("pass") ? GETPOST("pass", '', 2) : $object->pass).'"></td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("Password").'</td><td><input type="password" name="pass" class="minwidth300" maxlength="50" value="'.dol_escape_htmltag(GETPOSTISSET("pass") ? GETPOST("pass", 'none', 2) : $object->pass).'"></td></tr>';
|
||||||
}
|
}
|
||||||
// Morphy
|
// Morphy
|
||||||
$morphys["phy"] = $langs->trans("Physical");
|
$morphys["phy"] = $langs->trans("Physical");
|
||||||
@ -1280,7 +1280,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
|
print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
|
||||||
}
|
}
|
||||||
print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>';
|
print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>';
|
||||||
print '<tr><td><input type="file" class="flat" name="photo" id="photoinput"></td></tr>';
|
print '<tr><td>';
|
||||||
|
$maxfilesizearray = getMaxFileSizeArray();
|
||||||
|
$maxmin = $maxfilesizearray['maxmin'];
|
||||||
|
if ($maxmin > 0) {
|
||||||
|
print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
|
||||||
|
}
|
||||||
|
print '<input type="file" class="flat" name="photo" id="photoinput">';
|
||||||
|
print '</td></tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -2777,24 +2777,10 @@ class Adherent extends CommonObject
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if ($obj->fk_user_author) {
|
|
||||||
$cuser = new User($this->db);
|
|
||||||
$cuser->fetch($obj->fk_user_author);
|
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_valid) {
|
|
||||||
$vuser = new User($this->db);
|
|
||||||
$vuser->fetch($obj->fk_user_valid);
|
|
||||||
$this->user_validation = $vuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_mod) {
|
|
||||||
$muser = new User($this->db);
|
|
||||||
$muser->fetch($obj->fk_user_mod);
|
|
||||||
$this->user_modification = $muser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->user_creation_id = $obj->fk_user_author;
|
||||||
|
$this->user_validation_id = $obj->fk_user_valid;
|
||||||
|
$this->user_modification_id = $obj->fk_user_mod;
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_validation = $this->db->jdate($obj->datev);
|
$this->date_validation = $this->db->jdate($obj->datev);
|
||||||
$this->date_modification = $this->db->jdate($obj->datem);
|
$this->date_modification = $this->db->jdate($obj->datem);
|
||||||
|
|||||||
@ -831,11 +831,11 @@ if ($rowid > 0) {
|
|||||||
$bankviainvoice = 1;
|
$bankviainvoice = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
if (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
$bankviainvoice = 1;
|
$bankviainvoice = 1;
|
||||||
} elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && !empty($conf->banque->enabled)) {
|
} elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && !empty($conf->banque->enabled)) {
|
||||||
$bankdirect = 1;
|
$bankdirect = 1;
|
||||||
} elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
} elseif (!empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && !empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
$invoiceonly = 1;
|
$invoiceonly = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -982,7 +982,7 @@ if ($rowid > 0) {
|
|||||||
print '"></td></tr>';
|
print '"></td></tr>';
|
||||||
|
|
||||||
// Complementary action
|
// Complementary action
|
||||||
if ((!empty($conf->banque->enabled) || !empty($conf->facture->enabled)) && empty($conf->global->ADHERENT_SUBSCRIPTION_HIDECOMPLEMENTARYACTIONS)) {
|
if ((!empty($conf->banque->enabled) || isModEnabled('facture')) && empty($conf->global->ADHERENT_SUBSCRIPTION_HIDECOMPLEMENTARYACTIONS)) {
|
||||||
$company = new Societe($db);
|
$company = new Societe($db);
|
||||||
if ($object->fk_soc) {
|
if ($object->fk_soc) {
|
||||||
$result = $company->fetch($object->fk_soc);
|
$result = $company->fetch($object->fk_soc);
|
||||||
@ -1003,7 +1003,7 @@ if ($rowid > 0) {
|
|||||||
print '><label for="bankdirect"> '.$langs->trans("MoreActionBankDirect").'</label><br>';
|
print '><label for="bankdirect"> '.$langs->trans("MoreActionBankDirect").'</label><br>';
|
||||||
}
|
}
|
||||||
// Add invoice with no payments
|
// Add invoice with no payments
|
||||||
if (!empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
if (!empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ? ' checked' : '');
|
print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ? ' checked' : '');
|
||||||
//if (empty($object->fk_soc)) print ' disabled';
|
//if (empty($object->fk_soc)) print ' disabled';
|
||||||
print '><label for="invoiceonly"> '.$langs->trans("MoreActionInvoiceOnly");
|
print '><label for="invoiceonly"> '.$langs->trans("MoreActionInvoiceOnly");
|
||||||
@ -1033,7 +1033,7 @@ if ($rowid > 0) {
|
|||||||
print '</label><br>';
|
print '</label><br>';
|
||||||
}
|
}
|
||||||
// Add invoice with payments
|
// Add invoice with payments
|
||||||
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && isModEnabled('facture')) {
|
||||||
print '<input type="radio" class="moreaction" id="bankviainvoice" name="paymentsave" value="bankviainvoice"'.(!empty($bankviainvoice) ? ' checked' : '');
|
print '<input type="radio" class="moreaction" id="bankviainvoice" name="paymentsave" value="bankviainvoice"'.(!empty($bankviainvoice) ? ' checked' : '');
|
||||||
//if (empty($object->fk_soc)) print ' disabled';
|
//if (empty($object->fk_soc)) print ' disabled';
|
||||||
print '><label for="bankviainvoice"> '.$langs->trans("MoreActionBankViaInvoice");
|
print '><label for="bankviainvoice"> '.$langs->trans("MoreActionBankViaInvoice");
|
||||||
|
|||||||
@ -220,7 +220,7 @@ if ($action == 'edit') {
|
|||||||
print '<table class="border centpercent">';
|
print '<table class="border centpercent">';
|
||||||
print '<tr><td class="tdtop titlefieldcreate fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" class="minwidth300" value="'.dol_escape_htmltag($object->multilangs[$key]["label"]).'"></td></tr>';
|
print '<tr><td class="tdtop titlefieldcreate fieldrequired">'.$langs->trans('Label').'</td><td><input name="libelle-'.$key.'" class="minwidth300" value="'.dol_escape_htmltag($object->multilangs[$key]["label"]).'"></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-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
|
$doleditor = new DolEditor("desc-$key", $object->multilangs[$key]["description"], '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -283,7 +283,7 @@ if ($action == 'create' && $user->rights->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, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
|
$doleditor = new DolEditor('desc', '', '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -53,18 +53,18 @@ if ($reshook < 0) {
|
|||||||
|
|
||||||
if (($action == 'update' && !GETPOST("cancel", 'alpha'))
|
if (($action == 'update' && !GETPOST("cancel", 'alpha'))
|
||||||
|| ($action == 'updateedit')) {
|
|| ($action == 'updateedit')) {
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_TOWN", GETPOST("town", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_TOWN", GETPOST("town", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ZIP", GETPOST("zipcode", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ZIP", GETPOST("zipcode", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_STATE", GETPOST("state_id", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_STATE", GETPOST("state_id", 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_REGION", GETPOST("region_code", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_COUNTRY", GETPOST('country_id', 'int'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_COUNTRY", GETPOST('country_id', 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_PHONE", GETPOST("tel", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_PHONE", GETPOST("tel", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_FAX", GETPOST("fax", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_FAX", GETPOST("fax", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_MAIL", GETPOST("mail", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_MAIL", GETPOST("mail", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_WEB", GETPOST("web", 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_WEB", GETPOST("web", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note", 'restricthtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note", 'restricthtml'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
if ($action != 'updateedit' && !$error) {
|
if ($action != 'updateedit' && !$error) {
|
||||||
@ -119,17 +119,17 @@ print '<tr class="liste_titre"><th class="titlefieldcreate wordbreak">'.$langs->
|
|||||||
|
|
||||||
// Name
|
// Name
|
||||||
print '<tr class="oddeven"><td><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
||||||
print '<input name="nom" id="name" class="minwidth200" value="'.(GETPOSTISSET('nom') ? GETPOST('nom', 'nohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_NAME) ? $conf->global->MAIN_INFO_ACCOUNTANT_NAME : '')).'"'.(empty($conf->global->MAIN_INFO_ACCOUNTANT_NAME) ? ' autofocus="autofocus"' : '').'></td></tr>'."\n";
|
print '<input name="nom" id="name" class="minwidth200" value="'.dol_escape_htmltag(GETPOSTISSET('nom') ? GETPOST('nom', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_NAME) ? $conf->global->MAIN_INFO_ACCOUNTANT_NAME : '')).'"'.(empty($conf->global->MAIN_INFO_ACCOUNTANT_NAME) ? ' autofocus="autofocus"' : '').'></td></tr>'."\n";
|
||||||
|
|
||||||
// Address
|
// Address
|
||||||
print '<tr class="oddeven"><td><label for="address">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="address">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
||||||
print '<textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_3.'">'.(GETPOSTISSET('address') ? GETPOST('address', 'nohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS) ? $conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS : '')).'</textarea></td></tr>'."\n";
|
print '<textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag(GETPOSTISSET('address') ? GETPOST('address', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS) ? $conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS : '')).'</textarea></td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="zipcode">'.$langs->trans("CompanyZip").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="zipcode">'.$langs->trans("CompanyZip").'</label></td><td>';
|
||||||
print '<input class="minwidth100" name="zipcode" id="zipcode" value="'.(GETPOSTISSET('zipcode') ? GETPOST('zipcode', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_ZIP) ? $conf->global->MAIN_INFO_ACCOUNTANT_ZIP : '')).'"></td></tr>'."\n";
|
print '<input class="minwidth100" name="zipcode" id="zipcode" value="'.dol_escape_htmltag(GETPOSTISSET('zipcode') ? GETPOST('zipcode', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_ZIP) ? $conf->global->MAIN_INFO_ACCOUNTANT_ZIP : '')).'"></td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="town">'.$langs->trans("CompanyTown").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="town">'.$langs->trans("CompanyTown").'</label></td><td>';
|
||||||
print '<input name="town" class="minwidth100" id="town" value="'.(GETPOSTISSET('town') ? GETPOST('town', 'nohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_TOWN) ? $conf->global->MAIN_INFO_ACCOUNTANT_TOWN : '')).'"></td></tr>'."\n";
|
print '<input name="town" class="minwidth100" id="town" value="'.dol_escape_htmltag(GETPOSTISSET('town') ? GETPOST('town', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_TOWN) ? $conf->global->MAIN_INFO_ACCOUNTANT_TOWN : '')).'"></td></tr>'."\n";
|
||||||
|
|
||||||
// Country
|
// Country
|
||||||
print '<tr class="oddeven"><td><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td class="maxwidthonsmartphone">';
|
print '<tr class="oddeven"><td><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td class="maxwidthonsmartphone">';
|
||||||
@ -142,33 +142,33 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="state_id">'.$langs->trans("State").'</label></td><td class="maxwidthonsmartphone">';
|
print '<tr class="oddeven"><td><label for="state_id">'.$langs->trans("State").'</label></td><td class="maxwidthonsmartphone">';
|
||||||
print img_picto('', 'state', 'class="pictofixedwidth"');
|
print img_picto('', 'state', 'class="pictofixedwidth"');
|
||||||
print $formcompany->select_state((GETPOSTISSET('state_id') ? GETPOST('state_id', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_STATE) ? $conf->global->MAIN_INFO_ACCOUNTANT_STATE : '')), (GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY) ? $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY : '')), 'state_id');
|
print $formcompany->select_state((GETPOSTISSET('state_id') ? GETPOST('state_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_STATE) ? $conf->global->MAIN_INFO_ACCOUNTANT_STATE : '')), (GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY) ? $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY : '')), 'state_id');
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
|
||||||
print img_picto('', 'object_phoning', '', false, 0, 0, '', 'pictofixedwidth');
|
print img_picto('', 'object_phoning', '', false, 0, 0, '', 'pictofixedwidth');
|
||||||
print '<input name="tel" id="phone" class="maxwidth150 widthcentpercentminusx" value="'.(GETPOSTISSET('tel') ? GETPOST('tel', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_PHONE) ? $conf->global->MAIN_INFO_ACCOUNTANT_PHONE : '')).'"></td></tr>';
|
print '<input name="tel" id="phone" class="maxwidth150 widthcentpercentminusx" value="'.dol_escape_htmltag(GETPOSTISSET('tel') ? GETPOST('tel', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_PHONE) ? $conf->global->MAIN_INFO_ACCOUNTANT_PHONE : '')).'"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
|
||||||
print img_picto('', 'object_phoning_fax', '', false, 0, 0, '', 'pictofixedwidth');
|
print img_picto('', 'object_phoning_fax', '', false, 0, 0, '', 'pictofixedwidth');
|
||||||
print '<input name="fax" id="fax" class="maxwidth150 widthcentpercentminusx" value="'.(GETPOSTISSET('fax') ? GETPOST('fax', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_FAX) ? $conf->global->MAIN_INFO_ACCOUNTANT_FAX : '')).'"></td></tr>';
|
print '<input name="fax" id="fax" class="maxwidth150 widthcentpercentminusx" value="'.dol_escape_htmltag(GETPOSTISSET('fax') ? GETPOST('fax', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_FAX) ? $conf->global->MAIN_INFO_ACCOUNTANT_FAX : '')).'"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
|
||||||
print img_picto('', 'object_email', '', false, 0, 0, '', 'pictofixedwidth');
|
print img_picto('', 'object_email', '', false, 0, 0, '', 'pictofixedwidth');
|
||||||
print '<input name="mail" id="email" class="maxwidth300 widthcentpercentminusx" value="'.(GETPOSTISSET('mail') ? GETPOST('mail', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_MAIL) ? $conf->global->MAIN_INFO_ACCOUNTANT_MAIL : '')).'"></td></tr>';
|
print '<input name="mail" id="email" class="maxwidth300 widthcentpercentminusx" value="'.dol_escape_htmltag(GETPOSTISSET('mail') ? GETPOST('mail', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_MAIL) ? $conf->global->MAIN_INFO_ACCOUNTANT_MAIL : '')).'"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Web
|
// Web
|
||||||
print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
|
||||||
print img_picto('', 'globe', '', false, 0, 0, '', 'pictofixedwidth');
|
print img_picto('', 'globe', '', false, 0, 0, '', 'pictofixedwidth');
|
||||||
print '<input name="web" id="web" class="maxwidth300 widthcentpercentminusx" value="'.(GETPOSTISSET('web') ? GETPOST('web', 'alpha') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_WEB) ? $conf->global->MAIN_INFO_ACCOUNTANT_WEB : '')).'"></td></tr>';
|
print '<input name="web" id="web" class="maxwidth300 widthcentpercentminusx" value="'.dol_escape_htmltag(GETPOSTISSET('web') ? GETPOST('web', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_WEB) ? $conf->global->MAIN_INFO_ACCOUNTANT_WEB : '')).'"></td></tr>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Code
|
// Code
|
||||||
print '<tr class="oddeven"><td><label for="code">'.$langs->trans("AccountantFileNumber").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="code">'.$langs->trans("AccountantFileNumber").'</label></td><td>';
|
||||||
print '<input name="code" id="code" class="minwidth100" value="'.(GETPOSTISSET('code') ? GETPOST('code', 'nohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_CODE) ? $conf->global->MAIN_INFO_ACCOUNTANT_CODE : '')).'"></td></tr>'."\n";
|
print '<input name="code" id="code" class="minwidth100" value="'.dol_escape_htmltag(GETPOSTISSET('code') ? GETPOST('code', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_ACCOUNTANT_CODE) ? $conf->global->MAIN_INFO_ACCOUNTANT_CODE : '')).'"></td></tr>'."\n";
|
||||||
|
|
||||||
// Note
|
// Note
|
||||||
print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
|
print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
|
||||||
|
|||||||
@ -453,10 +453,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnBOMs"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnBOMs"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'BOM_FREE_TEXT';
|
$variablename = 'BOM_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -261,10 +261,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnChequeReceipts"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnChequeReceipts"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'BANK_CHEQUERECEIPT_FREE_TEXT';
|
$variablename = 'BANK_CHEQUERECEIPT_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -612,7 +612,7 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'ORDER_FREE_TEXT';
|
$variablename = 'ORDER_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
@ -661,7 +661,7 @@ if ($conf->banque->enabled) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ask for warehouse during order
|
// Ask for warehouse during order
|
||||||
if ($conf->stock->enabled) {
|
if (isModEnabled('stock')) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $langs->trans("WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER").'</td><td> </td><td class="center">';
|
print $langs->trans("WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER").'</td><td> </td><td class="center">';
|
||||||
if (! empty($conf->use_javascript_ajax)) {
|
if (! empty($conf->use_javascript_ajax)) {
|
||||||
|
|||||||
@ -91,9 +91,9 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha'))
|
|||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP", GETPOST("MAIN_INFO_SOCIETE_ZIP", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP", GETPOST("MAIN_INFO_SOCIETE_ZIP", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_MONNAIE", GETPOST("currency", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_MONNAIE", GETPOST("currency", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||||
@ -178,19 +178,19 @@ if (($action == 'update' && !GETPOST("cancel", 'alpha'))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_GDPR", GETPOST("MAIN_INFO_GDPR", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_GDPR", GETPOST("MAIN_INFO_GDPR", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'nohtml'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
@ -403,18 +403,18 @@ print '<tr class="liste_titre"><th class="titlefieldcreate wordbreak">'.$langs->
|
|||||||
|
|
||||||
// Name
|
// Name
|
||||||
print '<tr class="oddeven"><td class="fieldrequired wordbreak"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
print '<tr class="oddeven"><td class="fieldrequired wordbreak"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
||||||
print '<input name="nom" id="name" class="minwidth200" value="'.dol_escape_htmltag((GETPOSTISSET('nom') ? GETPOST('nom', 'nohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? $conf->global->MAIN_INFO_SOCIETE_NOM : ''))).'"'.(empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? ' autofocus="autofocus"' : '').'></td></tr>'."\n";
|
print '<input name="nom" id="name" class="minwidth200" value="'.dol_escape_htmltag((GETPOSTISSET('nom') ? GETPOST('nom', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? $conf->global->MAIN_INFO_SOCIETE_NOM : ''))).'"'.(empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? ' autofocus="autofocus"' : '').'></td></tr>'."\n";
|
||||||
|
|
||||||
// Address
|
// Address
|
||||||
print '<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_ADDRESS">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_ADDRESS">'.$langs->trans("CompanyAddress").'</label></td><td>';
|
||||||
print '<textarea name="MAIN_INFO_SOCIETE_ADDRESS" id="MAIN_INFO_SOCIETE_ADDRESS" class="quatrevingtpercent" rows="'.ROWS_3.'">'.(GETPOSTISSET('MAIN_INFO_SOCIETE_ADDRESS') ? GETPOST('MAIN_INFO_SOCIETE_ADDRESS', 'nohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS) ? $conf->global->MAIN_INFO_SOCIETE_ADDRESS : '')).'</textarea></td></tr>'."\n";
|
print '<textarea name="MAIN_INFO_SOCIETE_ADDRESS" id="MAIN_INFO_SOCIETE_ADDRESS" class="quatrevingtpercent" rows="'.ROWS_3.'">'.(GETPOSTISSET('MAIN_INFO_SOCIETE_ADDRESS') ? GETPOST('MAIN_INFO_SOCIETE_ADDRESS', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS) ? $conf->global->MAIN_INFO_SOCIETE_ADDRESS : '')).'</textarea></td></tr>'."\n";
|
||||||
|
|
||||||
// Zip
|
// Zip
|
||||||
print '<tr class="oddeven" id="trzipbeforecountry"><td><label for="MAIN_INFO_SOCIETE_ZIP">'.$langs->trans("CompanyZip").'</label></td><td>';
|
print '<tr class="oddeven" id="trzipbeforecountry"><td><label for="MAIN_INFO_SOCIETE_ZIP">'.$langs->trans("CompanyZip").'</label></td><td>';
|
||||||
print '<input class="width100" name="MAIN_INFO_SOCIETE_ZIP" id="MAIN_INFO_SOCIETE_ZIP" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_ZIP') ? GETPOST('MAIN_INFO_SOCIETE_ZIP', 'alpha') : (!empty($conf->global->MAIN_INFO_SOCIETE_ZIP) ? $conf->global->MAIN_INFO_SOCIETE_ZIP : ''))).'"></td></tr>'."\n";
|
print '<input class="width100" name="MAIN_INFO_SOCIETE_ZIP" id="MAIN_INFO_SOCIETE_ZIP" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_ZIP') ? GETPOST('MAIN_INFO_SOCIETE_ZIP', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_ZIP) ? $conf->global->MAIN_INFO_SOCIETE_ZIP : ''))).'"></td></tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven" id="trtownbeforecountry"><td><label for="MAIN_INFO_SOCIETE_TOWN">'.$langs->trans("CompanyTown").'</label></td><td>';
|
print '<tr class="oddeven" id="trtownbeforecountry"><td><label for="MAIN_INFO_SOCIETE_TOWN">'.$langs->trans("CompanyTown").'</label></td><td>';
|
||||||
print '<input name="MAIN_INFO_SOCIETE_TOWN" class="minwidth200" id="MAIN_INFO_SOCIETE_TOWN" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_TOWN') ? GETPOST('MAIN_INFO_SOCIETE_TOWN', 'nohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_TOWN) ? $conf->global->MAIN_INFO_SOCIETE_TOWN : ''))).'"></td></tr>'."\n";
|
print '<input name="MAIN_INFO_SOCIETE_TOWN" class="minwidth200" id="MAIN_INFO_SOCIETE_TOWN" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_TOWN') ? GETPOST('MAIN_INFO_SOCIETE_TOWN', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_TOWN) ? $conf->global->MAIN_INFO_SOCIETE_TOWN : ''))).'"></td></tr>'."\n";
|
||||||
|
|
||||||
// Country
|
// Country
|
||||||
print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td>';
|
print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td>';
|
||||||
@ -477,6 +477,11 @@ if (!empty($conf->barcode->enabled)) {
|
|||||||
// Logo
|
// Logo
|
||||||
print '<tr class="oddeven"><td><label for="logo">'.$form->textwithpicto($langs->trans("Logo"), 'png, jpg').'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="logo">'.$form->textwithpicto($langs->trans("Logo"), 'png, jpg').'</label></td><td>';
|
||||||
print '<div class="centpercent nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
|
print '<div class="centpercent nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
|
||||||
|
$maxfilesizearray = getMaxFileSizeArray();
|
||||||
|
$maxmin = $maxfilesizearray['maxmin'];
|
||||||
|
if ($maxmin > 0) {
|
||||||
|
print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
|
||||||
|
}
|
||||||
print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo" id="logo" accept="image/*">';
|
print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo" id="logo" accept="image/*">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
if (!empty($mysoc->logo_small)) {
|
if (!empty($mysoc->logo_small)) {
|
||||||
@ -514,6 +519,11 @@ print '</td></tr>';
|
|||||||
// Logo (squarred)
|
// Logo (squarred)
|
||||||
print '<tr class="oddeven"><td><label for="logo_squarred">'.$form->textwithpicto($langs->trans("LogoSquarred"), 'png, jpg').'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="logo_squarred">'.$form->textwithpicto($langs->trans("LogoSquarred"), 'png, jpg').'</label></td><td>';
|
||||||
print '<div class="centpercent nobordernopadding valignmiddle"><div class="inline-block marginrightonly">';
|
print '<div class="centpercent nobordernopadding valignmiddle"><div class="inline-block marginrightonly">';
|
||||||
|
$maxfilesizearray = getMaxFileSizeArray();
|
||||||
|
$maxmin = $maxfilesizearray['maxmin'];
|
||||||
|
if ($maxmin > 0) {
|
||||||
|
print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
|
||||||
|
}
|
||||||
print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo_squarred" id="logo_squarred" accept="image/*">';
|
print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo_squarred" id="logo_squarred" accept="image/*">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
if (!empty($mysoc->logo_squarred_small)) {
|
if (!empty($mysoc->logo_squarred_small)) {
|
||||||
@ -564,17 +574,17 @@ $langs->load("companies");
|
|||||||
|
|
||||||
// Managing Director(s)
|
// Managing Director(s)
|
||||||
print '<tr class="oddeven"><td><label for="director">'.$langs->trans("ManagingDirectors").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="director">'.$langs->trans("ManagingDirectors").'</label></td><td>';
|
||||||
print '<input name="MAIN_INFO_SOCIETE_MANAGERS" id="directors" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_MANAGERS') ? GETPOST('MAIN_INFO_SOCIETE_MANAGERS', 'nohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_MANAGERS) ? $conf->global->MAIN_INFO_SOCIETE_MANAGERS : ''))).'"></td></tr>';
|
print '<input name="MAIN_INFO_SOCIETE_MANAGERS" id="directors" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_MANAGERS') ? GETPOST('MAIN_INFO_SOCIETE_MANAGERS', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_MANAGERS) ? $conf->global->MAIN_INFO_SOCIETE_MANAGERS : ''))).'"></td></tr>';
|
||||||
|
|
||||||
// GDPR contact
|
// GDPR contact
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc"));
|
print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc"));
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
print '<input name="MAIN_INFO_GDPR" id="infodirector" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET("MAIN_INFO_GDPR") ? GETPOST("MAIN_INFO_GDPR", 'nohtml') : (!empty($conf->global->MAIN_INFO_GDPR) ? $conf->global->MAIN_INFO_GDPR : ''))).'"></td></tr>';
|
print '<input name="MAIN_INFO_GDPR" id="infodirector" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET("MAIN_INFO_GDPR") ? GETPOST("MAIN_INFO_GDPR", 'alphanohtml') : (!empty($conf->global->MAIN_INFO_GDPR) ? $conf->global->MAIN_INFO_GDPR : ''))).'"></td></tr>';
|
||||||
|
|
||||||
// Capital
|
// Capital
|
||||||
print '<tr class="oddeven"><td><label for="capital">'.$langs->trans("Capital").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="capital">'.$langs->trans("Capital").'</label></td><td>';
|
||||||
print '<input name="capital" id="capital" class="maxwidth100" value="'.dol_escape_htmltag((GETPOSTISSET('capital') ? GETPOST('capital', 'nohtml') : (!empty($conf->global->MAIN_INFO_CAPITAL) ? $conf->global->MAIN_INFO_CAPITAL : ''))).'"></td></tr>';
|
print '<input name="capital" id="capital" class="maxwidth100" value="'.dol_escape_htmltag((GETPOSTISSET('capital') ? GETPOST('capital', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_CAPITAL) ? $conf->global->MAIN_INFO_CAPITAL : ''))).'"></td></tr>';
|
||||||
|
|
||||||
// Juridical Status
|
// Juridical Status
|
||||||
print '<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans("JuridicalStatus").'</label></td><td>';
|
print '<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans("JuridicalStatus").'</label></td><td>';
|
||||||
|
|||||||
@ -179,7 +179,7 @@ foreach ($list as $key) {
|
|||||||
|
|
||||||
// Value
|
// Value
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.$conf->global->$key.'">';
|
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -445,10 +445,10 @@ print $form->textwithpicto($langs->trans("FreeLegalTextOnContracts"), $langs->tr
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
$variablename = 'CONTRACT_FREE_TEXT';
|
$variablename = 'CONTRACT_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|||||||
@ -105,7 +105,7 @@ if ($action == 'edit') {
|
|||||||
} elseif ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR') {
|
} elseif ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR') {
|
||||||
print $form->selectyesno($key, $conf->global->$key, 1);
|
print $form->selectyesno($key, $conf->global->$key, 1);
|
||||||
} else {
|
} else {
|
||||||
print '<input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.$conf->global->$key.'">';
|
print '<input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.getDolGlobalString($key).'">';
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -434,10 +434,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnDeliveryReceipts"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnDeliveryReceipts"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'DELIVERY_FREE_TEXT';
|
$variablename = 'DELIVERY_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -488,14 +488,14 @@ $tabcond[2] = true;
|
|||||||
$tabcond[3] = true;
|
$tabcond[3] = true;
|
||||||
$tabcond[4] = true;
|
$tabcond[4] = true;
|
||||||
$tabcond[5] = (!empty($conf->societe->enabled) || !empty($conf->adherent->enabled));
|
$tabcond[5] = (!empty($conf->societe->enabled) || !empty($conf->adherent->enabled));
|
||||||
$tabcond[6] = !empty($conf->agenda->enabled);
|
$tabcond[6] = isModEnabled('agenda');
|
||||||
$tabcond[7] = !empty($conf->tax->enabled);
|
$tabcond[7] = !empty($conf->tax->enabled);
|
||||||
$tabcond[8] = !empty($conf->societe->enabled);
|
$tabcond[8] = !empty($conf->societe->enabled);
|
||||||
$tabcond[9] = true;
|
$tabcond[9] = true;
|
||||||
$tabcond[10] = true;
|
$tabcond[10] = true;
|
||||||
$tabcond[11] = (!empty($conf->societe->enabled));
|
$tabcond[11] = (!empty($conf->societe->enabled));
|
||||||
$tabcond[12] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || !empty($conf->facture->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled));
|
$tabcond[12] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || isModEnabled('facture') || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled));
|
||||||
$tabcond[13] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || !empty($conf->facture->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled));
|
$tabcond[13] = (!empty($conf->commande->enabled) || !empty($conf->propal->enabled) || isModEnabled('facture') || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_invoice->enabled) || !empty($conf->supplier_order->enabled));
|
||||||
$tabcond[14] = (!empty($conf->product->enabled) && (!empty($conf->ecotax->enabled) || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY)));
|
$tabcond[14] = (!empty($conf->product->enabled) && (!empty($conf->ecotax->enabled) || !empty($conf->global->MAIN_SHOW_ECOTAX_DICTIONNARY)));
|
||||||
$tabcond[15] = true;
|
$tabcond[15] = true;
|
||||||
$tabcond[16] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS));
|
$tabcond[16] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS));
|
||||||
@ -508,12 +508,12 @@ $tabcond[22] = (!empty($conf->commande->enabled) || !empty($conf->propal->enable
|
|||||||
$tabcond[23] = true;
|
$tabcond[23] = true;
|
||||||
$tabcond[24] = !empty($conf->resource->enabled);
|
$tabcond[24] = !empty($conf->resource->enabled);
|
||||||
$tabcond[25] = !empty($conf->website->enabled);
|
$tabcond[25] = !empty($conf->website->enabled);
|
||||||
//$tabcond[26]= ! empty($conf->product->enabled);
|
//$tabcond[26]= !empty($conf->product->enabled);
|
||||||
$tabcond[27] = !empty($conf->societe->enabled);
|
$tabcond[27] = !empty($conf->societe->enabled);
|
||||||
$tabcond[28] = !empty($conf->holiday->enabled);
|
$tabcond[28] = !empty($conf->holiday->enabled);
|
||||||
$tabcond[29] = !empty($conf->projet->enabled);
|
$tabcond[29] = !empty($conf->project->enabled);
|
||||||
$tabcond[30] = !empty($conf->label->enabled);
|
$tabcond[30] = !empty($conf->label->enabled);
|
||||||
//$tabcond[31]= ! empty($conf->accounting->enabled);
|
//$tabcond[31]= !empty($conf->accounting->enabled);
|
||||||
$tabcond[32] = (!empty($conf->holiday->enabled) || !empty($conf->hrm->enabled));
|
$tabcond[32] = (!empty($conf->holiday->enabled) || !empty($conf->hrm->enabled));
|
||||||
$tabcond[33] = !empty($conf->hrm->enabled);
|
$tabcond[33] = !empty($conf->hrm->enabled);
|
||||||
$tabcond[34] = !empty($conf->hrm->enabled);
|
$tabcond[34] = !empty($conf->hrm->enabled);
|
||||||
@ -906,7 +906,7 @@ if (empty($reshook)) {
|
|||||||
} elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) {
|
} elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@ -975,7 +975,7 @@ if (empty($reshook)) {
|
|||||||
} elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) {
|
} elseif (in_array($keycode, array('joinfile', 'private', 'pos', 'position', 'scale', 'use_default'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -550,7 +550,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
'recordjoinpiece'=>'AttachJoinedDocumentsToObject',
|
'recordjoinpiece'=>'AttachJoinedDocumentsToObject',
|
||||||
'recordevent'=>'RecordEvent');
|
'recordevent'=>'RecordEvent');
|
||||||
$arrayoftypesnocondition = $arrayoftypes;
|
$arrayoftypesnocondition = $arrayoftypes;
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$arrayoftypes['project'] = 'CreateLeadAndThirdParty';
|
$arrayoftypes['project'] = 'CreateLeadAndThirdParty';
|
||||||
}
|
}
|
||||||
$arrayoftypesnocondition['project'] = 'CreateLeadAndThirdParty';
|
$arrayoftypesnocondition['project'] = 'CreateLeadAndThirdParty';
|
||||||
|
|||||||
@ -279,7 +279,7 @@ foreach ($object->fields as $key => $val) {
|
|||||||
$sql .= "t.".$db->escape($key).", ";
|
$sql .= "t.".$db->escape($key).", ";
|
||||||
}
|
}
|
||||||
// Add fields from extrafields
|
// Add fields from extrafields
|
||||||
if (! empty($extrafields->attributes[$object->table_element]['label'])) {
|
if (!empty($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
|
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
|
||||||
$sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : '');
|
$sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : '');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -132,7 +132,7 @@ if ($action == 'updateMask') {
|
|||||||
} elseif ($action == 'del') {
|
} elseif ($action == 'del') {
|
||||||
$ret = delDocumentModel($value, $type);
|
$ret = delDocumentModel($value, $type);
|
||||||
if ($ret > 0) {
|
if ($ret > 0) {
|
||||||
if ($conf->global->EXPEDITION_ADDON_PDF == "$value") {
|
if (getDolGlobalString('EXPEDITION_ADDON_PDF') == "$value") {
|
||||||
dolibarr_del_const($db, 'EXPEDITION_ADDON_PDF', $conf->entity);
|
dolibarr_del_const($db, 'EXPEDITION_ADDON_PDF', $conf->entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -231,7 +231,7 @@ foreach ($dirmodels as $reldir) {
|
|||||||
if ($conf->global->EXPEDITION_ADDON_NUMBER == "$file") {
|
if ($conf->global->EXPEDITION_ADDON_NUMBER == "$file") {
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||||
} else {
|
} else {
|
||||||
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setmodel&token='.newToken().'&value='.urlencode($file).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'">';
|
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setmodel&token='.newToken().'&value='.urlencode($file).'&label='.urlencode($module->name).'">';
|
||||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||||
print '</a>';
|
print '</a>';
|
||||||
}
|
}
|
||||||
@ -367,7 +367,7 @@ foreach ($dirmodels as $reldir) {
|
|||||||
|
|
||||||
// Defaut
|
// Defaut
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($conf->global->EXPEDITION_ADDON_PDF == $name) {
|
if (getDolGlobalString('EXPEDITION_ADDON_PDF') == $name) {
|
||||||
print img_picto($langs->trans("Default"), 'on');
|
print img_picto($langs->trans("Default"), 'on');
|
||||||
} else {
|
} else {
|
||||||
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||||
@ -441,17 +441,17 @@ print '<tr><td>';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnShippings"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnShippings"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'SHIPPING_FREE_TEXT';
|
$variablename = 'SHIPPING_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'<br>';
|
print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'<br>';
|
||||||
print '<input class="flat minwidth200" type="text" name="SHIPPING_DRAFT_WATERMARK" value="'.$conf->global->SHIPPING_DRAFT_WATERMARK.'">';
|
print '<input class="flat minwidth200" type="text" name="SHIPPING_DRAFT_WATERMARK" value="'.getDolGlobalString('SHIPPING_DRAFT_WATERMARK').'">';
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -148,7 +148,7 @@ if ($action == 'updateMask') {
|
|||||||
$res2 = dolibarr_set_const($db, "EXPENSEREPORT_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity);
|
$res2 = dolibarr_set_const($db, "EXPENSEREPORT_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
$res3 = 0;
|
$res3 = 0;
|
||||||
if (!empty($conf->projet->enabled) && GETPOSTISSET('EXPENSEREPORT_PROJECT_IS_REQUIRED')) { // Option may not be provided
|
if (!empty($conf->project->enabled) && GETPOSTISSET('EXPENSEREPORT_PROJECT_IS_REQUIRED')) { // Option may not be provided
|
||||||
$res3 = dolibarr_set_const($db, 'EXPENSEREPORT_PROJECT_IS_REQUIRED', GETPOST('EXPENSEREPORT_PROJECT_IS_REQUIRED', 'int'), 'chaine', 0, '', $conf->entity);
|
$res3 = dolibarr_set_const($db, 'EXPENSEREPORT_PROJECT_IS_REQUIRED', GETPOST('EXPENSEREPORT_PROJECT_IS_REQUIRED', 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,10 +456,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnExpenseReports"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnExpenseReports"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'EXPENSEREPORT_FREE_TEXT';
|
$variablename = 'EXPENSEREPORT_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
@ -471,7 +471,7 @@ print $form->textwithpicto($langs->trans("WatermarkOnDraftExpenseReports"), $htm
|
|||||||
print '<input class="flat minwidth200" type="text" name="EXPENSEREPORT_DRAFT_WATERMARK" value="'.$conf->global->EXPENSEREPORT_DRAFT_WATERMARK.'">';
|
print '<input class="flat minwidth200" type="text" name="EXPENSEREPORT_DRAFT_WATERMARK" value="'.$conf->global->EXPENSEREPORT_DRAFT_WATERMARK.'">';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $langs->trans('ProjectIsRequiredOnExpenseReports');
|
print $langs->trans('ProjectIsRequiredOnExpenseReports');
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -743,10 +743,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'INVOICE_FREE_TEXT';
|
$variablename = 'INVOICE_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -63,10 +63,10 @@ $conditions = array(
|
|||||||
'NOTE_PRIVATE' => 1,
|
'NOTE_PRIVATE' => 1,
|
||||||
'SOCIETE' => 1,
|
'SOCIETE' => 1,
|
||||||
'PRODUCTDESC' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)),
|
'PRODUCTDESC' => (!empty($conf->product->enabled) || !empty($conf->service->enabled)),
|
||||||
'DETAILS' => (!empty($conf->facture->enabled) || !empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->supplier_proposal->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)),
|
'DETAILS' => (isModEnabled('facture') || !empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->supplier_proposal->enabled) || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)),
|
||||||
'USERSIGN' => 1,
|
'USERSIGN' => 1,
|
||||||
'MAILING' => !empty($conf->mailing->enabled),
|
'MAILING' => !empty($conf->mailing->enabled),
|
||||||
'MAIL' => (!empty($conf->facture->enabled) || !empty($conf->propal->enabled) || !empty($conf->commande->enabled)),
|
'MAIL' => (isModEnabled('facture') || !empty($conf->propal->enabled) || !empty($conf->commande->enabled)),
|
||||||
'TICKET' => !empty($conf->ticket->enabled),
|
'TICKET' => !empty($conf->ticket->enabled),
|
||||||
);
|
);
|
||||||
// Picto
|
// Picto
|
||||||
|
|||||||
@ -507,10 +507,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnInterventions"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnInterventions"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'FICHINTER_FREE_TEXT';
|
$variablename = 'FICHINTER_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -538,10 +538,10 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
$variablename = 'HOLIDAY_FREE_TEXT';
|
$variablename = 'HOLIDAY_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|||||||
@ -99,6 +99,8 @@ if ($action == 'update') {
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if ($mode == 'template') {
|
if ($mode == 'template') {
|
||||||
|
//dolibarr_del_const($db, "MAIN_THEME", 0); // To be sure we don't have this constant set for all entities
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_THEME", GETPOST("main_theme", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_THEME", GETPOST("main_theme", 'aZ09'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", getDolGlobalInt('MAIN_IHM_PARAMS_REV') + 1, 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_IHM_PARAMS_REV", getDolGlobalInt('MAIN_IHM_PARAMS_REV') + 1, 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
@ -634,6 +636,11 @@ if ($mode == 'login') {
|
|||||||
if (!empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) {
|
if (!empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) {
|
||||||
$disabled = ' disabled="disabled"';
|
$disabled = ' disabled="disabled"';
|
||||||
}
|
}
|
||||||
|
$maxfilesizearray = getMaxFileSizeArray();
|
||||||
|
$maxmin = $maxfilesizearray['maxmin'];
|
||||||
|
if ($maxmin > 0) {
|
||||||
|
print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
|
||||||
|
}
|
||||||
print '<input type="file" class="flat maxwidthinputfileonsmartphone" name="imagebackground" id="imagebackground"' . $disabled . '>';
|
print '<input type="file" class="flat maxwidthinputfileonsmartphone" name="imagebackground" id="imagebackground"' . $disabled . '>';
|
||||||
if ($disabled) {
|
if ($disabled) {
|
||||||
print '(' . $langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND") . ') ';
|
print '(' . $langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND") . ') ';
|
||||||
|
|||||||
@ -244,7 +244,7 @@ print '</td><td class="maxwidthhalf"><span class="opacitymedium">'.$langs->trans
|
|||||||
// Pass
|
// Pass
|
||||||
print '<!-- LDAP_ADMIN_PASS -->';
|
print '<!-- LDAP_ADMIN_PASS -->';
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("LDAPPassword").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("LDAPPassword").'</td><td>';
|
||||||
print '<input class="minwidth150" type="password" name="pass" value="'.$conf->global->LDAP_ADMIN_PASS.'">';
|
print '<input class="minwidth150" type="password" name="pass" value="'.dol_escape_htmltag($conf->global->LDAP_ADMIN_PASS).'">';
|
||||||
print '</td><td><span class="opacitymedium">'.$langs->trans('Password').' (ex: secret)</span></td></tr>';
|
print '</td><td><span class="opacitymedium">'.$langs->trans('Password').' (ex: secret)</span></td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -107,7 +107,7 @@ foreach ($list as $key) {
|
|||||||
if (!empty($conf->accounting->enabled)) {
|
if (!empty($conf->accounting->enabled)) {
|
||||||
print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1);
|
print $formaccounting->select_account(getDolGlobalString($key), $key, 1, '', 1, 1);
|
||||||
} else {
|
} else {
|
||||||
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.$conf->global->$key.'">';
|
print '<input type="text" size="20" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,10 +54,12 @@ if (!empty($conf->eventorganization->enabled)) {
|
|||||||
|
|
||||||
$langs->loadLangs($langsArray);
|
$langs->loadLangs($langsArray);
|
||||||
|
|
||||||
|
$toselect = GETPOST('toselect', 'array');
|
||||||
$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
|
$action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
|
||||||
$massaction = GETPOST('massaction', 'alpha');
|
$massaction = GETPOST('massaction', 'alpha');
|
||||||
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
|
$confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation
|
||||||
$mode = GETPOST('mode', 'aZ09');
|
$mode = GETPOST('mode', 'aZ09');
|
||||||
|
$optioncss = GETPOST('optioncss', 'alpha');
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
$rowid = GETPOST('rowid', 'alpha');
|
$rowid = GETPOST('rowid', 'alpha');
|
||||||
@ -77,6 +79,7 @@ $actl[1] = img_picto($langs->trans("Activated"), 'switch_on', 'class="size15x"')
|
|||||||
$listoffset = GETPOST('listoffset', 'alpha');
|
$listoffset = GETPOST('listoffset', 'alpha');
|
||||||
$listlimit = GETPOST('listlimit', 'alpha') > 0 ?GETPOST('listlimit', 'alpha') : 1000;
|
$listlimit = GETPOST('listlimit', 'alpha') > 0 ?GETPOST('listlimit', 'alpha') : 1000;
|
||||||
|
|
||||||
|
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
@ -169,8 +172,6 @@ $tabhelp[25] = array(
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$elementList = array();
|
|
||||||
|
|
||||||
// We save list of template email Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
// We save list of template email Dolibarr can manage. This list can found by a grep into code on "->param['models']"
|
||||||
$elementList = array();
|
$elementList = array();
|
||||||
// Add all and none after the sort
|
// Add all and none after the sort
|
||||||
@ -187,7 +188,7 @@ if (!empty($conf->recruitment->enabled) && !empty($user->rights->recruitment->re
|
|||||||
if (!empty($conf->societe->enabled) && !empty($user->rights->societe->lire)) {
|
if (!empty($conf->societe->enabled) && !empty($user->rights->societe->lire)) {
|
||||||
$elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
|
$elementList['thirdparty'] = img_picto('', 'company', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToThirdparty'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject'));
|
$elementList['project'] = img_picto('', 'project', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToProject'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) {
|
if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) {
|
||||||
@ -196,7 +197,7 @@ if (!empty($conf->propal->enabled) && !empty($user->rights->propal->lire)) {
|
|||||||
if (!empty($conf->commande->enabled) && !empty($user->rights->commande->lire)) {
|
if (!empty($conf->commande->enabled) && !empty($user->rights->commande->lire)) {
|
||||||
$elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
|
$elementList['order_send'] = img_picto('', 'order', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendOrder'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->facture->enabled) && !empty($user->rights->facture->lire)) {
|
if (isModEnabled('facture') && !empty($user->rights->facture->lire)) {
|
||||||
$elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
|
$elementList['facture_send'] = img_picto('', 'bill', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendInvoice'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->expedition->enabled)) {
|
if (!empty($conf->expedition->enabled)) {
|
||||||
@ -226,7 +227,7 @@ if (!empty($conf->ticket->enabled) && !empty($user->rights->ticket->read)) {
|
|||||||
if (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire)) {
|
if (!empty($conf->expensereport->enabled) && !empty($user->rights->expensereport->lire)) {
|
||||||
$elementList['expensereport_send'] = img_picto('', 'trip', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTExpenseReport'));
|
$elementList['expensereport_send'] = img_picto('', 'trip', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToTExpenseReport'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->agenda->enabled)) {
|
if (isModEnabled('agenda')) {
|
||||||
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
|
$elementList['actioncomm_send'] = img_picto('', 'action', 'class="paddingright"').dol_escape_htmltag($langs->trans('MailToSendEventPush'));
|
||||||
}
|
}
|
||||||
if (!empty($conf->eventorganization->enabled) && !empty($user->rights->eventorganization->read)) {
|
if (!empty($conf->eventorganization->enabled) && !empty($user->rights->eventorganization->read)) {
|
||||||
@ -405,7 +406,7 @@ if (empty($reshook)) {
|
|||||||
} elseif (in_array($keycode, array('joinfiles', 'private', 'position', 'entity'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'private', 'position', 'entity'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -435,7 +436,14 @@ if (empty($reshook)) {
|
|||||||
// Modifie valeur des champs
|
// Modifie valeur des champs
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field) {
|
foreach ($listfieldmodify as $field) {
|
||||||
$keycode = $listfieldvalue[$i];
|
if ($field == 'entity') {
|
||||||
|
// entity not present on listfieldmodify array
|
||||||
|
$keycode = $field;
|
||||||
|
$_POST[$keycode] = $conf->entity;
|
||||||
|
} else {
|
||||||
|
$keycode = $listfieldvalue[$i];
|
||||||
|
}
|
||||||
|
|
||||||
if ($field == 'lang') {
|
if ($field == 'lang') {
|
||||||
$keycode = 'langcode';
|
$keycode = 'langcode';
|
||||||
}
|
}
|
||||||
@ -459,9 +467,6 @@ if (empty($reshook)) {
|
|||||||
if ($field == 'content_lines') {
|
if ($field == 'content_lines') {
|
||||||
$_POST['content_lines'] = $_POST['content_lines-'.$rowid];
|
$_POST['content_lines'] = $_POST['content_lines-'.$rowid];
|
||||||
}
|
}
|
||||||
if ($field == 'entity') {
|
|
||||||
$_POST[$keycode] = $conf->entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($i) {
|
if ($i) {
|
||||||
$sql .= ", ";
|
$sql .= ", ";
|
||||||
@ -483,7 +488,7 @@ if (empty($reshook)) {
|
|||||||
} elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'alphanohtml'))."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -1212,7 +1212,7 @@ if ($mode == 'deploy') {
|
|||||||
});
|
});
|
||||||
</script>'."\n";
|
</script>'."\n";
|
||||||
// MAX_FILE_SIZE doit précéder le champ input de type file
|
// MAX_FILE_SIZE doit précéder le champ input de type file
|
||||||
print '<input type="hidden" name="max_file_size" value="'.($maxmin * 1024).'">';
|
print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<input class="flat minwidth400" type="file" name="fileinstall" id="fileinstall"> ';
|
print '<input class="flat minwidth400" type="file" name="fileinstall" id="fileinstall"> ';
|
||||||
|
|||||||
@ -446,10 +446,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnMOs"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnMOs"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'MRP_MO_FREE_TEXT';
|
$variablename = 'MRP_MO_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -76,10 +76,15 @@ if ($action == 'add_currency') {
|
|||||||
$currency->code = $code;
|
$currency->code = $code;
|
||||||
$currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code;
|
$currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code;
|
||||||
|
|
||||||
|
if (empty($currency->code) || $currency->code == '-1') {
|
||||||
|
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Currency")), null, 'errors');
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
if (empty($rate)) {
|
if (empty($rate)) {
|
||||||
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Rate")), null, 'errors');
|
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Rate")), null, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
if ($currency->create($user) > 0) {
|
if ($currency->create($user) > 0) {
|
||||||
if ($currency->addRate($rate)) {
|
if ($currency->addRate($rate)) {
|
||||||
@ -296,7 +301,7 @@ print '<table class="noborder centpercent nomarginbottom">';
|
|||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$form->textwithpicto($langs->trans("CurrenciesUsed"), $langs->transnoentitiesnoconv("CurrenciesUsed_help_to_add")).'</td>'."\n";
|
print '<td>'.$form->textwithpicto($langs->trans("CurrenciesUsed"), $langs->transnoentitiesnoconv("CurrenciesUsed_help_to_add")).'</td>'."\n";
|
||||||
print '<td class="center">'.$langs->trans("Rate").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Rate").' / '.$langs->getCurrencySymbol($conf->currency).'</td>'."\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
@ -304,17 +309,19 @@ print '<input type="hidden" name="token" value="'.newToken().'">';
|
|||||||
print '<input type="hidden" name="action" value="add_currency">';
|
print '<input type="hidden" name="action" value="add_currency">';
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$form->selectCurrency('', 'code', 1).'</td>';
|
print '<td>'.$form->selectCurrency('', 'code', 1, '1').'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print '<input type="text" name="rate" value="" class="width75 right" placeholder="'.$langs->trans('Rate').'" /> ';
|
print '<input type="text" name="rate" value="" class="width75 right" placeholder="'.$langs->trans('Rate').'" /> ';
|
||||||
print '<input type="submit" class="button button-add small" value="'.$langs->trans("Add").'">';
|
print '<input type="submit" class="button button-add smallpaddingimp" value="'.$langs->trans("Add").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$conf->currency.$form->textwithpicto(' ', $langs->trans("BaseCurrency")).'</td>';
|
print '<td>'.$conf->currency;
|
||||||
|
print ' ('.$langs->getCurrencySymbol($conf->currency).')';
|
||||||
|
print $form->textwithpicto(' ', $langs->trans("BaseCurrency")).'</td>';
|
||||||
print '<td class="right">1</td>';
|
print '<td class="right">1</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2015-2018 Frederic France <frederic.france@netlogic.fr>
|
/* Copyright (C) 2015-2018 Frederic France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
|
* Copyright (C) 2022 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
|
||||||
@ -43,23 +44,40 @@ if (!$user->admin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
$provider = GETPOST('provider', 'aZ09');
|
||||||
|
$label = GETPOST('label', 'aZ09');
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'update') {
|
if ($action == 'add') { // $provider is OAUTH_XXX
|
||||||
$error = 0;
|
if ($provider && $provider != '-1') {
|
||||||
|
$constname = strtoupper($provider).($label ? '-'.$label : '').'_ID';
|
||||||
|
|
||||||
foreach ($list as $constname) {
|
if (getDolGlobalString($constname)) {
|
||||||
$constvalue = GETPOST($constname[1], 'alpha');
|
setEventMessages($langs->trans("AOAuthEntryForThisProviderAndLabelAlreadyHasAKey"), null, 'errors');
|
||||||
if (!dolibarr_set_const($db, $constname[1], $constvalue, 'chaine', 0, '', $conf->entity)) {
|
|
||||||
$error++;
|
$error++;
|
||||||
|
} else {
|
||||||
|
dolibarr_set_const($db, $constname, 'ToComplete', 'chaine', 0, '', $conf->entity);
|
||||||
|
setEventMessages($langs->trans("OAuthProviderAdded"), null);
|
||||||
}
|
}
|
||||||
$constvalue = GETPOST($constname[2], 'alpha');
|
}
|
||||||
if (!dolibarr_set_const($db, $constname[2], $constvalue, 'chaine', 0, '', $conf->entity)) {
|
}
|
||||||
$error++;
|
if ($action == 'update') {
|
||||||
|
foreach ($conf->global as $key => $val) {
|
||||||
|
if (!empty($val) && preg_match('/^OAUTH_.+_ID$/', $key)) {
|
||||||
|
$constvalue = str_replace('_ID', '', $key);
|
||||||
|
if (!dolibarr_set_const($db, $constvalue.'_ID', GETPOST($constvalue.'_ID'), 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
// If we reset this provider, we also remove the secret
|
||||||
|
if (!dolibarr_set_const($db, $constvalue.'_SECRET', GETPOST($constvalue.'_ID') ? GETPOST($constvalue.'_SECRET') : '', 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,6 +88,7 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
@ -83,24 +102,72 @@ print load_fiche_titre($langs->trans('ConfigOAuth'), $linkback, 'title_setup');
|
|||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
|
||||||
$head = oauthadmin_prepare_head();
|
$head = oauthadmin_prepare_head();
|
||||||
|
|
||||||
print dol_get_fiche_head($head, 'services', '', -1, 'technic');
|
print dol_get_fiche_head($head, 'services', '', -1, '');
|
||||||
|
|
||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("ListOfSupportedOauthProviders").'</span><br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("ListOfSupportedOauthProviders").'</span><br><br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<select name="provider" id="provider" class="minwidth150">';
|
||||||
|
print '<option name="-1" value="-1">'.$langs->trans("OAuthProvider").'</option>';
|
||||||
|
foreach ($list as $key) {
|
||||||
|
$supported = 0;
|
||||||
|
$keyforsupportedoauth2array = $key[0];
|
||||||
|
|
||||||
|
if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) {
|
||||||
|
$supported = 1;
|
||||||
|
}
|
||||||
|
if (!$supported) {
|
||||||
|
continue; // show only supported
|
||||||
|
}
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
print '<option name="'.$keyforsupportedoauth2array.'" value="'.str_replace('_NAME', '', $keyforsupportedoauth2array).'">'.$supportedoauth2array[$keyforsupportedoauth2array]['name'].'</option>'."\n";
|
||||||
|
}
|
||||||
|
print '</select>';
|
||||||
|
print ajax_combobox('provider');
|
||||||
|
print ' <input type="text" name="label" value="" placeholder="'.$langs->trans("Label").'">';
|
||||||
|
print ' <input type="submit" class="button small" name="add" value="'.$langs->trans("Add").'">';
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
|
//var_dump($list);
|
||||||
|
foreach ($conf->global as $key => $val) {
|
||||||
|
if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) {
|
||||||
|
$provider = preg_replace('/_ID$/', '', $key);
|
||||||
|
$listinsetup[] = array($provider.'_NAME', $provider.'_ID', $provider.'_SECRET', 'OAUTH Provider '.str_replace('OAUTH_', '', $provider));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// $list is defined into oauth.lib.php to the list of supporter OAuth providers.
|
// $list is defined into oauth.lib.php to the list of supporter OAuth providers.
|
||||||
foreach ($list as $key) {
|
foreach ($listinsetup as $key) {
|
||||||
$supported = 0;
|
$supported = 0;
|
||||||
$keyforsupportedoauth2array = $key[0];
|
$keyforsupportedoauth2array = $key[0]; // May be OAUTH_GOOGLE_NAME or OAUTH_GOOGLE_xxx_NAME
|
||||||
|
$keyforsupportedoauth2array = preg_replace('/^OAUTH_/', '', $keyforsupportedoauth2array);
|
||||||
|
$keyforsupportedoauth2array = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array);
|
||||||
|
if (preg_match('/^.*-/', $keyforsupportedoauth2array)) {
|
||||||
|
$keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array);
|
||||||
|
} else {
|
||||||
|
$keyforprovider = '';
|
||||||
|
}
|
||||||
|
$keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array);
|
||||||
|
$keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME';
|
||||||
|
|
||||||
if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) {
|
if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) {
|
||||||
$supported = 1;
|
$supported = 1;
|
||||||
@ -117,10 +184,15 @@ foreach ($list as $key) {
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"');
|
print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"');
|
||||||
print $label;
|
print $label;
|
||||||
|
if ($keyforprovider) {
|
||||||
|
print ' (<b>'.$keyforprovider.'</b>)';
|
||||||
|
} else {
|
||||||
|
print ' (<b>'.$langs->trans("NoName").'</b>)';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp'])) {
|
if (!empty($supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials'])) {
|
||||||
print $langs->trans($supportedoauth2array[$keyforsupportedoauth2array]['urlforapp']);
|
print $langs->trans("OAUTH_URL_FOR_CREDENTIAL", $supportedoauth2array[$keyforsupportedoauth2array]['urlforcredentials']);
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -140,13 +212,13 @@ foreach ($list as $key) {
|
|||||||
|
|
||||||
// Api Id
|
// Api Id
|
||||||
print '<tr class="oddeven value">';
|
print '<tr class="oddeven value">';
|
||||||
print '<td><label for="'.$key[1].'">'.$langs->trans($key[1]).'</label></td>';
|
print '<td><label for="'.$key[1].'">'.$langs->trans("OAUTH_ID").'</label></td>';
|
||||||
print '<td><input type="text" size="100" id="'.$key[1].'" name="'.$key[1].'" value="'.$conf->global->{$key[1]}.'">';
|
print '<td><input type="text" size="100" id="'.$key[1].'" name="'.$key[1].'" value="'.$conf->global->{$key[1]}.'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Api Secret
|
// Api Secret
|
||||||
print '<tr class="oddeven value">';
|
print '<tr class="oddeven value">';
|
||||||
print '<td><label for="'.$key[2].'">'.$langs->trans($key[2]).'</label></td>';
|
print '<td><label for="'.$key[2].'">'.$langs->trans("OAUTH_SECRET").'</label></td>';
|
||||||
print '<td><input type="password" size="100" id="'.$key[2].'" name="'.$key[2].'" value="'.$conf->global->{$key[2]}.'">';
|
print '<td><input type="password" size="100" id="'.$key[2].'" name="'.$key[2].'" value="'.$conf->global->{$key[2]}.'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -129,7 +129,7 @@ print load_fiche_titre($langs->trans('ConfigOAuth'), $linkback, 'title_setup');
|
|||||||
|
|
||||||
$head = oauthadmin_prepare_head();
|
$head = oauthadmin_prepare_head();
|
||||||
|
|
||||||
print dol_get_fiche_head($head, 'tokengeneration', '', -1, 'technic');
|
print dol_get_fiche_head($head, 'tokengeneration', '', -1, '');
|
||||||
|
|
||||||
if (GETPOST('error')) {
|
if (GETPOST('error')) {
|
||||||
setEventMessages(GETPOST('error'), null, 'errors');
|
setEventMessages(GETPOST('error'), null, 'errors');
|
||||||
@ -138,19 +138,32 @@ if (GETPOST('error')) {
|
|||||||
if ($mode == 'setup' && $user->admin) {
|
if ($mode == 'setup' && $user->admin) {
|
||||||
print '<span class="opacitymedium">'.$langs->trans("OAuthSetupForLogin")."</span><br><br>\n";
|
print '<span class="opacitymedium">'.$langs->trans("OAuthSetupForLogin")."</span><br><br>\n";
|
||||||
|
|
||||||
foreach ($list as $key) {
|
//var_dump($list);
|
||||||
|
foreach ($conf->global as $key => $val) {
|
||||||
|
if (!empty($val) && preg_match('/^OAUTH_.*_ID$/', $key)) {
|
||||||
|
$provider = preg_replace('/_ID$/', '', $key);
|
||||||
|
$listinsetup[] = array($provider.'_NAME', $provider.'_ID', $provider.'_SECRET', 'OAUTH Provider '.str_replace('OAUTH_', '', $provider));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$oauthstateanticsrf = bin2hex(random_bytes(128/8));
|
||||||
|
|
||||||
|
// $list is defined into oauth.lib.php to the list of supporter OAuth providers.
|
||||||
|
foreach ($listinsetup as $key) {
|
||||||
$supported = 0;
|
$supported = 0;
|
||||||
$keyforsupportedoauth2array = $key[0];
|
$keyforsupportedoauth2array = $key[0]; // May be OAUTH_GOOGLE_NAME or OAUTH_GOOGLE_xxx_NAME
|
||||||
|
$keyforsupportedoauth2array = preg_replace('/^OAUTH_/', '', $keyforsupportedoauth2array);
|
||||||
if (in_array($keyforsupportedoauth2array, array_keys($supportedoauth2array))) {
|
$keyforsupportedoauth2array = preg_replace('/_NAME$/', '', $keyforsupportedoauth2array);
|
||||||
$supported = 1;
|
if (preg_match('/^.*-/', $keyforsupportedoauth2array)) {
|
||||||
}
|
$keyforprovider = preg_replace('/^.*-/', '', $keyforsupportedoauth2array);
|
||||||
if (!$supported) {
|
} else {
|
||||||
continue; // show only supported
|
$keyforprovider = '';
|
||||||
}
|
}
|
||||||
|
$keyforsupportedoauth2array = preg_replace('/-.*$/', '', $keyforsupportedoauth2array);
|
||||||
|
$keyforsupportedoauth2array = 'OAUTH_'.$keyforsupportedoauth2array.'_NAME';
|
||||||
|
|
||||||
|
|
||||||
$OAUTH_SERVICENAME = empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name'];
|
$OAUTH_SERVICENAME = (empty($supportedoauth2array[$keyforsupportedoauth2array]['name']) ? 'Unknown' : $supportedoauth2array[$keyforsupportedoauth2array]['name'].($keyforprovider ? '-'.$keyforprovider : ''));
|
||||||
|
|
||||||
// Define $shortscope, $urltorenew, $urltodelete, $urltocheckperms
|
// Define $shortscope, $urltorenew, $urltodelete, $urltocheckperms
|
||||||
// TODO Use array $supportedoauth2array
|
// TODO Use array $supportedoauth2array
|
||||||
@ -158,6 +171,8 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
// List of keys that will be converted into scopes (from constants 'SCOPE_state_in_uppercase' in file of service).
|
// List of keys that will be converted into scopes (from constants 'SCOPE_state_in_uppercase' in file of service).
|
||||||
// We pass this param list in to 'state' because we need it before and after the redirect.
|
// We pass this param list in to 'state' because we need it before and after the redirect.
|
||||||
$shortscope = 'user,public_repo';
|
$shortscope = 'user,public_repo';
|
||||||
|
|
||||||
|
// Note: github does not accept csrf key inside the state parameter (only know values)
|
||||||
$urltorenew = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltorenew = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltodelete = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltodelete = $urlwithroot.'/core/modules/oauth/github_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltocheckperms = 'https://github.com/settings/applications/';
|
$urltocheckperms = 'https://github.com/settings/applications/';
|
||||||
@ -177,17 +192,18 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
$shortscope.=',gmail_full';
|
$shortscope.=',gmail_full';
|
||||||
}
|
}
|
||||||
|
|
||||||
$oauthstateanticsrf = bin2hex(random_bytes(128/8));
|
|
||||||
$_SESSION['oauthstateanticsrf'] = $shortscope.'-'.$oauthstateanticsrf;
|
|
||||||
|
|
||||||
$urltorenew = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'-'.$oauthstateanticsrf.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltorenew = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?shortscope='.$shortscope.'&state='.$shortscope.'-'.$oauthstateanticsrf.'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltodelete = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltodelete = $urlwithroot.'/core/modules/oauth/google_oauthcallback.php?action=delete&token='.newToken().'&backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltocheckperms = 'https://security.google.com/settings/security/permissions';
|
$urltocheckperms = 'https://security.google.com/settings/security/permissions';
|
||||||
} elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_TEST_NAME') {
|
} elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_TEST_NAME') {
|
||||||
|
$shortscope = 'none';
|
||||||
|
|
||||||
$urltorenew = $urlwithroot.'/core/modules/oauth/stripetest_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltorenew = $urlwithroot.'/core/modules/oauth/stripetest_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltodelete = '';
|
$urltodelete = '';
|
||||||
$urltocheckperms = '';
|
$urltocheckperms = '';
|
||||||
} elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_LIVE_NAME') {
|
} elseif ($keyforsupportedoauth2array == 'OAUTH_STRIPE_LIVE_NAME') {
|
||||||
|
$shortscope = 'none';
|
||||||
|
|
||||||
$urltorenew = $urlwithroot.'/core/modules/oauth/stripelive_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
$urltorenew = $urlwithroot.'/core/modules/oauth/stripelive_oauthcallback.php?backtourl='.urlencode(DOL_URL_ROOT.'/admin/oauthlogintokens.php');
|
||||||
$urltodelete = '';
|
$urltodelete = '';
|
||||||
$urltocheckperms = '';
|
$urltocheckperms = '';
|
||||||
@ -196,7 +212,7 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
$urltodelete = '';
|
$urltodelete = '';
|
||||||
$urltocheckperms = '';
|
$urltocheckperms = '';
|
||||||
}
|
}
|
||||||
|
$urltorenew .= '&keyforprovider='.$keyforprovider;
|
||||||
|
|
||||||
// Show value of token
|
// Show value of token
|
||||||
$tokenobj = null;
|
$tokenobj = null;
|
||||||
@ -220,7 +236,6 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
if (is_object($tokenobj)) {
|
if (is_object($tokenobj)) {
|
||||||
$expire = ($tokenobj->getEndOfLife() !== $tokenobj::EOL_NEVER_EXPIRES && $tokenobj->getEndOfLife() !== $tokenobj::EOL_UNKNOWN && time() > ($tokenobj->getEndOfLife() - 30));
|
$expire = ($tokenobj->getEndOfLife() !== $tokenobj::EOL_NEVER_EXPIRES && $tokenobj->getEndOfLife() !== $tokenobj::EOL_UNKNOWN && time() > ($tokenobj->getEndOfLife() - 30));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($key[1] != '' && $key[2] != '') {
|
if ($key[1] != '' && $key[2] != '') {
|
||||||
if (is_object($tokenobj)) {
|
if (is_object($tokenobj)) {
|
||||||
$refreshtoken = $tokenobj->getRefreshToken();
|
$refreshtoken = $tokenobj->getRefreshToken();
|
||||||
@ -249,6 +264,11 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
print '<th class="titlefieldcreate">';
|
print '<th class="titlefieldcreate">';
|
||||||
print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"');
|
print img_picto('', $supportedoauth2array[$keyforsupportedoauth2array]['picto'], 'class="pictofixedwidth"');
|
||||||
print $langs->trans($keyforsupportedoauth2array);
|
print $langs->trans($keyforsupportedoauth2array);
|
||||||
|
if ($keyforprovider) {
|
||||||
|
print ' (<b>'.$keyforprovider.'</b>)';
|
||||||
|
} else {
|
||||||
|
print ' (<b>'.$langs->trans("NoName").'</b>)';
|
||||||
|
}
|
||||||
print '</th>';
|
print '</th>';
|
||||||
print '<th></th>';
|
print '<th></th>';
|
||||||
print '<th></th>';
|
print '<th></th>';
|
||||||
@ -299,9 +319,11 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
//var_dump($key);
|
//var_dump($key);
|
||||||
print $langs->trans("Token").'</td>';
|
print $langs->trans("Token").'</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
|
|
||||||
if (is_object($tokenobj)) {
|
if (is_object($tokenobj)) {
|
||||||
//var_dump($tokenobj);
|
//var_dump($tokenobj);
|
||||||
print $tokenobj->getAccessToken().'<br>';
|
$tokentoshow = $tokenobj->getAccessToken();
|
||||||
|
print '<span class="" title="'.dol_escape_htmltag($tokentoshow).'">'.showValueWithClipboardCPButton($tokentoshow, 1, dol_trunc($tokentoshow, 32)).'<br>';
|
||||||
//print 'Refresh: '.$tokenobj->getRefreshToken().'<br>';
|
//print 'Refresh: '.$tokenobj->getRefreshToken().'<br>';
|
||||||
//print 'EndOfLife: '.$tokenobj->getEndOfLife().'<br>';
|
//print 'EndOfLife: '.$tokenobj->getEndOfLife().'<br>';
|
||||||
//var_dump($tokenobj->getExtraParams());
|
//var_dump($tokenobj->getExtraParams());
|
||||||
@ -317,9 +339,10 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
||||||
//var_dump($key);
|
//var_dump($key);
|
||||||
print $langs->trans("TOKEN_REFRESH").'</td>';
|
print $langs->trans("TOKEN_REFRESH");
|
||||||
|
print '</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print yn($refreshtoken);
|
print '<span class="" title="'.dol_escape_htmltag($refreshtoken).'">'.showValueWithClipboardCPButton($refreshtoken, 1, dol_trunc($refreshtoken, 32)).'</span>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
@ -327,7 +350,8 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
||||||
//var_dump($key);
|
//var_dump($key);
|
||||||
print $langs->trans("TOKEN_EXPIRED").'</td>';
|
print $langs->trans("TOKEN_EXPIRED");
|
||||||
|
print '</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print yn($expire);
|
print yn($expire);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -337,7 +361,8 @@ if ($mode == 'setup' && $user->admin) {
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
print '<td'.($key['required'] ? ' class="required"' : '').'>';
|
||||||
//var_dump($key);
|
//var_dump($key);
|
||||||
print $langs->trans("TOKEN_EXPIRE_AT").'</td>';
|
print $langs->trans("TOKEN_EXPIRE_AT");
|
||||||
|
print '</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print $expiredat;
|
print $expiredat;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -399,17 +424,18 @@ if ($mode == 'userconf' && $user->admin) {
|
|||||||
print '<th>'.$langs->trans("NumberOfCopy").'</th>';
|
print '<th>'.$langs->trans("NumberOfCopy").'</th>';
|
||||||
print '<th class="center">'.$langs->trans("Delete").'</th>';
|
print '<th class="center">'.$langs->trans("Delete").'</th>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$sql = 'SELECT p.rowid, p.printer_name, p.printer_location, p.printer_id, p.copy, p.module, p.driver, p.userid, u.login FROM '.MAIN_DB_PREFIX.'printing as p, '.MAIN_DB_PREFIX.'user as u WHERE p.userid=u.rowid';
|
$sql = "SELECT p.rowid, p.printer_name, p.printer_location, p.printer_id, p.copy, p.module, p.driver, p.userid, u.login";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."printing as p, ".MAIN_DB_PREFIX."user as u WHERE p.userid = u.rowid";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
while ($row = $db->fetch_array($resql)) {
|
while ($obj = $db->fetch_object($resql)) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$row['login'].'</td>';
|
print '<td>'.$obj->login.'</td>';
|
||||||
print '<td>'.$row['module'].'</td>';
|
print '<td>'.$obj->module.'</td>';
|
||||||
print '<td>'.$row['driver'].'</td>';
|
print '<td>'.$obj->driver.'</td>';
|
||||||
print '<td>'.$row['printer_name'].'</td>';
|
print '<td>'.$obj->printer_name.'</td>';
|
||||||
print '<td>'.$row['printer_location'].'</td>';
|
print '<td>'.$obj->printer_location.'</td>';
|
||||||
print '<td>'.$row['printer_id'].'</td>';
|
print '<td>'.$obj->printer_id.'</td>';
|
||||||
print '<td>'.$row['copy'].'</td>';
|
print '<td>'.$obj->copy.'</td>';
|
||||||
print '<td class="center">'.img_picto($langs->trans("Delete"), 'delete').'</td>';
|
print '<td class="center">'.img_picto($langs->trans("Delete"), 'delete').'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -108,7 +108,7 @@ if ($action == 'update') {
|
|||||||
dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", GETPOST("MAIN_TVAINTRA_NOT_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", GETPOST("MAIN_TVAINTRA_NOT_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
if (GETPOST('PDF_SHOW_PROJECT_REF_OR_LABEL') == 'no') {
|
if (GETPOST('PDF_SHOW_PROJECT_REF_OR_LABEL') == 'no') {
|
||||||
dolibarr_del_const($db, "PDF_SHOW_PROJECT", $conf->entity);
|
dolibarr_del_const($db, "PDF_SHOW_PROJECT", $conf->entity);
|
||||||
dolibarr_del_const($db, "PDF_SHOW_PROJECT_TITLE", $conf->entity);
|
dolibarr_del_const($db, "PDF_SHOW_PROJECT_TITLE", $conf->entity);
|
||||||
@ -482,7 +482,7 @@ print '<input type="text" class="maxwidth50" name="MAIN_DOCUMENTS_LOGO_HEIGHT" v
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Show project
|
// Show project
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("PDF_SHOW_PROJECT").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PDF_SHOW_PROJECT").'</td><td>';
|
||||||
$tmparray = array('no' => 'No', 'showprojectref' => 'RefProject', 'showprojectlabel' => 'ShowProjectLabel');
|
$tmparray = array('no' => 'No', 'showprojectref' => 'RefProject', 'showprojectlabel' => 'ShowProjectLabel');
|
||||||
$showprojectref = empty($conf->global->PDF_SHOW_PROJECT) ? (empty($conf->global->PDF_SHOW_PROJECT_TITLE) ? 'no' : 'showprojectlabel') : 'showprojectref';
|
$showprojectref = empty($conf->global->PDF_SHOW_PROJECT) ? (empty($conf->global->PDF_SHOW_PROJECT_TITLE) ? 'no' : 'showprojectlabel') : 'showprojectref';
|
||||||
|
|||||||
@ -62,6 +62,11 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) {
|
if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) {
|
||||||
dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOST("INVOICE_ADD_ZATCA_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOST("INVOICE_ADD_ZATCA_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_del_const($db, "INVOICE_ADD_SWISS_QR_CODE", $conf->entity);
|
||||||
|
}
|
||||||
|
if (GETPOSTISSET('INVOICE_ADD_SWISS_QR_CODE')) {
|
||||||
|
dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
@ -120,7 +125,7 @@ if (!empty($conf->propal->enabled)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!empty($conf->facture->enabled)) {
|
if (isModEnabled('facture')) {
|
||||||
print load_fiche_titre($langs->trans("Invoices"), '', '');
|
print load_fiche_titre($langs->trans("Invoices"), '', '');
|
||||||
|
|
||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
@ -138,6 +143,17 @@ if (!empty($conf->facture->enabled)) {
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("INVOICE_ADD_SWISS_QR_CODE"), '');
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('INVOICE_ADD_SWISS_QR_CODE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("INVOICE_ADD_SWISS_QR_CODE", $arrval, $conf->global->INVOICE_ADD_SWISS_QR_CODE);
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING").'</td><td>';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
|
|||||||
@ -675,10 +675,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnProposal"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnProposal"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'PROPOSAL_FREE_TEXT';
|
$variablename = 'PROPOSAL_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -45,7 +45,7 @@ $printername = GETPOST('printername', 'alpha');
|
|||||||
$printerid = GETPOST('printerid', 'int');
|
$printerid = GETPOST('printerid', 'int');
|
||||||
$parameter = GETPOST('parameter', 'alpha');
|
$parameter = GETPOST('parameter', 'alpha');
|
||||||
|
|
||||||
$template = GETPOST('template', 'nohtml');
|
$template = GETPOST('template', 'alphanohtml');
|
||||||
$templatename = GETPOST('templatename', 'alpha');
|
$templatename = GETPOST('templatename', 'alpha');
|
||||||
$templateid = GETPOST('templateid', 'int');
|
$templateid = GETPOST('templateid', 'int');
|
||||||
|
|
||||||
|
|||||||
@ -455,12 +455,12 @@ print $form->textwithpicto($langs->trans("FreeLegalTextOnReceptions"), $langs->t
|
|||||||
$variablename='RECEPTION_FREE_TEXT';
|
$variablename='RECEPTION_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
|
||||||
{
|
{
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes');
|
$doleditor=new DolEditor($variablename, getDolGlobalString($variablename),'',80,'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|||||||
@ -209,7 +209,7 @@ $found = 0;
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("DeStockOnBill").'</td>';
|
print '<td>'.$langs->trans("DeStockOnBill").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if (!empty($conf->facture->enabled)) {
|
if (isModEnabled('facture')) {
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_CALCULATE_ON_BILL', array(), null, 0, 0, 0, 2, 1);
|
print ajax_constantonoff('STOCK_CALCULATE_ON_BILL', array(), null, 0, 0, 0, 2, 1);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -194,7 +194,7 @@ print '<span class="opacitymedium">'.$langs->trans("StockTransferSetupPage").'</
|
|||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
||||||
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
||||||
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.$conf->global->$key.'"></td></tr>';
|
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.getDolGlobalString($key).'"></td></tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ print '<span class="opacitymedium">'.$langs->trans("StockTransferSetupPage").'</
|
|||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
||||||
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
||||||
print '</td><td>'.$conf->global->$key.'</td></tr>';
|
print '</td><td>'.getDolGlobalString($key).'</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -457,10 +457,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'SUPPLIER_INVOICE_FREE_TEXT';
|
$variablename = 'SUPPLIER_INVOICE_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -464,8 +464,7 @@ print "</td></tr>\n";
|
|||||||
|
|
||||||
// Ask for payment bank during supplier order
|
// Ask for payment bank during supplier order
|
||||||
/* Kept as hidden for the moment
|
/* Kept as hidden for the moment
|
||||||
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_SUPPLIER_ORDER").'</td><td> </td><td align="center">';
|
print $langs->trans("BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER").'</td><td> </td><td align="center">';
|
||||||
@ -506,10 +505,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnOrders"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'SUPPLIER_ORDER_FREE_TEXT';
|
$variablename = 'SUPPLIER_ORDER_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
@ -521,7 +520,7 @@ print '<tr class="oddeven">';
|
|||||||
print '<td>'.$langs->trans("UseDispatchStatus").'</td>';
|
print '<td>'.$langs->trans("UseDispatchStatus").'</td>';
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($conf->reception->enabled) {
|
if (isModEnabled('reception')) {
|
||||||
print '<span class="opacitymedium">'.$langs->trans("FeatureNotAvailableWithReceptionModule").'</span>';
|
print '<span class="opacitymedium">'.$langs->trans("FeatureNotAvailableWithReceptionModule").'</span>';
|
||||||
} else {
|
} else {
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
|
|||||||
@ -474,10 +474,10 @@ print '<tr class="oddeven"><td colspan="2">';
|
|||||||
print $form->textwithpicto($langs->trans("FreeLegalTextOnSupplierProposal"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
print $form->textwithpicto($langs->trans("FreeLegalTextOnSupplierProposal"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
|
||||||
$variablename = 'SUPPLIER_PROPOSAL_FREE_TEXT';
|
$variablename = 'SUPPLIER_PROPOSAL_FREE_TEXT';
|
||||||
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT)) {
|
||||||
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
|
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.getDolGlobalString($variablename).'</textarea>';
|
||||||
} else {
|
} else {
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($variablename, $conf->global->$variablename, '', 80, 'dolibarr_notes');
|
$doleditor = new DolEditor($variablename, getDolGlobalString($variablename), '', 80, 'dolibarr_notes');
|
||||||
print $doleditor->Create();
|
print $doleditor->Create();
|
||||||
}
|
}
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
|
|||||||
@ -101,6 +101,10 @@ if ($xmlremote && !preg_match('/^https?:\/\//', $xmlremote)) {
|
|||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
setEventMessages($langs->trans("ErrorURLMustStartWithHttp", $xmlremote), '', 'errors');
|
setEventMessages($langs->trans("ErrorURLMustStartWithHttp", $xmlremote), '', 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
|
} elseif ($xmlremote && !preg_match('/\.xml$/', $xmlremote)) {
|
||||||
|
$langs->load("errors");
|
||||||
|
setEventMessages($langs->trans("ErrorURLMustEndWith", $xmlremote, '.xml'), '', 'errors');
|
||||||
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test if remote test is ok
|
// Test if remote test is ok
|
||||||
@ -205,8 +209,8 @@ if (empty($error) && !empty($xml)) {
|
|||||||
$constvalue = (empty($constvalue) ? '0' : $constvalue);
|
$constvalue = (empty($constvalue) ? '0' : $constvalue);
|
||||||
// Value found
|
// Value found
|
||||||
$value = '';
|
$value = '';
|
||||||
if ($constname && $conf->global->$constname != '') {
|
if ($constname && getDolGlobalString($constname) != '') {
|
||||||
$value = $conf->global->$constname;
|
$value = getDolGlobalString($constname);
|
||||||
}
|
}
|
||||||
$valueforchecksum = (empty($value) ? '0' : $value);
|
$valueforchecksum = (empty($value) ? '0' : $value);
|
||||||
|
|
||||||
@ -388,7 +392,9 @@ if (empty($error) && !empty($xml)) {
|
|||||||
$out .= '</table>';
|
$out .= '</table>';
|
||||||
$out .= '</div>';
|
$out .= '</div>';
|
||||||
} else {
|
} else {
|
||||||
print 'Error: Failed to found dolibarr_htdocs_dir into XML file '.$xmlfile;
|
print '<div class="error">';
|
||||||
|
print 'Error: Failed to found <b>dolibarr_htdocs_dir</b> into content of XML file:<br>'.dol_escape_htmltag(dol_trunc($xmlfile, 500));
|
||||||
|
print '</div><br>';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -642,7 +642,7 @@ $mail_intro = $conf->global->TICKET_MESSAGE_MAIL_INTRO ? $conf->global->TICKET_M
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("TicketMessageMailIntroLabelAdmin");
|
print '<tr class="oddeven"><td>'.$langs->trans("TicketMessageMailIntroLabelAdmin");
|
||||||
print '</td><td>';
|
print '</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('TICKET_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
@ -654,7 +654,7 @@ $mail_signature = $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE ? $conf->global->
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("TicketMessageMailSignatureLabelAdmin").'</label>';
|
print '<tr class="oddeven"><td>'.$langs->trans("TicketMessageMailSignatureLabelAdmin").'</label>';
|
||||||
print '</td><td>';
|
print '</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('TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
|
|||||||
@ -89,7 +89,7 @@ if ($action == 'setTICKET_ENABLE_PUBLIC_INTERFACE') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'nohtml');
|
$topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'alphanohtml');
|
||||||
if (!empty($topic_interface)) {
|
if (!empty($topic_interface)) {
|
||||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity);
|
||||||
} else {
|
} else {
|
||||||
@ -375,7 +375,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) {
|
|||||||
print '<tr><td>'.$langs->trans("TicketPublicInterfaceTextHomeLabelAdmin").'</label>';
|
print '<tr><td>'.$langs->trans("TicketPublicInterfaceTextHomeLabelAdmin").'</label>';
|
||||||
print '</td><td>';
|
print '</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('TICKET_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
$doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_2, 70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
@ -387,7 +387,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) {
|
|||||||
print '<tr><td>'.$langs->trans("TicketPublicInterfaceTextHelpMessageLabelAdmin").'</label>';
|
print '<tr><td>'.$langs->trans("TicketPublicInterfaceTextHelpMessageLabelAdmin").'</label>';
|
||||||
print '</td><td>';
|
print '</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('TICKET_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
$doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_SOCIETE'), ROWS_2, 70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
@ -434,7 +434,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) {
|
|||||||
print '</label>';
|
print '</label>';
|
||||||
print '</td><td>';
|
print '</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('TICKET_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_MAIL'), ROWS_2, 70);
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|||||||
@ -189,7 +189,7 @@ if (in_array($type, array('mysql', 'mysqli'))) {
|
|||||||
$param .= " -U ".$dolibarr_main_db_user;
|
$param .= " -U ".$dolibarr_main_db_user;
|
||||||
$paramcrypted = $param;
|
$paramcrypted = $param;
|
||||||
$paramclear = $param;
|
$paramclear = $param;
|
||||||
/*if (! empty($dolibarr_main_db_pass))
|
/*if (!empty($dolibarr_main_db_pass))
|
||||||
{
|
{
|
||||||
$paramcrypted.=" -p".preg_replace('/./i','*',$dolibarr_main_db_pass);
|
$paramcrypted.=" -p".preg_replace('/./i','*',$dolibarr_main_db_pass);
|
||||||
$paramclear.=" -p".$dolibarr_main_db_pass;
|
$paramclear.=" -p".$dolibarr_main_db_pass;
|
||||||
|
|||||||
@ -554,7 +554,7 @@ if ($mode == 'searchkey') {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
print '<tr class="oddeven"><td>'.$langcode.'</td><td>'.$key.'</td><td class="small">';
|
print '<tr class="oddeven"><td>'.$langcode.'</td><td>'.$key.'</td><td class="small">';
|
||||||
$titleforvalue = $langs->trans("Translation").' en_US for key '.$key.':<br>'.($langsenfileonly->tab_translate[$key] ? $langsenfileonly->trans($key) : '<span class="opacitymedium">'.$langs->trans("None").'</span>');
|
$titleforvalue = $langs->trans("Translation").' en_US for key '.$key.':<br>'.(!empty($langsenfileonly->tab_translate[$key]) ? $langsenfileonly->trans($key) : '<span class="opacitymedium">'.$langs->trans("None").'</span>');
|
||||||
print '<span title="'.dol_escape_htmltag($titleforvalue).'" class="classfortooltip">';
|
print '<span title="'.dol_escape_htmltag($titleforvalue).'" class="classfortooltip">';
|
||||||
print dol_escape_htmltag($val);
|
print dol_escape_htmltag($val);
|
||||||
print '</span>';
|
print '</span>';
|
||||||
|
|||||||
@ -35,9 +35,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
|||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array('admin', 'members', 'users'));
|
$langs->loadLangs(array('admin', 'members', 'users'));
|
||||||
if (!$user->admin) {
|
|
||||||
accessforbidden();
|
|
||||||
}
|
|
||||||
|
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
@ -51,6 +48,10 @@ $label = GETPOST('label', 'alpha');
|
|||||||
$scandir = GETPOST('scandir', 'alpha');
|
$scandir = GETPOST('scandir', 'alpha');
|
||||||
$type = 'user';
|
$type = 'user';
|
||||||
|
|
||||||
|
if (empty($user->admin)) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Action
|
* Action
|
||||||
@ -58,6 +59,8 @@ $type = 'user';
|
|||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||||
|
|
||||||
|
$reg = array();
|
||||||
|
|
||||||
if ($action == 'set_default') {
|
if ($action == 'set_default') {
|
||||||
$ret = addDocumentModel($value, $type, $label, $scandir);
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
$res = true;
|
$res = true;
|
||||||
@ -83,6 +86,9 @@ if ($action == 'set_default') {
|
|||||||
$ret = addDocumentModel($value, $type, $label, $scandir);
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
}
|
}
|
||||||
$res = true;
|
$res = true;
|
||||||
|
} elseif ($action == 'unsetdoc') {
|
||||||
|
// We disable the template
|
||||||
|
dolibarr_del_const($db, "USER_ADDON_PDF_ODT", $conf->entity);
|
||||||
} elseif (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
} elseif (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
$code = $reg[1];
|
$code = $reg[1];
|
||||||
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
||||||
@ -118,6 +124,9 @@ if ($action == 'set_default') {
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
|
dol_mkdir(DOL_DATA_ROOT.'/doctemplates/users');
|
||||||
|
dol_mkdir(DOL_DATA_ROOT.'/doctemplates/usergroups');
|
||||||
|
|
||||||
$help_url = 'EN:Module_Users|FR:Module_Utilisateurs|ES:Módulo_Usuarios';
|
$help_url = 'EN:Module_Users|FR:Module_Utilisateurs|ES:Módulo_Usuarios';
|
||||||
llxHeader('', $langs->trans("UsersSetup"), $help_url);
|
llxHeader('', $langs->trans("UsersSetup"), $help_url);
|
||||||
|
|
||||||
@ -264,14 +273,17 @@ foreach ($dirmodels as $reldir) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="center">'."\n";
|
print '<td class="center">'."\n";
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set_default&token='.newToken().'&value='.urlencode($name).'&scandir='.urlencode($module->scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set_default&token='.newToken().'&value='.urlencode($name).'&scandir='.urlencode($module->scandir).'&label='.urlencode($module->name).'">';
|
||||||
|
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||||
|
print '</a>';
|
||||||
print "</td>";
|
print "</td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Defaut
|
// Defaut
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if (getDolGlobalString('USER_ADDON_PDF_ODT') == $name) {
|
if (getDolGlobalString('USER_ADDON_PDF_ODT') == $name) {
|
||||||
print img_picto($langs->trans("Default"), 'on');
|
//print img_picto($langs->trans("Default"), 'on');
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=unsetdoc&token='.newToken().'&value='.urlencode($name).'&scandir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Default"), 'on').'</a>';
|
||||||
} else {
|
} else {
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.urlencode($name).'&scandir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.urlencode($name).'&scandir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||||
}
|
}
|
||||||
|
|||||||
733
htdocs/admin/webhook.php
Normal file
733
htdocs/admin/webhook.php
Normal file
@ -0,0 +1,733 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2022 SuperAdmin <test@dolibarr.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 webhook/admin/webhook.php
|
||||||
|
* \ingroup webhook
|
||||||
|
* \brief Webhook setup page.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load Dolibarr environment
|
||||||
|
$res = 0;
|
||||||
|
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
|
||||||
|
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
|
||||||
|
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
|
||||||
|
}
|
||||||
|
// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
|
||||||
|
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
|
||||||
|
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
|
||||||
|
$i--; $j--;
|
||||||
|
}
|
||||||
|
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
|
||||||
|
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
|
||||||
|
}
|
||||||
|
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
|
||||||
|
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
|
||||||
|
}
|
||||||
|
// Try main.inc.php using relative path
|
||||||
|
if (!$res && file_exists("../main.inc.php")) {
|
||||||
|
$res = @include "../main.inc.php";
|
||||||
|
}
|
||||||
|
if (!$res && file_exists("../../main.inc.php")) {
|
||||||
|
$res = @include "../../main.inc.php";
|
||||||
|
}
|
||||||
|
if (!$res && file_exists("../../../main.inc.php")) {
|
||||||
|
$res = @include "../../../main.inc.php";
|
||||||
|
}
|
||||||
|
if (!$res) {
|
||||||
|
die("Include of main fails");
|
||||||
|
}
|
||||||
|
|
||||||
|
global $langs, $user;
|
||||||
|
|
||||||
|
// Libraries
|
||||||
|
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/webhook/lib/webhook.lib.php';
|
||||||
|
|
||||||
|
// Translations
|
||||||
|
$langs->loadLangs(array("admin", "webhook"));
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
|
$hookmanager->initHooks(array('webhooksetup', 'globalsetup'));
|
||||||
|
|
||||||
|
// Access control
|
||||||
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parameters
|
||||||
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
$backtopage = GETPOST('backtopage', 'alpha');
|
||||||
|
$modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php
|
||||||
|
|
||||||
|
$value = GETPOST('value', 'alpha');
|
||||||
|
$label = GETPOST('label', 'alpha');
|
||||||
|
$scandir = GETPOST('scan_dir', 'alpha');
|
||||||
|
$type = 'myobject';
|
||||||
|
|
||||||
|
$arrayofparameters = array(
|
||||||
|
'WEBHOOK_MYPARAM1'=>array('type'=>'string', 'css'=>'minwidth500' ,'enabled'=>0),
|
||||||
|
//'WEBHOOK_MYPARAM2'=>array('type'=>'textarea','enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM3'=>array('type'=>'category:'.Categorie::TYPE_CUSTOMER, 'enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM4'=>array('type'=>'emailtemplate:thirdparty', 'enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM5'=>array('type'=>'yesno', 'enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM5'=>array('type'=>'thirdparty_type', 'enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM6'=>array('type'=>'securekey', 'enabled'=>1),
|
||||||
|
//'WEBHOOK_MYPARAM7'=>array('type'=>'product', 'enabled'=>1),
|
||||||
|
);
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
$setupnotempty = 0;
|
||||||
|
|
||||||
|
// Set this to 1 to use the factory to manage constants. Warning, the generated module will be compatible with version v15+ only
|
||||||
|
$useFormSetup = 0;
|
||||||
|
// Convert arrayofparameter into a formSetup object
|
||||||
|
if ($useFormSetup && (float) DOL_VERSION >= 15) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php';
|
||||||
|
$formSetup = new FormSetup($db);
|
||||||
|
|
||||||
|
// you can use the param convertor
|
||||||
|
$formSetup->addItemsFromParamsArray($arrayofparameters);
|
||||||
|
|
||||||
|
// or use the new system see exemple as follow (or use both because you can ;-) )
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Hôte
|
||||||
|
$item = $formSetup->newItem('NO_PARAM_JUST_TEXT');
|
||||||
|
$item->fieldOverride = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'];
|
||||||
|
$item->cssClass = 'minwidth500';
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM1 as a simple string input
|
||||||
|
$item = $formSetup->newItem('WEBHOOK_MYPARAM1');
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM1 as a simple textarea input but we replace the text of field title
|
||||||
|
$item = $formSetup->newItem('WEBHOOK_MYPARAM2');
|
||||||
|
$item->nameText = $item->getNameText().' more html text ';
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM3
|
||||||
|
$item = $formSetup->newItem('WEBHOOK_MYPARAM3');
|
||||||
|
$item->setAsThirdpartyType();
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM4 : exemple of quick define write style
|
||||||
|
$formSetup->newItem('WEBHOOK_MYPARAM4')->setAsYesNo();
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM5
|
||||||
|
$formSetup->newItem('WEBHOOK_MYPARAM5')->setAsEmailTemplate('thirdparty');
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM6
|
||||||
|
$formSetup->newItem('WEBHOOK_MYPARAM6')->setAsSecureKey()->enabled = 0; // disabled
|
||||||
|
|
||||||
|
// Setup conf WEBHOOK_MYPARAM7
|
||||||
|
$formSetup->newItem('WEBHOOK_MYPARAM7')->setAsProduct();
|
||||||
|
*/
|
||||||
|
|
||||||
|
$setupnotempty = count($formSetup->items);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||||
|
|
||||||
|
if ($action == 'updateMask') {
|
||||||
|
$maskconst = GETPOST('maskconst', 'alpha');
|
||||||
|
$maskvalue = GETPOST('maskvalue', 'alpha');
|
||||||
|
|
||||||
|
if ($maskconst) {
|
||||||
|
$res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity);
|
||||||
|
if (!($res > 0)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
|
}
|
||||||
|
} elseif ($action == 'specimen') {
|
||||||
|
$modele = GETPOST('module', 'alpha');
|
||||||
|
$tmpobjectkey = GETPOST('object');
|
||||||
|
|
||||||
|
$tmpobject = new $tmpobjectkey($db);
|
||||||
|
$tmpobject->initAsSpecimen();
|
||||||
|
|
||||||
|
// Search template files
|
||||||
|
$file = ''; $classname = ''; $filefound = 0;
|
||||||
|
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||||
|
foreach ($dirmodels as $reldir) {
|
||||||
|
$file = dol_buildpath($reldir."core/modules/webhook/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0);
|
||||||
|
if (file_exists($file)) {
|
||||||
|
$filefound = 1;
|
||||||
|
$classname = "pdf_".$modele;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($filefound) {
|
||||||
|
require_once $file;
|
||||||
|
|
||||||
|
$module = new $classname($db);
|
||||||
|
|
||||||
|
if ($module->write_file($tmpobject, $langs) > 0) {
|
||||||
|
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf");
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
setEventMessages($module->error, null, 'errors');
|
||||||
|
dol_syslog($module->error, LOG_ERR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||||
|
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||||
|
}
|
||||||
|
} elseif ($action == 'setmod') {
|
||||||
|
// TODO Check if numbering module chosen can be activated by calling method canBeActivated
|
||||||
|
$tmpobjectkey = GETPOST('object');
|
||||||
|
if (!empty($tmpobjectkey)) {
|
||||||
|
$constforval = 'WEBHOOK_'.strtoupper($tmpobjectkey)."_ADDON";
|
||||||
|
dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity);
|
||||||
|
}
|
||||||
|
} elseif ($action == 'set') {
|
||||||
|
// Activate a model
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
} elseif ($action == 'del') {
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
$tmpobjectkey = GETPOST('object');
|
||||||
|
if (!empty($tmpobjectkey)) {
|
||||||
|
$constforval = 'WEBHOOK_'.strtoupper($tmpobjectkey).'_ADDON_PDF';
|
||||||
|
if ($conf->global->$constforval == "$value") {
|
||||||
|
dolibarr_del_const($db, $constforval, $conf->entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($action == 'setdoc') {
|
||||||
|
// Set or unset default model
|
||||||
|
$tmpobjectkey = GETPOST('object');
|
||||||
|
if (!empty($tmpobjectkey)) {
|
||||||
|
$constforval = 'WEBHOOK_'.strtoupper($tmpobjectkey).'_ADDON_PDF';
|
||||||
|
if (dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
// The constant that was read before the new set
|
||||||
|
// We therefore requires a variable to have a coherent view
|
||||||
|
$conf->global->$constforval = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We disable/enable the document template (into llx_document_model table)
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($action == 'unsetdoc') {
|
||||||
|
$tmpobjectkey = GETPOST('object');
|
||||||
|
if (!empty($tmpobjectkey)) {
|
||||||
|
$constforval = 'WEBHOOK_'.strtoupper($tmpobjectkey).'_ADDON_PDF';
|
||||||
|
dolibarr_del_const($db, $constforval, $conf->entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
$help_url = '';
|
||||||
|
$page_name = "WebhookSetup";
|
||||||
|
|
||||||
|
llxHeader('', $langs->trans($page_name), $help_url);
|
||||||
|
|
||||||
|
// Subheader
|
||||||
|
$linkback = '<a href="'.($backtopage ? $backtopage : DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1').'">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans($page_name), $linkback, 'title_setup');
|
||||||
|
|
||||||
|
// Configuration header
|
||||||
|
$head = webhookAdminPrepareHead();
|
||||||
|
print dol_get_fiche_head($head, 'settings', $langs->trans($page_name), -1, "webhook@webhook");
|
||||||
|
|
||||||
|
// Setup page goes here
|
||||||
|
echo '<span class="opacitymedium">'.$langs->trans("WebhookSetupPage").'</span><br><br>';
|
||||||
|
|
||||||
|
|
||||||
|
if ($action == 'edit') {
|
||||||
|
if ($useFormSetup && (float) DOL_VERSION >= 15) {
|
||||||
|
print $formSetup->generateOutput(true);
|
||||||
|
} else {
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
|
foreach ($arrayofparameters as $constname => $val) {
|
||||||
|
if ($val['enabled']==1) {
|
||||||
|
$setupnotempty++;
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
$tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : '');
|
||||||
|
print '<span id="helplink'.$constname.'" class="spanforparamtooltip">'.$form->textwithpicto($langs->trans($constname), $tooltiphelp, 1, 'info', '', 0, 3, 'tootips'.$constname).'</span>';
|
||||||
|
print '</td><td>';
|
||||||
|
|
||||||
|
if ($val['type'] == 'textarea') {
|
||||||
|
print '<textarea class="flat" name="'.$constname.'" id="'.$constname.'" cols="50" rows="5" wrap="soft">' . "\n";
|
||||||
|
print $conf->global->{$constname};
|
||||||
|
print "</textarea>\n";
|
||||||
|
} elseif ($val['type']== 'html') {
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||||
|
$doleditor = new DolEditor($constname, $conf->global->{$constname}, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%');
|
||||||
|
$doleditor->Create();
|
||||||
|
} elseif ($val['type'] == 'yesno') {
|
||||||
|
print $form->selectyesno($constname, $conf->global->{$constname}, 1);
|
||||||
|
} elseif (preg_match('/emailtemplate:/', $val['type'])) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||||
|
$formmail = new FormMail($db);
|
||||||
|
|
||||||
|
$tmp = explode(':', $val['type']);
|
||||||
|
$nboftemplates = $formmail->fetchAllEMailTemplate($tmp[1], $user, null, 1); // We set lang=null to get in priority record with no lang
|
||||||
|
//$arraydefaultmessage = $formmail->getEMailTemplate($db, $tmp[1], $user, null, 0, 1, '');
|
||||||
|
$arrayofmessagename = array();
|
||||||
|
if (is_array($formmail->lines_model)) {
|
||||||
|
foreach ($formmail->lines_model as $modelmail) {
|
||||||
|
//var_dump($modelmail);
|
||||||
|
$moreonlabel = '';
|
||||||
|
if (!empty($arrayofmessagename[$modelmail->label])) {
|
||||||
|
$moreonlabel = ' <span class="opacitymedium">(' . $langs->trans("SeveralLangugeVariatFound") . ')</span>';
|
||||||
|
}
|
||||||
|
// The 'label' is the key that is unique if we exclude the language
|
||||||
|
$arrayofmessagename[$modelmail->id] = $langs->trans(preg_replace('/\(|\)/', '', $modelmail->label)) . $moreonlabel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print $form->selectarray($constname, $arrayofmessagename, $conf->global->{$constname}, 'None', 0, 0, '', 0, 0, 0, '', '', 1);
|
||||||
|
} elseif (preg_match('/category:/', $val['type'])) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
$formother = new FormOther($db);
|
||||||
|
|
||||||
|
$tmp = explode(':', $val['type']);
|
||||||
|
print img_picto('', 'category', 'class="pictofixedwidth"');
|
||||||
|
print $formother->select_categories($tmp[1], $conf->global->{$constname}, $constname, 0, $langs->trans('CustomersProspectsCategoriesShort'));
|
||||||
|
} elseif (preg_match('/thirdparty_type/', $val['type'])) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
$formcompany = new FormCompany($db);
|
||||||
|
print $formcompany->selectProspectCustomerType($conf->global->{$constname}, $constname);
|
||||||
|
} elseif ($val['type'] == 'securekey') {
|
||||||
|
print '<input required="required" type="text" class="flat" id="'.$constname.'" name="'.$constname.'" value="'.(GETPOST($constname, 'alpha') ?GETPOST($constname, 'alpha') : $conf->global->{$constname}).'" size="40">';
|
||||||
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
|
print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token'.$constname.'" class="linkobject"');
|
||||||
|
}
|
||||||
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
|
print "\n".'<script type="text/javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
|
$("#generate_token'.$constname.'").click(function() {
|
||||||
|
$.get( "'.DOL_URL_ROOT.'/core/ajax/security.php", {
|
||||||
|
action: \'getrandompassword\',
|
||||||
|
generic: true
|
||||||
|
},
|
||||||
|
function(token) {
|
||||||
|
$("#'.$constname.'").val(token);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});';
|
||||||
|
print '</script>';
|
||||||
|
}
|
||||||
|
} elseif ($val['type'] == 'product') {
|
||||||
|
if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) {
|
||||||
|
$selected = (empty($conf->global->$constname) ? '' : $conf->global->$constname);
|
||||||
|
$form->select_produits($selected, $constname, '', 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print '<input name="'.$constname.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.$conf->global->{$constname}.'">';
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '<br><div class="center">';
|
||||||
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
} else {
|
||||||
|
if ($useFormSetup && (float) DOL_VERSION >= 15) {
|
||||||
|
if (!empty($formSetup->items)) {
|
||||||
|
print $formSetup->generateOutput();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!empty($arrayofparameters)) {
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
|
foreach ($arrayofparameters as $constname => $val) {
|
||||||
|
if ($val['enabled']==1) {
|
||||||
|
$setupnotempty++;
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
$tooltiphelp = (($langs->trans($constname . 'Tooltip') != $constname . 'Tooltip') ? $langs->trans($constname . 'Tooltip') : '');
|
||||||
|
print $form->textwithpicto($langs->trans($constname), $tooltiphelp);
|
||||||
|
print '</td><td>';
|
||||||
|
|
||||||
|
if ($val['type'] == 'textarea') {
|
||||||
|
print dol_nl2br($conf->global->{$constname});
|
||||||
|
} elseif ($val['type']== 'html') {
|
||||||
|
print $conf->global->{$constname};
|
||||||
|
} elseif ($val['type'] == 'yesno') {
|
||||||
|
print ajax_constantonoff($constname);
|
||||||
|
} elseif (preg_match('/emailtemplate:/', $val['type'])) {
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php';
|
||||||
|
$formmail = new FormMail($db);
|
||||||
|
|
||||||
|
$tmp = explode(':', $val['type']);
|
||||||
|
|
||||||
|
$template = $formmail->getEMailTemplate($db, $tmp[1], $user, $langs, $conf->global->{$constname});
|
||||||
|
if ($template<0) {
|
||||||
|
setEventMessages(null, $formmail->errors, 'errors');
|
||||||
|
}
|
||||||
|
print $langs->trans($template->label);
|
||||||
|
} elseif (preg_match('/category:/', $val['type'])) {
|
||||||
|
$c = new Categorie($db);
|
||||||
|
$result = $c->fetch($conf->global->{$constname});
|
||||||
|
if ($result < 0) {
|
||||||
|
setEventMessages(null, $c->errors, 'errors');
|
||||||
|
} elseif ($result > 0 ) {
|
||||||
|
$ways = $c->print_all_ways(' >> ', 'none', 0, 1); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text
|
||||||
|
$toprint = array();
|
||||||
|
foreach ($ways as $way) {
|
||||||
|
$toprint[] = '<li class="select2-search-choice-dolibarr noborderoncategories"' . ($c->color ? ' style="background: #' . $c->color . ';"' : ' style="background: #bbb"') . '>' . $way . '</li>';
|
||||||
|
}
|
||||||
|
print '<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">' . implode(' ', $toprint) . '</ul></div>';
|
||||||
|
}
|
||||||
|
} elseif (preg_match('/thirdparty_type/', $val['type'])) {
|
||||||
|
if ($conf->global->{$constname}==2) {
|
||||||
|
print $langs->trans("Prospect");
|
||||||
|
} elseif ($conf->global->{$constname}==3) {
|
||||||
|
print $langs->trans("ProspectCustomer");
|
||||||
|
} elseif ($conf->global->{$constname}==1) {
|
||||||
|
print $langs->trans("Customer");
|
||||||
|
} elseif ($conf->global->{$constname}==0) {
|
||||||
|
print $langs->trans("NorProspectNorCustomer");
|
||||||
|
}
|
||||||
|
} elseif ($val['type'] == 'product') {
|
||||||
|
$product = new Product($db);
|
||||||
|
$resprod = $product->fetch($conf->global->{$constname});
|
||||||
|
if ($resprod > 0) {
|
||||||
|
print $product->ref;
|
||||||
|
} elseif ($resprod < 0) {
|
||||||
|
setEventMessages(null, $object->errors, "errors");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print $conf->global->{$constname};
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($setupnotempty) {
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'">'.$langs->trans("Modify").'</a>';
|
||||||
|
print '</div>';
|
||||||
|
} else {
|
||||||
|
//print '<br>'.$langs->trans("NothingToSetup");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$moduledir = 'webhook';
|
||||||
|
$myTmpObjects['MyObject'] = array('includerefgeneration'=>0, 'includedocgeneration'=>0);
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) {
|
||||||
|
if ($myTmpObjectKey == 'MyObject') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($myTmpObjectArray['includerefgeneration']) {
|
||||||
|
/*
|
||||||
|
* Orders Numbering model
|
||||||
|
*/
|
||||||
|
$setupnotempty++;
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("NumberingModules", $myTmpObjectKey), '', '');
|
||||||
|
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td class="nowrap">'.$langs->trans("Example").'</td>';
|
||||||
|
print '<td class="center" width="60">'.$langs->trans("Status").'</td>';
|
||||||
|
print '<td class="center" width="16">'.$langs->trans("ShortInfo").'</td>';
|
||||||
|
print '</tr>'."\n";
|
||||||
|
|
||||||
|
clearstatcache();
|
||||||
|
|
||||||
|
foreach ($dirmodels as $reldir) {
|
||||||
|
$dir = dol_buildpath($reldir."core/modules/".$moduledir);
|
||||||
|
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
$handle = opendir($dir);
|
||||||
|
if (is_resource($handle)) {
|
||||||
|
while (($file = readdir($handle)) !== false) {
|
||||||
|
if (strpos($file, 'mod_'.strtolower($myTmpObjectKey).'_') === 0 && substr($file, dol_strlen($file) - 3, 3) == 'php') {
|
||||||
|
$file = substr($file, 0, dol_strlen($file) - 4);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file.'.php';
|
||||||
|
|
||||||
|
$module = new $file($db);
|
||||||
|
|
||||||
|
// Show modules according to features level
|
||||||
|
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($module->isEnabled()) {
|
||||||
|
dol_include_once('/'.$moduledir.'/class/'.strtolower($myTmpObjectKey).'.class.php');
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>'.$module->name."</td><td>\n";
|
||||||
|
print $module->info();
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Show example of numbering model
|
||||||
|
print '<td class="nowrap">';
|
||||||
|
$tmp = $module->getExample();
|
||||||
|
if (preg_match('/^Error/', $tmp)) {
|
||||||
|
$langs->load("errors");
|
||||||
|
print '<div class="error">'.$langs->trans($tmp).'</div>';
|
||||||
|
} elseif ($tmp == 'NotConfigured') {
|
||||||
|
print $langs->trans($tmp);
|
||||||
|
} else {
|
||||||
|
print $tmp;
|
||||||
|
}
|
||||||
|
print '</td>'."\n";
|
||||||
|
|
||||||
|
print '<td class="center">';
|
||||||
|
$constforvar = 'WEBHOOK_'.strtoupper($myTmpObjectKey).'_ADDON';
|
||||||
|
if ($conf->global->$constforvar == $file) {
|
||||||
|
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&token='.newToken().'&object='.strtolower($myTmpObjectKey).'&value='.urlencode($file).'">';
|
||||||
|
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
$mytmpinstance = new $myTmpObjectKey($db);
|
||||||
|
$mytmpinstance->initAsSpecimen();
|
||||||
|
|
||||||
|
// Info
|
||||||
|
$htmltooltip = '';
|
||||||
|
$htmltooltip .= ''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
|
||||||
|
|
||||||
|
$nextval = $module->getNextValue($mytmpinstance);
|
||||||
|
if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval
|
||||||
|
$htmltooltip .= ''.$langs->trans("NextValue").': ';
|
||||||
|
if ($nextval) {
|
||||||
|
if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured') {
|
||||||
|
$nextval = $langs->trans($nextval);
|
||||||
|
}
|
||||||
|
$htmltooltip .= $nextval.'<br>';
|
||||||
|
} else {
|
||||||
|
$htmltooltip .= $langs->trans($module->error).'<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<td class="center">';
|
||||||
|
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "</table><br>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($myTmpObjectArray['includedocgeneration']) {
|
||||||
|
/*
|
||||||
|
* Document templates generators
|
||||||
|
*/
|
||||||
|
$setupnotempty++;
|
||||||
|
$type = strtolower($myTmpObjectKey);
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("DocumentModules", $myTmpObjectKey), '', '');
|
||||||
|
|
||||||
|
// Load array def with activated templates
|
||||||
|
$def = array();
|
||||||
|
$sql = "SELECT nom";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||||
|
$sql .= " WHERE type = '".$db->escape($type)."'";
|
||||||
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
$i = 0;
|
||||||
|
$num_rows = $db->num_rows($resql);
|
||||||
|
while ($i < $num_rows) {
|
||||||
|
$array = $db->fetch_array($resql);
|
||||||
|
array_push($def, $array[0]);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
print "<table class=\"noborder\" width=\"100%\">\n";
|
||||||
|
print "<tr class=\"liste_titre\">\n";
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td class="center" width="60">'.$langs->trans("Status")."</td>\n";
|
||||||
|
print '<td class="center" width="60">'.$langs->trans("Default")."</td>\n";
|
||||||
|
print '<td class="center" width="38">'.$langs->trans("ShortInfo").'</td>';
|
||||||
|
print '<td class="center" width="38">'.$langs->trans("Preview").'</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
clearstatcache();
|
||||||
|
|
||||||
|
foreach ($dirmodels as $reldir) {
|
||||||
|
foreach (array('', '/doc') as $valdir) {
|
||||||
|
$realpath = $reldir."core/modules/".$moduledir.$valdir;
|
||||||
|
$dir = dol_buildpath($realpath);
|
||||||
|
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
$handle = opendir($dir);
|
||||||
|
if (is_resource($handle)) {
|
||||||
|
while (($file = readdir($handle)) !== false) {
|
||||||
|
$filelist[] = $file;
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
arsort($filelist);
|
||||||
|
|
||||||
|
foreach ($filelist as $file) {
|
||||||
|
if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) {
|
||||||
|
if (file_exists($dir.'/'.$file)) {
|
||||||
|
$name = substr($file, 4, dol_strlen($file) - 16);
|
||||||
|
$classname = substr($file, 0, dol_strlen($file) - 12);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db);
|
||||||
|
|
||||||
|
$modulequalified = 1;
|
||||||
|
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
|
||||||
|
$modulequalified = 0;
|
||||||
|
}
|
||||||
|
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
||||||
|
$modulequalified = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($modulequalified) {
|
||||||
|
print '<tr class="oddeven"><td width="100">';
|
||||||
|
print (empty($module->name) ? $name : $module->name);
|
||||||
|
print "</td><td>\n";
|
||||||
|
if (method_exists($module, 'info')) {
|
||||||
|
print $module->info($langs);
|
||||||
|
} else {
|
||||||
|
print $module->description;
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Active
|
||||||
|
if (in_array($name, $def)) {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&token='.newToken().'&value='.urlencode($name).'">';
|
||||||
|
print img_picto($langs->trans("Enabled"), 'switch_on');
|
||||||
|
print '</a>';
|
||||||
|
print '</td>';
|
||||||
|
} else {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&token='.newToken().'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
|
||||||
|
print "</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default
|
||||||
|
print '<td class="center">';
|
||||||
|
$constforvar = 'WEBHOOK_'.strtoupper($myTmpObjectKey).'_ADDON';
|
||||||
|
if ($conf->global->$constforvar == $name) {
|
||||||
|
//print img_picto($langs->trans("Default"), 'on');
|
||||||
|
// Even if choice is the default value, we allow to disable it. Replace this with previous line if you need to disable unset
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=unsetdoc&token='.newToken().'&object='.urlencode(strtolower($myTmpObjectKey)).'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'&type='.urlencode($type).'" alt="'.$langs->trans("Disable").'">'.img_picto($langs->trans("Enabled"), 'on').'</a>';
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&object='.urlencode(strtolower($myTmpObjectKey)).'&value='.urlencode($name).'&scan_dir='.urlencode($module->scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Info
|
||||||
|
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown"));
|
||||||
|
if ($module->type == 'pdf') {
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
|
||||||
|
}
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Path").': '.preg_replace('/^\//', '', $realpath).'/'.$file;
|
||||||
|
|
||||||
|
$htmltooltip .= '<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1);
|
||||||
|
|
||||||
|
print '<td class="center">';
|
||||||
|
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Preview
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($module->type == 'pdf') {
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'&object='.$myTmpObjectKey.'">'.img_object($langs->trans("Preview"), 'pdf').'</a>';
|
||||||
|
} else {
|
||||||
|
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($setupnotempty)) {
|
||||||
|
print '<br>'.$langs->trans("NothingToSetup");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Page end
|
||||||
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
@ -95,7 +95,7 @@ $tabfield[1] = "ref,description,virtualhost,position,date_creation";
|
|||||||
|
|
||||||
// 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[1] = "ref,description,virtualhost,position";
|
$tabfieldvalue[1] = "ref,description,virtualhost,position,entity";
|
||||||
|
|
||||||
// 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();
|
||||||
|
|||||||
@ -112,7 +112,7 @@ if ($action == 'edit') {
|
|||||||
foreach ($arrayofparameters as $key => $val) {
|
foreach ($arrayofparameters as $key => $val) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
|
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
|
||||||
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.$conf->global->$key.'"></td></tr>';
|
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.getDolGlobalString($key).'"></td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -130,7 +130,7 @@ if ($action == 'edit') {
|
|||||||
foreach ($arrayofparameters as $key => $val) {
|
foreach ($arrayofparameters as $key => $val) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
|
print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
|
||||||
print '</td><td>'.$conf->global->$key.'</td></tr>';
|
print '</td><td>'.getDolGlobalString($key).'</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -68,7 +68,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array(
|
'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array(
|
||||||
'family'=>'create',
|
'family'=>'create',
|
||||||
'position'=>20,
|
'position'=>20,
|
||||||
'enabled'=>(!empty($conf->commande->enabled) && !empty($conf->facture->enabled)),
|
'enabled'=>(!empty($conf->commande->enabled) && isModEnabled('facture')),
|
||||||
'picto'=>'bill'
|
'picto'=>'bill'
|
||||||
),
|
),
|
||||||
'WORKFLOW_TICKET_CREATE_INTERVENTION' => array (
|
'WORKFLOW_TICKET_CREATE_INTERVENTION' => array (
|
||||||
@ -91,7 +91,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array(
|
'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array(
|
||||||
'family'=>'classify_proposal',
|
'family'=>'classify_proposal',
|
||||||
'position'=>31,
|
'position'=>31,
|
||||||
'enabled'=>(!empty($conf->propal->enabled) && !empty($conf->facture->enabled)),
|
'enabled'=>(!empty($conf->propal->enabled) && isModEnabled('facture')),
|
||||||
'picto'=>'propal',
|
'picto'=>'propal',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
),
|
),
|
||||||
@ -112,7 +112,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER'=>array(
|
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER'=>array(
|
||||||
'family'=>'classify_order',
|
'family'=>'classify_order',
|
||||||
'position'=>42,
|
'position'=>42,
|
||||||
'enabled'=>(!empty($conf->facture->enabled) && !empty($conf->commande->enabled)),
|
'enabled'=>(isModEnabled('facture') && !empty($conf->commande->enabled)),
|
||||||
'picto'=>'order',
|
'picto'=>'order',
|
||||||
'warning'=>''
|
'warning'=>''
|
||||||
), // For this option, if module invoice is disabled, it does not exists, so "Classify billed" for order must be done manually from order card.
|
), // For this option, if module invoice is disabled, it does not exists, so "Classify billed" for order must be done manually from order card.
|
||||||
@ -165,7 +165,7 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE' => array(
|
'WORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE' => array(
|
||||||
'family' => 'classify_shipping',
|
'family' => 'classify_shipping',
|
||||||
'position' => 90,
|
'position' => 90,
|
||||||
'enabled' => ! empty($conf->expedition->enabled) && ! empty($conf->facture->enabled),
|
'enabled' => !empty($conf->expedition->enabled) && !empty($conf->facture->enabled),
|
||||||
'picto' => 'shipment'
|
'picto' => 'shipment'
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -173,13 +173,13 @@ $workflowcodes = array(
|
|||||||
'WORKFLOW_TICKET_LINK_CONTRACT' => array(
|
'WORKFLOW_TICKET_LINK_CONTRACT' => array(
|
||||||
'family' => 'link_ticket',
|
'family' => 'link_ticket',
|
||||||
'position' => 75,
|
'position' => 75,
|
||||||
'enabled' => ! empty($conf->ticket->enabled) && ! empty($conf->contract->enabled),
|
'enabled' => !empty($conf->ticket->enabled) && !empty($conf->contract->enabled),
|
||||||
'picto' => 'ticket'
|
'picto' => 'ticket'
|
||||||
),
|
),
|
||||||
'WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS' => array(
|
'WORKFLOW_TICKET_USE_PARENT_COMPANY_CONTRACTS' => array(
|
||||||
'family' => 'link_ticket',
|
'family' => 'link_ticket',
|
||||||
'position' => 76,
|
'position' => 76,
|
||||||
'enabled' => ! empty($conf->ticket->enabled) && ! empty($conf->contract->enabled),
|
'enabled' => !empty($conf->ticket->enabled) && !empty($conf->contract->enabled),
|
||||||
'picto' => 'ticket'
|
'picto' => 'ticket'
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -188,7 +188,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
||||||
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
||||||
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.$conf->global->$key.'"></td></tr>';
|
print '</td><td><input name="'.$key.'" class="flat '.(empty($val['css']) ? 'minwidth200' : $val['css']).'" value="'.getDolGlobalString($key).'"></td></tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
@ -209,7 +209,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
||||||
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
||||||
print '</td><td>'.$conf->global->$key.'</td></tr>';
|
print '</td><td>'.getDolGlobalString($key).'</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -179,7 +179,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
if (!empty($conf->agenda->enabled)) {
|
if (isModEnabled('agenda')) {
|
||||||
if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
||||||
print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create' . $out . '">' . $langs->trans("AddAction") . '</a>';
|
print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create' . $out . '">' . $langs->trans("AddAction") . '</a>';
|
||||||
} else {
|
} else {
|
||||||
@ -189,7 +189,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
||||||
$param = '&id=' . $object->id . '&socid=' . $socid;
|
$param = '&id=' . $object->id . '&socid=' . $socid;
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
$param .= '&contextpage=' . urlencode($contextpage);
|
$param .= '&contextpage=' . urlencode($contextpage);
|
||||||
|
|||||||
@ -155,6 +155,7 @@ class Asset extends CommonObject
|
|||||||
public $import_key;
|
public $import_key;
|
||||||
public $model_pdf;
|
public $model_pdf;
|
||||||
public $status;
|
public $status;
|
||||||
|
public $user_cloture_id;
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * @var string Field with ID of parent key if this object has a parent
|
// * @var string Field with ID of parent key if this object has a parent
|
||||||
@ -1441,24 +1442,10 @@ class Asset extends CommonObject
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if ($obj->fk_user_author) {
|
|
||||||
$cuser = new User($this->db);
|
|
||||||
$cuser->fetch($obj->fk_user_author);
|
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_valid) {
|
|
||||||
$vuser = new User($this->db);
|
|
||||||
$vuser->fetch($obj->fk_user_valid);
|
|
||||||
$this->user_validation = $vuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_cloture) {
|
|
||||||
$cluser = new User($this->db);
|
|
||||||
$cluser->fetch($obj->fk_user_cloture);
|
|
||||||
$this->user_cloture = $cluser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->user_creation_id = $obj->fk_user_author;
|
||||||
|
$this->user_validation_id = $obj->fk_user_valid;
|
||||||
|
$this->user_cloture_id = $obj->fk_user_cloture;
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_modification = $this->db->jdate($obj->datem);
|
$this->date_modification = $this->db->jdate($obj->datem);
|
||||||
$this->date_validation = $this->db->jdate($obj->datev);
|
$this->date_validation = $this->db->jdate($obj->datev);
|
||||||
|
|||||||
@ -734,27 +734,11 @@ class AssetModel extends CommonObject
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if ($obj->fk_user_author) {
|
|
||||||
$cuser = new User($this->db);
|
|
||||||
$cuser->fetch($obj->fk_user_author);
|
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_valid) {
|
|
||||||
$vuser = new User($this->db);
|
|
||||||
$vuser->fetch($obj->fk_user_valid);
|
|
||||||
$this->user_validation = $vuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_cloture) {
|
|
||||||
$cluser = new User($this->db);
|
|
||||||
$cluser->fetch($obj->fk_user_cloture);
|
|
||||||
$this->user_cloture = $cluser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->user_creation_id = $obj->fk_user_creat;
|
||||||
|
$this->user_modification_id = $obj->fk_user_modif;
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_modification = $this->db->jdate($obj->datem);
|
$this->date_modification = $this->db->jdate($obj->datem);
|
||||||
$this->date_validation = $this->db->jdate($obj->datev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->free($result);
|
$this->db->free($result);
|
||||||
|
|||||||
@ -181,7 +181,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
// if (!empty($conf->agenda->enabled)) {
|
// if (isModEnabled('agenda')) {
|
||||||
// if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
// if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
||||||
// print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create' . $out . '">' . $langs->trans("AddAction") . '</a>';
|
// print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create' . $out . '">' . $langs->trans("AddAction") . '</a>';
|
||||||
// } else {
|
// } else {
|
||||||
@ -191,7 +191,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
// if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
// if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
||||||
// $param = '&id=' . $object->id . '&socid=' . $socid;
|
// $param = '&id=' . $object->id . '&socid=' . $socid;
|
||||||
// if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
// if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
// $param .= '&contextpage=' . urlencode($contextpage);
|
// $param .= '&contextpage=' . urlencode($contextpage);
|
||||||
|
|||||||
@ -300,7 +300,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clone
|
// Clone
|
||||||
print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&token=' . newToken(), '', $permissiontoadd);
|
print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER['PHP_SELF'] . '?id=' . $object->id . (!empty($socid) ? '&socid=' . $socid : '') . '&action=clone&token=' . newToken(), '', $permissiontoadd);
|
||||||
|
|
||||||
// Delete (need delete permission, or if draft, just need create/modify permission)
|
// Delete (need delete permission, or if draft, just need create/modify permission)
|
||||||
print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=delete&token=' . newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd));
|
print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=delete&token=' . newToken(), '', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd));
|
||||||
|
|||||||
@ -188,7 +188,7 @@ print '<input type="hidden" name="token" value="'.newToken().'">';
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// For thirdparty
|
// For thirdparty
|
||||||
if ($conf->societe->enabled) {
|
if (isModEnabled('societe')) {
|
||||||
$nbno = $nbtotal = 0;
|
$nbno = $nbtotal = 0;
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("BarcodeInitForThirdparties"), '', 'company');
|
print load_fiche_titre($langs->trans("BarcodeInitForThirdparties"), '', 'company');
|
||||||
|
|||||||
@ -140,7 +140,7 @@ class BlockedLog
|
|||||||
|
|
||||||
$this->trackedevents = array();
|
$this->trackedevents = array();
|
||||||
|
|
||||||
if (!empty($conf->facture->enabled)) {
|
if (isModEnabled('facture')) {
|
||||||
$this->trackedevents['BILL_VALIDATE'] = 'logBILL_VALIDATE';
|
$this->trackedevents['BILL_VALIDATE'] = 'logBILL_VALIDATE';
|
||||||
$this->trackedevents['BILL_DELETE'] = 'logBILL_DELETE';
|
$this->trackedevents['BILL_DELETE'] = 'logBILL_DELETE';
|
||||||
$this->trackedevents['BILL_SENTBYMAIL'] = 'logBILL_SENTBYMAIL';
|
$this->trackedevents['BILL_SENTBYMAIL'] = 'logBILL_SENTBYMAIL';
|
||||||
|
|||||||
@ -150,7 +150,7 @@ if ($object->id > 0) {
|
|||||||
// Thirdparty
|
// Thirdparty
|
||||||
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
||||||
// Project
|
// Project
|
||||||
if (! empty($conf->projet->enabled))
|
if (! empty($conf->project->enabled))
|
||||||
{
|
{
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
||||||
@ -220,7 +220,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
if (!empty($conf->agenda->enabled)) {
|
if (isModEnabled('agenda')) {
|
||||||
if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
if (!empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create)) {
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'">'.$langs->trans("AddAction").'</a>';
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'">'.$langs->trans("AddAction").'</a>';
|
||||||
} else {
|
} else {
|
||||||
@ -230,7 +230,7 @@ if ($object->id > 0) {
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
if (!empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
if (isModEnabled('agenda') && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read))) {
|
||||||
$param = '&id='.$object->id.'&socid='.$socid;
|
$param = '&id='.$object->id.'&socid='.$socid;
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
$param .= '&contextpage='.urlencode($contextpage);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
|
|||||||
@ -476,7 +476,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
// Thirdparty
|
// Thirdparty
|
||||||
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
|
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
|
||||||
// Project
|
// Project
|
||||||
if (! empty($conf->projet->enabled))
|
if (! empty($conf->project->enabled))
|
||||||
{
|
{
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
||||||
@ -584,7 +584,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|
||||||
print mrpCollapseBomManagement();
|
mrpCollapseBomManagement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -638,7 +638,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create MO
|
// Create MO
|
||||||
if ($conf->mrp->enabled) {
|
if (isModEnabled('mrp')) {
|
||||||
if ($object->status == $object::STATUS_VALIDATED && !empty($user->rights->mrp->write)) {
|
if ($object->status == $object::STATUS_VALIDATED && !empty($user->rights->mrp->write)) {
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/mrp/mo_card.php?action=create&fk_bom='.$object->id.'&token='.newToken().'&backtopageforcancel='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id).'">'.$langs->trans("CreateMO").'</a>'."\n";
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/mrp/mo_card.php?action=create&fk_bom='.$object->id.'&token='.newToken().'&backtopageforcancel='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id).'">'.$langs->trans("CreateMO").'</a>'."\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -909,27 +909,11 @@ class BOM extends CommonObject
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if (!empty($obj->fk_user_author)) {
|
|
||||||
$cuser = new User($this->db);
|
|
||||||
$cuser->fetch($obj->fk_user_author);
|
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($obj->fk_user_valid)) {
|
|
||||||
$vuser = new User($this->db);
|
|
||||||
$vuser->fetch($obj->fk_user_valid);
|
|
||||||
$this->user_validation = $vuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($obj->fk_user_cloture)) {
|
|
||||||
$cluser = new User($this->db);
|
|
||||||
$cluser->fetch($obj->fk_user_cloture);
|
|
||||||
$this->user_cloture = $cluser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$this->user_creation_id = $obj->fk_user_creat;
|
||||||
|
$this->user_modification_id = $obj->fk_user_modif;
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_modification = !empty($obj->datem) ? $this->db->jdate($obj->datem) : "";
|
$this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem);
|
||||||
$this->date_validation = !empty($obj->datev) ? $this->db->jdate($obj->datev) : "";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->free($result);
|
$this->db->free($result);
|
||||||
@ -1581,29 +1565,11 @@ class BOMLine extends CommonObjectLine
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
if ($obj->fk_user_author) {
|
$this->user_creation_id = $obj->fk_user_creat;
|
||||||
$cuser = new User($this->db);
|
$this->user_modification_id = $obj->fk_user_modif;
|
||||||
$cuser->fetch($obj->fk_user_author);
|
|
||||||
$this->user_creation = $cuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_valid) {
|
|
||||||
$vuser = new User($this->db);
|
|
||||||
$vuser->fetch($obj->fk_user_valid);
|
|
||||||
$this->user_validation = $vuser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($obj->fk_user_cloture) {
|
|
||||||
$cluser = new User($this->db);
|
|
||||||
$cluser->fetch($obj->fk_user_cloture);
|
|
||||||
$this->user_cloture = $cluser;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->date_modification = $this->db->jdate($obj->datem);
|
$this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem);
|
||||||
$this->date_validation = $this->db->jdate($obj->datev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->free($result);
|
$this->db->free($result);
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($this->db);
|
dol_print_error($this->db);
|
||||||
|
|||||||
@ -246,7 +246,7 @@ if ($user->rights->categorie->creer) {
|
|||||||
// Description
|
// Description
|
||||||
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('description', $description, '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_5, '90%');
|
$doleditor = new DolEditor('description', $description, '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_5, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -51,10 +51,13 @@ class Categories extends DolibarrApi
|
|||||||
4 => 'contact',
|
4 => 'contact',
|
||||||
5 => 'account',
|
5 => 'account',
|
||||||
6 => 'project',
|
6 => 'project',
|
||||||
//7 => 'user',
|
7 => 'user',
|
||||||
//8 => 'bank_line',
|
8 => 'bank_line',
|
||||||
//9 => 'warehouse',
|
9 => 'warehouse',
|
||||||
//10 => 'actioncomm',
|
10 => 'actioncomm',
|
||||||
|
11 => 'website_page',
|
||||||
|
12 => 'ticket',
|
||||||
|
13 => 'knowledgemanagement'
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -662,6 +665,10 @@ class Categories extends DolibarrApi
|
|||||||
$object = parent::_cleanObjectDatas($object);
|
$object = parent::_cleanObjectDatas($object);
|
||||||
|
|
||||||
// Remove fields not relevent to categories
|
// Remove fields not relevent to categories
|
||||||
|
unset($object->MAP_CAT_FK);
|
||||||
|
unset($object->MAP_CAT_TABLE);
|
||||||
|
unset($object->MAP_OBJ_CLASS);
|
||||||
|
unset($object->MAP_OBJ_TABLE);
|
||||||
unset($object->country);
|
unset($object->country);
|
||||||
unset($object->country_id);
|
unset($object->country_id);
|
||||||
unset($object->country_code);
|
unset($object->country_code);
|
||||||
|
|||||||
@ -175,11 +175,10 @@ class Categorie extends CommonObject
|
|||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array Object table mapping from type string (table llx_...) when value of key does not match table name.
|
* @var array Object table mapping from type string (table llx_...) when value of key does not match table name.
|
||||||
*
|
* This array may be completed by external modules with hook "constructCategory"
|
||||||
* @note Move to const array when PHP 5.6 will be our minimum target
|
|
||||||
*/
|
*/
|
||||||
public static $MAP_OBJ_TABLE = array(
|
public $MAP_OBJ_TABLE = array(
|
||||||
'customer' => 'societe',
|
'customer' => 'societe',
|
||||||
'supplier' => 'societe',
|
'supplier' => 'societe',
|
||||||
'member' => 'adherent',
|
'member' => 'adherent',
|
||||||
@ -372,6 +371,8 @@ class Categorie extends CommonObject
|
|||||||
$this->entity = (int) $res['entity'];
|
$this->entity = (int) $res['entity'];
|
||||||
$this->date_creation = $this->db->jdate($res['date_creation']);
|
$this->date_creation = $this->db->jdate($res['date_creation']);
|
||||||
$this->date_modification = $this->db->jdate($res['tms']);
|
$this->date_modification = $this->db->jdate($res['tms']);
|
||||||
|
$this->user_creation_id = (int) $res['fk_user_creat'];
|
||||||
|
$this->user_modification_id = (int) $res['fk_user_modif'];
|
||||||
$this->user_creation = (int) $res['fk_user_creat'];
|
$this->user_creation = (int) $res['fk_user_creat'];
|
||||||
$this->user_modification = (int) $res['fk_user_modif'];
|
$this->user_modification = (int) $res['fk_user_modif'];
|
||||||
|
|
||||||
@ -989,7 +990,7 @@ class Categorie extends CommonObject
|
|||||||
$categories[$i]['array_options'] = $category_static->array_options;
|
$categories[$i]['array_options'] = $category_static->array_options;
|
||||||
|
|
||||||
// multilangs
|
// multilangs
|
||||||
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
if (!empty($conf->global->MAIN_MULTILANGS) && isset($category_static->multilangs)) {
|
||||||
$categories[$i]['multilangs'] = $category_static->multilangs;
|
$categories[$i]['multilangs'] = $category_static->multilangs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -263,7 +263,7 @@ if ($action == 'edit') {
|
|||||||
// Desc
|
// Desc
|
||||||
$desc = (GETPOST('desc-'.$key) ? GETPOST('desc-'.$key) : $object->multilangs[$key]['description']);
|
$desc = (GETPOST('desc-'.$key) ? GETPOST('desc-'.$key) : $object->multilangs[$key]['description']);
|
||||||
print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans('Description').'</td><td>';
|
||||||
$doleditor = new DolEditor("desc-$key", $desc, '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
|
$doleditor = new DolEditor("desc-$key", $desc, '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -323,7 +323,7 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service
|
|||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Label').'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Label').'</td>';
|
||||||
print '<td><input name="libelle" class="minwidth200 maxwidth300" value="'.GETPOST('libelle', 'alpha').'"></td></tr>';
|
print '<td><input name="libelle" class="minwidth200 maxwidth300" value="'.GETPOST('libelle', 'alpha').'"></td></tr>';
|
||||||
print '<tr><td>'.$langs->trans('Description').'</td><td>';
|
print '<tr><td>'.$langs->trans('Description').'</td><td>';
|
||||||
$doleditor = new DolEditor('desc', GETPOST('desc', 'restricthtml'), '', 160, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_3, '90%');
|
$doleditor = new DolEditor('desc', GETPOST('desc', 'restricthtml'), '', 160, 'dolibarr_notes', '', false, true, getDolGlobalInt('FCKEDITOR_ENABLE_PRODUCTDESC'), ROWS_3, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -1234,7 +1234,7 @@ if ($action == 'create') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Project
|
// Project
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
|
|
||||||
$projectid = GETPOST('projectid', 'int');
|
$projectid = GETPOST('projectid', 'int');
|
||||||
@ -1737,7 +1737,7 @@ if ($id > 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Project
|
// Project
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
|
|
||||||
print '<tr><td class="titlefieldcreate">'.$langs->trans("Project").'</td><td>';
|
print '<tr><td class="titlefieldcreate">'.$langs->trans("Project").'</td><td>';
|
||||||
@ -1762,7 +1762,7 @@ if ($id > 0) {
|
|||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("LinkedObject").'</td>';
|
print '<td>'.$langs->trans("LinkedObject").'</td>';
|
||||||
|
|
||||||
if ($object->elementtype == 'task' && !empty($conf->projet->enabled)) {
|
if ($object->elementtype == 'task' && !empty($conf->project->enabled)) {
|
||||||
print '<td id="project-task-input-container" >';
|
print '<td id="project-task-input-container" >';
|
||||||
|
|
||||||
$urloption = '?action=create&donotclearsession=1'; // we use create not edit for more flexibility
|
$urloption = '?action=create&donotclearsession=1'; // we use create not edit for more flexibility
|
||||||
@ -1946,7 +1946,7 @@ if ($id > 0) {
|
|||||||
// Thirdparty
|
// Thirdparty
|
||||||
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
||||||
// Project
|
// Project
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
||||||
$morehtmlref .= $langs->trans('Project').' ';
|
$morehtmlref .= $langs->trans('Project').' ';
|
||||||
|
|||||||
@ -1448,21 +1448,10 @@ class ActionComm extends CommonObject
|
|||||||
if ($this->db->num_rows($result)) {
|
if ($this->db->num_rows($result)) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$this->id = $obj->id;
|
$this->id = $obj->id;
|
||||||
if ($obj->fk_user_author) {
|
$this->user_creation_id = $obj->fk_user_author;
|
||||||
$cuser = new User($this->db);
|
$this->user_modification_id = $obj->fk_user_mod;
|
||||||
$cuser->fetch($obj->fk_user_author);
|
$this->date_creation = $this->db->jdate($obj->datec);
|
||||||
$this->user_creation = $cuser;
|
$this->date_modification = empty($obj->datem) ? '' : $this->db->jdate($obj->datem);
|
||||||
}
|
|
||||||
if ($obj->fk_user_mod) {
|
|
||||||
$muser = new User($this->db);
|
|
||||||
$muser->fetch($obj->fk_user_mod);
|
|
||||||
$this->user_modification = $muser;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->date_creation = $this->db->jdate($obj->datec);
|
|
||||||
if (!empty($obj->fk_user_mod)) {
|
|
||||||
$this->date_modification = $this->db->jdate($obj->datem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$this->db->free($result);
|
$this->db->free($result);
|
||||||
} else {
|
} else {
|
||||||
@ -2513,14 +2502,16 @@ class ActionComm extends CommonObject
|
|||||||
*
|
*
|
||||||
* @param int $id The id of the event
|
* @param int $id The id of the event
|
||||||
* @param int $percent The new percent value for the event
|
* @param int $percent The new percent value for the event
|
||||||
|
* @param int $usermodid The user who modified the percent
|
||||||
* @return int 1 when update of the event was suscessfull, otherwise -1
|
* @return int 1 when update of the event was suscessfull, otherwise -1
|
||||||
*/
|
*/
|
||||||
public function updatePercent($id, $percent)
|
public function updatePercent($id, $percent, $usermodid = 0)
|
||||||
{
|
{
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm ";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."actioncomm ";
|
||||||
$sql .= " SET percent = ".(int) $percent;
|
$sql .= " SET percent = ".(int) $percent;
|
||||||
|
if ($usermodid > 0) $sql .= ", fk_user_mod = ".$usermodid;
|
||||||
$sql .= " WHERE id = ".((int) $id);
|
$sql .= " WHERE id = ".((int) $id);
|
||||||
|
|
||||||
if ($this->db->query($sql)) {
|
if ($this->db->query($sql)) {
|
||||||
|
|||||||
@ -198,7 +198,7 @@ class CActionComm
|
|||||||
//var_dump($obj->type.' '.$obj->module.' '); var_dump($user->rights->facture->lire);
|
//var_dump($obj->type.' '.$obj->module.' '); var_dump($user->rights->facture->lire);
|
||||||
$qualified = 0;
|
$qualified = 0;
|
||||||
// Special cases
|
// Special cases
|
||||||
if ($obj->module == 'invoice' && !empty($conf->facture->enabled) && !empty($user->rights->facture->lire)) {
|
if ($obj->module == 'invoice' && isModEnabled('facture') && !empty($user->rights->facture->lire)) {
|
||||||
$qualified = 1;
|
$qualified = 1;
|
||||||
}
|
}
|
||||||
if ($obj->module == 'order' && !empty($conf->commande->enabled) && empty($user->rights->commande->lire)) {
|
if ($obj->module == 'order' && !empty($conf->commande->enabled) && empty($user->rights->commande->lire)) {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ if ($object->id > 0) {
|
|||||||
// Thirdparty
|
// Thirdparty
|
||||||
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
|
||||||
// Project
|
// Project
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
||||||
$morehtmlref .= $langs->trans('Project').': ';
|
$morehtmlref .= $langs->trans('Project').': ';
|
||||||
|
|||||||
@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.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/agenda.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
|
||||||
if (!empty($conf->projet->enabled)) {
|
if (!empty($conf->project->enabled)) {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -848,7 +848,6 @@ if ($resql) {
|
|||||||
$event->fk_project = $obj->fk_project;
|
$event->fk_project = $obj->fk_project;
|
||||||
|
|
||||||
$event->socid = $obj->fk_soc;
|
$event->socid = $obj->fk_soc;
|
||||||
$event->thirdparty_id = $obj->fk_soc;
|
|
||||||
$event->contact_id = $obj->fk_contact;
|
$event->contact_id = $obj->fk_contact;
|
||||||
|
|
||||||
// Defined date_start_in_calendar and date_end_in_calendar property
|
// Defined date_start_in_calendar and date_end_in_calendar property
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user