From 5bb6185e64359d476954359076e64473d13591e6 Mon Sep 17 00:00:00 2001
From: Anthony Berton <34568357+bb2a@users.noreply.github.com>
Date: Tue, 2 Nov 2021 12:37:39 +0100
Subject: [PATCH 01/31] add_substitution
---
htdocs/core/lib/functions.lib.php | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 084a4a4f25a..5eb0bd7d62c 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -7212,7 +7212,10 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
if ($object->id > 0) {
$substitutionarray['__ONLINE_PAYMENT_TEXT_AND_URL__'] = ($paymenturl ?str_replace('\n', "\n", $outputlangs->trans("PredefinedMailContentLink", $paymenturl)) : '');
$substitutionarray['__ONLINE_PAYMENT_URL__'] = $paymenturl;
-
+
+ if (is_object($object) && $object->element == 'propal') {
+ $substitutionarray['__ONLINE_SIGN_URL__'] = getOnlineSignatureUrl(0, 'proposal', $object->ref);
+ }
if (!empty($conf->global->PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'propal') {
$substitutionarray['__DIRECTDOWNLOAD_URL_PROPOSAL__'] = $object->getLastMainDocLink($object->element);
} else {
From 126fbf9f631a3ff7d226e8719d0c3b12a8c2dc20 Mon Sep 17 00:00:00 2001
From: Benjamin Chantalat <74144396+PyroShape@users.noreply.github.com>
Date: Tue, 2 Nov 2021 15:46:04 +0100
Subject: [PATCH 02/31] Change date format to be equal to mass stock transfert
---
htdocs/product/stock/tpl/stockcorrection.tpl.php | 2 +-
htdocs/product/stock/tpl/stocktransfer.tpl.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php
index 05d628902fb..e1a5e734016 100644
--- a/htdocs/product/stock/tpl/stockcorrection.tpl.php
+++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php
@@ -155,7 +155,7 @@ print '
'.$langs->trans("MovementLabel").' | ';
print '';
print '';
print ' | ';
-print ''.$langs->trans("InventoryCode").' | | ';
+print ''.$langs->trans("InventoryCode").' | | ';
print '';
print '';
diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php
index 27c9b2acb21..711e5a0c9ac 100644
--- a/htdocs/product/stock/tpl/stocktransfer.tpl.php
+++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php
@@ -130,7 +130,7 @@ print ''.$langs->trans("MovementLabel").' | ';
print '';
print '';
print ' | ';
-print ''.$langs->trans("InventoryCode").' | | ';
+print ''.$langs->trans("InventoryCode").' | | ';
print '';
print '';
From 0c1d4c9d5104717bc9957ac0cde20bba21872881 Mon Sep 17 00:00:00 2001
From: Benjamin Chantalat <74144396+PyroShape@users.noreply.github.com>
Date: Tue, 2 Nov 2021 15:48:12 +0100
Subject: [PATCH 03/31] No need of escape htmltag thanks to GETPOST before
---
htdocs/product/stock/tpl/stocktransfer.tpl.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php
index 711e5a0c9ac..b71e1e8b248 100644
--- a/htdocs/product/stock/tpl/stocktransfer.tpl.php
+++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php
@@ -124,11 +124,11 @@ if (!empty($conf->productbatch->enabled) &&
}
// Label
-$valformovementlabel = (GETPOST("label") ?GETPOST("label") : $langs->trans("MovementTransferStock", $productref));
+$valformovementlabel = (GETPOST("label") ? GETPOST("label") : $langs->trans("MovementTransferStock", $productref));
print '';
print '| '.$langs->trans("MovementLabel").' | ';
print '';
-print '';
+print '';
print ' | ';
print ''.$langs->trans("InventoryCode").' | | ';
print '
';
From 49d955b7948a1c730c519402f5c003fb5f2dfb5d Mon Sep 17 00:00:00 2001
From: Benjamin Chantalat <74144396+PyroShape@users.noreply.github.com>
Date: Tue, 2 Nov 2021 15:53:57 +0100
Subject: [PATCH 04/31] Uniformization of the table code as the line above
---
htdocs/product/stock/tpl/stockcorrection.tpl.php | 5 ++++-
htdocs/product/stock/tpl/stocktransfer.tpl.php | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php
index e1a5e734016..e4dfd8b5d7c 100644
--- a/htdocs/product/stock/tpl/stockcorrection.tpl.php
+++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php
@@ -155,7 +155,10 @@ print ''.$langs->trans("MovementLabel").' | ';
print '';
print '';
print ' | ';
-print ''.$langs->trans("InventoryCode").' | | ';
+print ''.$langs->trans("InventoryCode").' | ';
+print '';
+print '';
+print ' | ';
print '';
print '';
diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php
index b71e1e8b248..31a3103c3eb 100644
--- a/htdocs/product/stock/tpl/stocktransfer.tpl.php
+++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php
@@ -130,7 +130,10 @@ print ''.$langs->trans("MovementLabel").' | ';
print '';
print '';
print ' | ';
-print ''.$langs->trans("InventoryCode").' | | ';
+print ''.$langs->trans("InventoryCode").' | ';
+print '';
+print '';
+print ' | ';
print '';
print '';
From 973f408b6e3caa54a862b887f759279d214d487b Mon Sep 17 00:00:00 2001
From: daraelmin
Date: Wed, 3 Nov 2021 20:35:57 +0100
Subject: [PATCH 05/31] Fix default enddate subscription must be in futur
---
htdocs/adherents/subscription.php | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index 1316a337610..839680c3874 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -943,8 +943,10 @@ if ($rowid > 0) {
}
if (!$datefrom) {
$datefrom = $object->datevalid;
- if ($object->datefin > 0) {
- $datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
+ if ($object->datefin > 0 && dol_now() > dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd') {
+ $datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
+ } else {
+ $datefrom = dol_get_first_day(dol_print_date(time(), "%Y"));
}
}
print $form->selectDate($datefrom, '', '', '', '', "subscription", 1, 1);
From 0e91b32e990e764fade7abec6e03ea6d7a605b9c Mon Sep 17 00:00:00 2001
From: daraelmin
Date: Wed, 3 Nov 2021 20:40:09 +0100
Subject: [PATCH 06/31] Update subscription.php
---
htdocs/adherents/subscription.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index 839680c3874..11b3aed8f00 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -943,7 +943,7 @@ if ($rowid > 0) {
}
if (!$datefrom) {
$datefrom = $object->datevalid;
- if ($object->datefin > 0 && dol_now() > dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd') {
+ if ($object->datefin > 0 && dol_now() > dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd')) {
$datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
} else {
$datefrom = dol_get_first_day(dol_print_date(time(), "%Y"));
From f9db196512ac5b405780368bc2ea2667e43db5a3 Mon Sep 17 00:00:00 2001
From: daraelmin
Date: Wed, 3 Nov 2021 22:31:45 +0100
Subject: [PATCH 07/31] Update subscription.php
---
htdocs/adherents/subscription.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index 11b3aed8f00..f38562da5a0 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -943,7 +943,7 @@ if ($rowid > 0) {
}
if (!$datefrom) {
$datefrom = $object->datevalid;
- if ($object->datefin > 0 && dol_now() > dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd')) {
+ if ($object->datefin > 0 && dol_now() < dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd')) {
$datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
} else {
$datefrom = dol_get_first_day(dol_print_date(time(), "%Y"));
From 586005ff2e5daf46870bb62c908052aa947cd28c Mon Sep 17 00:00:00 2001
From: stickler-ci
Date: Wed, 3 Nov 2021 21:43:30 +0000
Subject: [PATCH 08/31] Fixing style errors.
---
htdocs/adherents/subscription.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index f38562da5a0..e8a703a6efb 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -944,7 +944,7 @@ if ($rowid > 0) {
if (!$datefrom) {
$datefrom = $object->datevalid;
if ($object->datefin > 0 && dol_now() < dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd')) {
- $datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
+ $datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
} else {
$datefrom = dol_get_first_day(dol_print_date(time(), "%Y"));
}
From 9d7f7e2090fa84ebece603aefa7fb34e7952bdb5 Mon Sep 17 00:00:00 2001
From: daraelmin
Date: Fri, 5 Nov 2021 14:03:56 +0100
Subject: [PATCH 09/31] Better condition
---
htdocs/adherents/subscription.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
index e8a703a6efb..05e55206c02 100644
--- a/htdocs/adherents/subscription.php
+++ b/htdocs/adherents/subscription.php
@@ -943,7 +943,7 @@ if ($rowid > 0) {
}
if (!$datefrom) {
$datefrom = $object->datevalid;
- if ($object->datefin > 0 && dol_now() < dol_time_plus_duree(dol_time_plus_duree($object->datefin, 2 * $defaultdelay, $defaultdelayunit), -1, 'd')) {
+ if ($object->datefin > 0 && dol_time_plus_duree($object->datefin, $defaultdelay, $defaultdelayunit) < dol_now()) {
$datefrom = dol_time_plus_duree($object->datefin, 1, 'd');
} else {
$datefrom = dol_get_first_day(dol_print_date(time(), "%Y"));
From 61d97ccd22abfc9fd60bce6741b7cf4e1d2047bf Mon Sep 17 00:00:00 2001
From: Nicolas Domenech
Date: Fri, 5 Nov 2021 16:02:24 +0100
Subject: [PATCH 10/31] NEW : redirect after connection in login page
---
htdocs/core/lib/security2.lib.php | 5 +++++
htdocs/core/tpl/login.tpl.php | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php
index ab47bc02899..d6546e64cfd 100644
--- a/htdocs/core/lib/security2.lib.php
+++ b/htdocs/core/lib/security2.lib.php
@@ -224,6 +224,11 @@ if (!function_exists('dol_loginfunction')) {
$reshook = $hookmanager->executeHooks('getLoginPageExtraOptions', $parameters); // Note that $action and $object may have been modified by some hooks.
$moreloginextracontent = $hookmanager->resPrint;
+ //Redirect after connection
+ $parameters = array('entity' => GETPOST('entity', 'int'));
+ $reshook = $hookmanager->executeHooks('redirectAfterConnection', $parameters); // Note that $action and $object may have been modified by some hooks.
+ $php_self = $hookmanager->resPrint;
+
// Login
$login = (!empty($hookmanager->resArray['username']) ? $hookmanager->resArray['username'] : (GETPOST("username", "alpha") ? GETPOST("username", "alpha") : $demologin));
$password = $demopassword;
diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php
index 0a4bb149986..9f2f2f68712 100644
--- a/htdocs/core/tpl/login.tpl.php
+++ b/htdocs/core/tpl/login.tpl.php
@@ -57,7 +57,7 @@ if (!empty($conf->dol_use_jmobile)) {
$conf->use_javascript_ajax = 1;
}
-$php_self = dol_escape_htmltag($_SERVER['PHP_SELF']);
+$php_self = empty($php_self) ? dol_escape_htmltag($_SERVER['PHP_SELF']) : $php_self;
$php_self .= dol_escape_htmltag($_SERVER["QUERY_STRING"]) ? '?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]) : '';
if (!preg_match('/mainmenu=/', $php_self)) {
$php_self .= (preg_match('/\?/', $php_self) ? '&' : '?').'mainmenu=home';
From 2fc05a4c1cdd0541e51b90e960d7d23e5501110e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 00:37:42 +0100
Subject: [PATCH 11/31] Add test virus file
---
test/phpunit/testvirus.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 test/phpunit/testvirus.txt
diff --git a/test/phpunit/testvirus.txt b/test/phpunit/testvirus.txt
new file mode 100644
index 00000000000..a2463df6d64
--- /dev/null
+++ b/test/phpunit/testvirus.txt
@@ -0,0 +1 @@
+X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
\ No newline at end of file
From d591a83085c93346e969054c6967350648d68755 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 00:57:00 +0100
Subject: [PATCH 12/31] css
---
htdocs/admin/tools/dolibarr_import.php | 3 +++
1 file changed, 3 insertions(+)
diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php
index 29bfe5c12a4..77dea6f23ab 100644
--- a/htdocs/admin/tools/dolibarr_import.php
+++ b/htdocs/admin/tools/dolibarr_import.php
@@ -207,6 +207,9 @@ if (in_array($type, array('mysql', 'mysqli'))) {
//if (empty($_GET["showpass"]) && $dolibarr_main_db_pass) print '
'.$langs->trans("UnHidePassword").'';
//else print '
'.$langs->trans("HidePassword").'';
print '';
+
+ print '
';
+
print '';
}
From bbd3293c3c5c13dc6b9e9f98947bce37d626439b Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 01:42:38 +0100
Subject: [PATCH 13/31] Data ref
---
htdocs/install/mysql/data/llx_c_availability.sql | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/htdocs/install/mysql/data/llx_c_availability.sql b/htdocs/install/mysql/data/llx_c_availability.sql
index 2e06d1de8b3..7291c399da0 100644
--- a/htdocs/install/mysql/data/llx_c_availability.sql
+++ b/htdocs/install/mysql/data/llx_c_availability.sql
@@ -27,6 +27,8 @@
delete from llx_c_availability;
INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (1, 'AV_NOW', 'Immediate', 1, 10);
-INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (2, 'AV_1W', '1 week', 1, 20);
-INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (3, 'AV_2W', '2 weeks', 1, 30);
-INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (4, 'AV_3W', '3 weeks', 1, 40);
+INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (2, 'AV_1W', '1 week', 1, 20);
+INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (3, 'AV_2W', '2 weeks', 1, 30);
+INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (4, 'AV_3W', '3 weeks', 1, 40);
+INSERT INTO llx_c_availability (rowid,code,label,active,position) VALUES (5, 'AV_4W', '4 weeks', 1, 50);
+
From 2ea248e705fdb8986b27e72ee46666caec7c5cc2 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 02:09:20 +0100
Subject: [PATCH 14/31] Clean code
---
htdocs/hrm/core/tpl/objectline_view.tpl.php | 5 -----
1 file changed, 5 deletions(-)
diff --git a/htdocs/hrm/core/tpl/objectline_view.tpl.php b/htdocs/hrm/core/tpl/objectline_view.tpl.php
index 9be74a5f38f..9dd0e0099ab 100644
--- a/htdocs/hrm/core/tpl/objectline_view.tpl.php
+++ b/htdocs/hrm/core/tpl/objectline_view.tpl.php
@@ -57,11 +57,6 @@ $domData .= ' data-id="'.$line->id.'"';
$domData .= ' data-qty="'.$line->qty.'"';
$domData .= ' data-product_type="'.$line->product_type.'"';
-$sign = 1;
-if (!empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE_SCREEN) && in_array($object->element, array('facture', 'invoice_supplier')) && $object->type == $object::TYPE_CREDIT_NOTE) {
- $sign = -1;
-}
-
$coldisplay = 0;
?>
From e8b3875e2e79b4c30681e86a5ab7ab9ed988fb21 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 02:57:21 +0100
Subject: [PATCH 15/31] FIX bad sign of amount stored for multicurrency columns
on credit notes
---
htdocs/compta/facture/card.php | 19 ++++++++-------
htdocs/compta/facture/class/facture.class.php | 23 ++++++++++---------
.../fourn/class/fournisseur.facture.class.php | 23 ++++++++++---------
.../install/mysql/migration/13.0.0-14.0.0.sql | 20 ++++++++++++++++
htdocs/langs/en_US/bills.lang | 2 ++
htdocs/theme/eldy/global.inc.php | 2 +-
6 files changed, 58 insertions(+), 31 deletions(-)
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index ed4f3d873e9..d9be7ff3f1c 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -3845,13 +3845,14 @@ if ($action == 'create') {
$totalpaye = $object->getSommePaiement();
$totalcreditnotes = $object->getSumCreditNotesUsed();
$totaldeposits = $object->getSumDepositsUsed();
- // print "totalpaye=".$totalpaye." totalcreditnotes=".$totalcreditnotes." totaldeposts=".$totaldeposits."
+ //print "totalpaye=".$totalpaye." totalcreditnotes=".$totalcreditnotes." totaldeposts=".$totaldeposits."
// selleruserrevenuestamp=".$selleruserevenustamp;
// We can also use bcadd to avoid pb with floating points
// For example print 239.2 - 229.3 - 9.9; does not return 0.
// $resteapayer=bcadd($object->total_ttc,$totalpaye,$conf->global->MAIN_MAX_DECIMALS_TOT);
// $resteapayer=bcadd($resteapayer,$totalavoir,$conf->global->MAIN_MAX_DECIMALS_TOT);
+
$resteapayer = price2num($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits, 'MT');
// Multicurrency
@@ -5089,7 +5090,7 @@ if ($action == 'create') {
print '';
print $langs->trans('RemainderToPay');
if ($resteapayeraffiche < 0) {
- print ' ('.$langs->trans('ExcessReceived').')';
+ print ' ('.$langs->trans('NegativeIfExcessReceived').')';
}
print '';
print '';
@@ -5117,23 +5118,25 @@ if ($action == 'create') {
print ' :'.price($retainedWarranty).' | | ';
}
} else { // Credit note
+
+ $resteapayeraffiche = $resteapayer;
$cssforamountpaymentcomplete = 'amountpaymentneutral';
// Total already paid back
print '| ';
- print $langs->trans('AlreadyPaidBack');
- print ' : | '.price($sign * $totalpaye).' | |
';
+ print ''.$langs->trans('AlreadyPaidBack').'';
+ print ''.price($sign * $totalpaye).' | | ';
// Billed
- print '| '.$langs->trans("Billed").' : | '.price($sign * $object->total_ttc).' | |
';
+ print '| '.$langs->trans("Billed").' | '.price($sign * $object->total_ttc).' | |
';
// Remainder to pay back
print '| ';
- print $langs->trans('RemainderToPayBack');
+ print ''.$langs->trans('RemainderToPayBack');
if ($resteapayeraffiche > 0) {
- print ' ('.$langs->trans('ExcessPaid').')';
+ print ' ('.$langs->trans('NegativeIfExcessRefunded').')';
}
- print ' : | ';
+ print '';
print ''.price($sign * $resteapayeraffiche).' | ';
print ' |
';
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index a28838756d9..f8f246924e3 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -3296,8 +3296,8 @@ class Facture extends CommonInvoice
$this->line->desc = $desc;
$this->line->ref_ext = $ref_ext;
- $this->line->qty = ($this->type == self::TYPE_CREDIT_NOTE ?abs($qty) : $qty); // For credit note, quantity is always positive and unit price negative
- $this->line->subprice = ($this->type == self::TYPE_CREDIT_NOTE ?-abs($pu_ht) : $pu_ht); // For credit note, unit price always negative, always positive otherwise
+ $this->line->qty = ($this->type == self::TYPE_CREDIT_NOTE ? abs($qty) : $qty); // For credit note, quantity is always positive and unit price negative
+ $this->line->subprice = ($this->type == self::TYPE_CREDIT_NOTE ? -abs($pu_ht) : $pu_ht); // For credit note, unit price always negative, always positive otherwise
$this->line->vat_src_code = $vat_src_code;
$this->line->tva_tx = $txtva;
@@ -3306,11 +3306,11 @@ class Facture extends CommonInvoice
$this->line->localtax1_type = empty($localtaxes_type[0]) ? '' : $localtaxes_type[0];
$this->line->localtax2_type = empty($localtaxes_type[2]) ? '' : $localtaxes_type[2];
- $this->line->total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_ht) : $total_ht); // For credit note and if qty is negative, total is negative
- $this->line->total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_ttc) : $total_ttc); // For credit note and if qty is negative, total is negative
- $this->line->total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_tva) : $total_tva); // For credit note and if qty is negative, total is negative
- $this->line->total_localtax1 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_localtax1) : $total_localtax1); // For credit note and if qty is negative, total is negative
- $this->line->total_localtax2 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_localtax2) : $total_localtax2); // For credit note and if qty is negative, total is negative
+ $this->line->total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_ht) : $total_ht); // For credit note and if qty is negative, total is negative
+ $this->line->total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_ttc) : $total_ttc); // For credit note and if qty is negative, total is negative
+ $this->line->total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_tva) : $total_tva); // For credit note and if qty is negative, total is negative
+ $this->line->total_localtax1 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_localtax1) : $total_localtax1); // For credit note and if qty is negative, total is negative
+ $this->line->total_localtax2 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_localtax2) : $total_localtax2); // For credit note and if qty is negative, total is negative
$this->line->fk_product = $fk_product;
$this->line->product_type = $product_type;
@@ -3337,10 +3337,11 @@ class Facture extends CommonInvoice
// Multicurrency
$this->line->fk_multicurrency = $this->fk_multicurrency;
$this->line->multicurrency_code = $this->multicurrency_code;
- $this->line->multicurrency_subprice = $pu_ht_devise;
- $this->line->multicurrency_total_ht = $multicurrency_total_ht;
- $this->line->multicurrency_total_tva = $multicurrency_total_tva;
- $this->line->multicurrency_total_ttc = $multicurrency_total_ttc;
+ $this->line->multicurrency_subprice = ($this->type == self::TYPE_CREDIT_NOTE ? -abs($pu_ht_devise) : $pu_ht_devise); // For credit note, unit price always negative, always positive otherwise
+
+ $this->line->multicurrency_total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_ht) : $multicurrency_total_ht); // For credit note and if qty is negative, total is negative
+ $this->line->multicurrency_total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_tva) : $multicurrency_total_tva); // For credit note and if qty is negative, total is negative
+ $this->line->multicurrency_total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_ttc) : $multicurrency_total_ttc); // For credit note and if qty is negative, total is negative
if (is_array($array_options) && count($array_options) > 0) {
$this->line->array_options = $array_options;
diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php
index 2601c610e15..851dcf645a5 100644
--- a/htdocs/fourn/class/fournisseur.facture.class.php
+++ b/htdocs/fourn/class/fournisseur.facture.class.php
@@ -1957,8 +1957,8 @@ class FactureFournisseur extends CommonInvoice
$this->line->desc = $desc;
$this->line->ref_supplier = $ref_supplier;
- $this->line->qty = ($this->type == self::TYPE_CREDIT_NOTE ?abs($qty) : $qty); // For credit note, quantity is always positive and unit price negative
- $this->line->subprice = ($this->type == self::TYPE_CREDIT_NOTE ?-abs($pu_ht) : $pu_ht); // For credit note, unit price always negative, always positive otherwise
+ $this->line->qty = ($this->type == self::TYPE_CREDIT_NOTE ? abs($qty) : $qty); // For credit note, quantity is always positive and unit price negative
+ $this->line->subprice = ($this->type == self::TYPE_CREDIT_NOTE ? -abs($pu_ht) : $pu_ht); // For credit note, unit price always negative, always positive otherwise
$this->line->vat_src_code = $vat_src_code;
$this->line->tva_tx = $txtva;
@@ -1967,11 +1967,11 @@ class FactureFournisseur extends CommonInvoice
$this->line->localtax1_type = empty($localtaxes_type[0]) ? '' : $localtaxes_type[0];
$this->line->localtax2_type = empty($localtaxes_type[2]) ? '' : $localtaxes_type[2];
- $this->line->total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_ht) : $total_ht); // For credit note and if qty is negative, total is negative
- $this->line->total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_tva) : $total_tva);
- $this->line->total_localtax1 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_localtax1) : $total_localtax1);
- $this->line->total_localtax2 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_localtax2) : $total_localtax2);
- $this->line->total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ?-abs($total_ttc) : $total_ttc);
+ $this->line->total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_ht) : $total_ht); // For credit note and if qty is negative, total is negative
+ $this->line->total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_tva) : $total_tva); // For credit note and if qty is negative, total is negative
+ $this->line->total_localtax1 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_localtax1) : $total_localtax1); // For credit note and if qty is negative, total is negative
+ $this->line->total_localtax2 = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_localtax2) : $total_localtax2); // For credit note and if qty is negative, total is negative
+ $this->line->total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($total_ttc) : $total_ttc); // For credit note and if qty is negative, total is negative
$this->line->fk_product = $fk_product;
$this->line->product_type = $type;
@@ -1992,10 +1992,11 @@ class FactureFournisseur extends CommonInvoice
// Multicurrency
$this->line->fk_multicurrency = $this->fk_multicurrency;
$this->line->multicurrency_code = $this->multicurrency_code;
- $this->line->multicurrency_subprice = $pu_ht_devise;
- $this->line->multicurrency_total_ht = $multicurrency_total_ht;
- $this->line->multicurrency_total_tva = $multicurrency_total_tva;
- $this->line->multicurrency_total_ttc = $multicurrency_total_ttc;
+ $this->line->multicurrency_subprice = ($this->type == self::TYPE_CREDIT_NOTE ? -abs($pu_ht_devise) : $pu_ht_devise); // For credit note, unit price always negative, always positive otherwise
+
+ $this->line->multicurrency_total_ht = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_ht) : $multicurrency_total_ht); // For credit note and if qty is negative, total is negative
+ $this->line->multicurrency_total_tva = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_tva) : $multicurrency_total_tva); // For credit note and if qty is negative, total is negative
+ $this->line->multicurrency_total_ttc = (($this->type == self::TYPE_CREDIT_NOTE || $qty < 0) ? -abs($multicurrency_total_ttc) : $multicurrency_total_ttc); // For credit note and if qty is negative, total is negative
if (is_array($array_options) && count($array_options) > 0) {
$this->line->array_options = $array_options;
diff --git a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql
index 03110b4425e..ac032d3541d 100644
--- a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql
+++ b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql
@@ -87,6 +87,26 @@ DELETE FROM llx_user_param where param = 'MAIN_THEME' and value in ('auguria', '
-- For v14
+--Fix bad sign on multicompany column for customer invoice lines
+UPDATE llx_facturedet SET multicurrency_subprice = -multicurrency_subprice WHERE ((multicurrency_subprice < 0 and subprice > 0) OR (multicurrency_subprice > 0 and subprice < 0));
+UPDATE llx_facturedet SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facturedet SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facturedet SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicompany column for customer invoices
+UPDATE llx_facture SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facture SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicurrency column for supplier invoice lines
+UPDATE llx_facture_fourn_det SET multicurrency_subprice = -multicurrency_subprice WHERE ((multicurrency_subprice < 0 and pu_ht > 0) OR (multicurrency_subprice > 0 and pu_ht < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and tva > 0) OR (multicurrency_total_tva > 0 and tva < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicompany column for customer invoices
+UPDATE llx_facture_fourn SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture_fourn SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facture_fourn SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+
+
UPDATE llx_c_ticket_type set label = 'Issue or bug' WHERE code = 'ISSUE';
INSERT INTO llx_c_ticket_type (code, pos, label, active, use_default, description) VALUES('PROBLEM', '22', 'Problem', 0, 0, NULL);
diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
index a835ec8475d..6078942f574 100644
--- a/htdocs/langs/en_US/bills.lang
+++ b/htdocs/langs/en_US/bills.lang
@@ -236,9 +236,11 @@ Abandoned=Abandoned
RemainderToPay=Remaining unpaid
RemainderToTake=Remaining amount to take
RemainderToPayBack=Remaining amount to refund
+NegativeIfExcessRefunded=negative if excess refunded
Rest=Pending
AmountExpected=Amount claimed
ExcessReceived=Excess received
+NegativeIfExcessReceived=negative if excess received
ExcessPaid=Excess paid
EscompteOffered=Discount offered (payment before term)
EscompteOfferedShort=Discount
diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php
index 4da2d71dfd7..39c62b2685f 100644
--- a/htdocs/theme/eldy/global.inc.php
+++ b/htdocs/theme/eldy/global.inc.php
@@ -1195,7 +1195,7 @@ select.flat.selectlimit {
}
/* Styles for amount on card */
-table.paymenttable td.amountpaymentcomplete, table.paymenttable td.amountremaintopay {
+table.paymenttable td.amountpaymentcomplete, table.paymenttable td.amountremaintopay, table.paymenttable td.amountremaintopayback {
padding-top: 0px;
padding-bottom: 0px;
}
From cd4f59bb2a5777536598ea3e45afd6f54a6f7b87 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 03:01:18 +0100
Subject: [PATCH 16/31] FIX bad sign of amount stored for multicurrency columns
on credit notes
---
htdocs/install/mysql/migration/repair.sql | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql
index 59f04fdb2ca..5208a733769 100644
--- a/htdocs/install/mysql/migration/repair.sql
+++ b/htdocs/install/mysql/migration/repair.sql
@@ -501,6 +501,25 @@ UPDATE llx_accounting_bookkeeping set date_creation = tms where date_creation IS
-- UPDATE llx_facturedet_rec set label = NULL WHERE label IS NOT NULL;
+--Fix bad sign on multicompany column for customer invoice lines
+UPDATE llx_facturedet SET multicurrency_subprice = -multicurrency_subprice WHERE ((multicurrency_subprice < 0 and subprice > 0) OR (multicurrency_subprice > 0 and subprice < 0));
+UPDATE llx_facturedet SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facturedet SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facturedet SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicompany column for customer invoices
+UPDATE llx_facture SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facture SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicurrency column for supplier invoice lines
+UPDATE llx_facture_fourn_det SET multicurrency_subprice = -multicurrency_subprice WHERE ((multicurrency_subprice < 0 and pu_ht > 0) OR (multicurrency_subprice > 0 and pu_ht < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and tva > 0) OR (multicurrency_total_tva > 0 and tva < 0));
+UPDATE llx_facture_fourn_det SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+--Fix bad sign on multicompany column for customer invoices
+UPDATE llx_facture_fourn SET multicurrency_total_ht = -multicurrency_total_ht WHERE ((multicurrency_total_ht < 0 and total_ht > 0) OR (multicurrency_total_ht > 0 and total_ht < 0));
+UPDATE llx_facture_fourn SET multicurrency_total_tva = -multicurrency_total_tva WHERE ((multicurrency_total_tva < 0 and total_tva > 0) OR (multicurrency_total_tva > 0 and total_tva < 0));
+UPDATE llx_facture_fourn SET multicurrency_total_ttc = -multicurrency_total_ttc WHERE ((multicurrency_total_ttc < 0 and total_ttc > 0) OR (multicurrency_total_ttc > 0 and total_ttc < 0));
+
UPDATE llx_facturedet SET situation_percent = 100 WHERE situation_percent IS NULL AND fk_prev_id IS NULL;
From be1ca6ebab44388d5b29ff3c27344ebaaf461458 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 03:21:15 +0100
Subject: [PATCH 17/31] Clean code
---
.../core/class/commondocgenerator.class.php | 123 +++++++++---------
1 file changed, 61 insertions(+), 62 deletions(-)
diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php
index 7183605ae10..a92179e7b6a 100644
--- a/htdocs/core/class/commondocgenerator.class.php
+++ b/htdocs/core/class/commondocgenerator.class.php
@@ -399,7 +399,7 @@ abstract class CommonDocGenerator
$sumpayed = $sumdeposit = $sumcreditnote = '';
$already_payed_all = 0;
- $remain_to_pay = 0;
+
if ($object->element == 'facture') {
$invoice_source = new Facture($this->db);
if ($object->fk_facture_source > 0) {
@@ -409,7 +409,6 @@ abstract class CommonDocGenerator
$sumdeposit = $object->getSumDepositsUsed();
$sumcreditnote = $object->getSumCreditNotesUsed();
$already_payed_all = $sumpayed + $sumdeposit + $sumcreditnote;
- $remain_to_pay = $sumpayed - $sumdeposit - $sumcreditnote;
if ($object->fk_account > 0) {
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
@@ -421,76 +420,76 @@ abstract class CommonDocGenerator
$date = ($object->element == 'contrat' ? $object->date_contrat : $object->date);
$resarray = array(
- $array_key.'_id'=>$object->id,
- $array_key.'_ref'=>$object->ref,
- $array_key.'_ref_ext'=>$object->ref_ext,
- $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)),
- $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)),
- $array_key.'_source_invoice_ref'=>$invoice_source->ref,
- // Dates
- $array_key.'_hour'=>dol_print_date($date, 'hour'),
- $array_key.'_date'=>dol_print_date($date, 'day'),
- $array_key.'_date_rfc'=>dol_print_date($date, 'dayrfc'),
- $array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ?dol_print_date($object->date_lim_reglement, 'day') : ''),
- $array_key.'_date_end'=>(!empty($object->fin_validite) ?dol_print_date($object->fin_validite, 'day') : ''),
- $array_key.'_date_creation'=>dol_print_date($object->date_creation, 'day'),
- $array_key.'_date_modification'=>(!empty($object->date_modification) ?dol_print_date($object->date_modification, 'day') : ''),
- $array_key.'_date_validation'=>(!empty($object->date_validation) ?dol_print_date($object->date_validation, 'dayhour') : ''),
- $array_key.'_date_delivery_planed'=>(!empty($object->date_livraison) ?dol_print_date($object->date_livraison, 'day') : ''),
- $array_key.'_date_close'=>(!empty($object->date_cloture) ?dol_print_date($object->date_cloture, 'dayhour') : ''),
+ $array_key.'_id'=>$object->id,
+ $array_key.'_ref'=>$object->ref,
+ $array_key.'_ref_ext'=>$object->ref_ext,
+ $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)),
+ $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)),
+ $array_key.'_source_invoice_ref'=>$invoice_source->ref,
+ // Dates
+ $array_key.'_hour'=>dol_print_date($date, 'hour'),
+ $array_key.'_date'=>dol_print_date($date, 'day'),
+ $array_key.'_date_rfc'=>dol_print_date($date, 'dayrfc'),
+ $array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ?dol_print_date($object->date_lim_reglement, 'day') : ''),
+ $array_key.'_date_end'=>(!empty($object->fin_validite) ?dol_print_date($object->fin_validite, 'day') : ''),
+ $array_key.'_date_creation'=>dol_print_date($object->date_creation, 'day'),
+ $array_key.'_date_modification'=>(!empty($object->date_modification) ?dol_print_date($object->date_modification, 'day') : ''),
+ $array_key.'_date_validation'=>(!empty($object->date_validation) ?dol_print_date($object->date_validation, 'dayhour') : ''),
+ $array_key.'_date_delivery_planed'=>(!empty($object->date_livraison) ?dol_print_date($object->date_livraison, 'day') : ''),
+ $array_key.'_date_close'=>(!empty($object->date_cloture) ?dol_print_date($object->date_cloture, 'dayhour') : ''),
- $array_key.'_payment_mode_code'=>$object->mode_reglement_code,
- $array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) != 'PaymentType'.$object->mode_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) : $object->mode_reglement),
- $array_key.'_payment_term_code'=>$object->cond_reglement_code,
- $array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) != 'PaymentCondition'.$object->cond_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) : ($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement)),
+ $array_key.'_payment_mode_code'=>$object->mode_reglement_code,
+ $array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) != 'PaymentType'.$object->mode_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) : $object->mode_reglement),
+ $array_key.'_payment_term_code'=>$object->cond_reglement_code,
+ $array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) != 'PaymentCondition'.$object->cond_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) : ($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement)),
- $array_key.'_incoterms'=>(method_exists($object, 'display_incoterms') ? $object->display_incoterms() : ''),
+ $array_key.'_incoterms'=>(method_exists($object, 'display_incoterms') ? $object->display_incoterms() : ''),
- $array_key.'_bank_iban'=>$bank_account->iban,
- $array_key.'_bank_bic'=>$bank_account->bic,
- $array_key.'_bank_label'=>$bank_account->label,
- $array_key.'_bank_number'=>$bank_account->number,
- $array_key.'_bank_proprio'=>$bank_account->proprio,
+ $array_key.'_bank_iban'=>$bank_account->iban,
+ $array_key.'_bank_bic'=>$bank_account->bic,
+ $array_key.'_bank_label'=>$bank_account->label,
+ $array_key.'_bank_number'=>$bank_account->number,
+ $array_key.'_bank_proprio'=>$bank_account->proprio,
- $array_key.'_total_ht_locale'=>price($object->total_ht, 0, $outputlangs),
- $array_key.'_total_vat_locale'=>(!empty($object->total_vat) ?price($object->total_vat, 0, $outputlangs) : price($object->total_tva, 0, $outputlangs)),
- $array_key.'_total_localtax1_locale'=>price($object->total_localtax1, 0, $outputlangs),
- $array_key.'_total_localtax2_locale'=>price($object->total_localtax2, 0, $outputlangs),
- $array_key.'_total_ttc_locale'=>price($object->total_ttc, 0, $outputlangs),
+ $array_key.'_total_ht_locale'=>price($object->total_ht, 0, $outputlangs),
+ $array_key.'_total_vat_locale'=>(!empty($object->total_vat) ?price($object->total_vat, 0, $outputlangs) : price($object->total_tva, 0, $outputlangs)),
+ $array_key.'_total_localtax1_locale'=>price($object->total_localtax1, 0, $outputlangs),
+ $array_key.'_total_localtax2_locale'=>price($object->total_localtax2, 0, $outputlangs),
+ $array_key.'_total_ttc_locale'=>price($object->total_ttc, 0, $outputlangs),
- $array_key.'_total_ht'=>price2num($object->total_ht),
- $array_key.'_total_vat'=>(!empty($object->total_vat) ?price2num($object->total_vat) : price2num($object->total_tva)),
- $array_key.'_total_localtax1'=>price2num($object->total_localtax1),
- $array_key.'_total_localtax2'=>price2num($object->total_localtax2),
- $array_key.'_total_ttc'=>price2num($object->total_ttc),
+ $array_key.'_total_ht'=>price2num($object->total_ht),
+ $array_key.'_total_vat'=>(!empty($object->total_vat) ?price2num($object->total_vat) : price2num($object->total_tva)),
+ $array_key.'_total_localtax1'=>price2num($object->total_localtax1),
+ $array_key.'_total_localtax2'=>price2num($object->total_localtax2),
+ $array_key.'_total_ttc'=>price2num($object->total_ttc),
- $array_key.'_multicurrency_code' => $object->multicurrency_code,
- $array_key.'_multicurrency_tx' => price2num($object->multicurrency_tx),
- $array_key.'_multicurrency_total_ht' => price2num($object->multicurrency_total_ht),
- $array_key.'_multicurrency_total_tva' => price2num($object->multicurrency_total_tva),
- $array_key.'_multicurrency_total_ttc' => price2num($object->multicurrency_total_ttc),
- $array_key.'_multicurrency_total_ht_locale' => price($object->multicurrency_total_ht, 0, $outputlangs),
- $array_key.'_multicurrency_total_tva_locale' => price($object->multicurrency_total_tva, 0, $outputlangs),
- $array_key.'_multicurrency_total_ttc_locale' => price($object->multicurrency_total_ttc, 0, $outputlangs),
+ $array_key.'_multicurrency_code' => $object->multicurrency_code,
+ $array_key.'_multicurrency_tx' => price2num($object->multicurrency_tx),
+ $array_key.'_multicurrency_total_ht' => price2num($object->multicurrency_total_ht),
+ $array_key.'_multicurrency_total_tva' => price2num($object->multicurrency_total_tva),
+ $array_key.'_multicurrency_total_ttc' => price2num($object->multicurrency_total_ttc),
+ $array_key.'_multicurrency_total_ht_locale' => price($object->multicurrency_total_ht, 0, $outputlangs),
+ $array_key.'_multicurrency_total_tva_locale' => price($object->multicurrency_total_tva, 0, $outputlangs),
+ $array_key.'_multicurrency_total_ttc_locale' => price($object->multicurrency_total_ttc, 0, $outputlangs),
- $array_key.'_note_private'=>$object->note,
- $array_key.'_note_public'=>$object->note_public,
- $array_key.'_note'=>$object->note_public, // For backward compatibility
+ $array_key.'_note_private'=>$object->note,
+ $array_key.'_note_public'=>$object->note_public,
+ $array_key.'_note'=>$object->note_public, // For backward compatibility
- // Payments
- $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs),
- $array_key.'_already_payed'=>price2num($sumpayed),
- $array_key.'_already_deposit_locale'=>price($sumdeposit, 0, $outputlangs),
- $array_key.'_already_deposit'=>price2num($sumdeposit),
- $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs),
- $array_key.'_already_creditnote'=>price2num($sumcreditnote),
+ // Payments
+ $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs),
+ $array_key.'_already_payed'=>price2num($sumpayed),
+ $array_key.'_already_deposit_locale'=>price($sumdeposit, 0, $outputlangs),
+ $array_key.'_already_deposit'=>price2num($sumdeposit),
+ $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs),
+ $array_key.'_already_creditnote'=>price2num($sumcreditnote),
- $array_key.'_already_payed_all_locale'=>price(price2num($already_payed_all, 'MT'), 0, $outputlangs),
- $array_key.'_already_payed_all'=> price2num($already_payed_all, 'MT'),
+ $array_key.'_already_payed_all_locale'=>price(price2num($already_payed_all, 'MT'), 0, $outputlangs),
+ $array_key.'_already_payed_all'=> price2num($already_payed_all, 'MT'),
- // Remain to pay with all know information (except open direct debit requests)
- $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $remain_to_pay, 'MT'), 0, $outputlangs),
- $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $remain_to_pay, 'MT')
+ // Remain to pay with all known information (except open direct debit requests)
+ $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $already_payed_all, 'MT'), 0, $outputlangs),
+ $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $already_payed_all, 'MT')
);
if (method_exists($object, 'getTotalDiscount') && in_array(get_class($object), array('Proposal', 'Commande', 'Facture', 'SupplierProposal', 'CommandeFournisseur', 'FactureFournisseur'))) {
From a94b2b4f7e9ffe4ae0ecf99c72e27ffefd53d7c4 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 03:21:15 +0100
Subject: [PATCH 18/31] Clean code
---
.../core/class/commondocgenerator.class.php | 123 +++++++++---------
1 file changed, 61 insertions(+), 62 deletions(-)
diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php
index 641c2f80902..d65ecc1325d 100644
--- a/htdocs/core/class/commondocgenerator.class.php
+++ b/htdocs/core/class/commondocgenerator.class.php
@@ -398,7 +398,7 @@ abstract class CommonDocGenerator
$sumpayed = $sumdeposit = $sumcreditnote = '';
$already_payed_all = 0;
- $remain_to_pay = 0;
+
if ($object->element == 'facture') {
$invoice_source = new Facture($this->db);
if ($object->fk_facture_source > 0) {
@@ -408,7 +408,6 @@ abstract class CommonDocGenerator
$sumdeposit = $object->getSumDepositsUsed();
$sumcreditnote = $object->getSumCreditNotesUsed();
$already_payed_all = $sumpayed + $sumdeposit + $sumcreditnote;
- $remain_to_pay = $sumpayed - $sumdeposit - $sumcreditnote;
if ($object->fk_account > 0) {
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
@@ -420,76 +419,76 @@ abstract class CommonDocGenerator
$date = ($object->element == 'contrat' ? $object->date_contrat : $object->date);
$resarray = array(
- $array_key.'_id'=>$object->id,
- $array_key.'_ref'=>$object->ref,
- $array_key.'_ref_ext'=>$object->ref_ext,
- $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)),
- $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)),
- $array_key.'_source_invoice_ref'=>$invoice_source->ref,
- // Dates
- $array_key.'_hour'=>dol_print_date($date, 'hour'),
- $array_key.'_date'=>dol_print_date($date, 'day'),
- $array_key.'_date_rfc'=>dol_print_date($date, 'dayrfc'),
- $array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ?dol_print_date($object->date_lim_reglement, 'day') : ''),
- $array_key.'_date_end'=>(!empty($object->fin_validite) ?dol_print_date($object->fin_validite, 'day') : ''),
- $array_key.'_date_creation'=>dol_print_date($object->date_creation, 'day'),
- $array_key.'_date_modification'=>(!empty($object->date_modification) ?dol_print_date($object->date_modification, 'day') : ''),
- $array_key.'_date_validation'=>(!empty($object->date_validation) ?dol_print_date($object->date_validation, 'dayhour') : ''),
- $array_key.'_date_delivery_planed'=>(!empty($object->date_livraison) ?dol_print_date($object->date_livraison, 'day') : ''),
- $array_key.'_date_close'=>(!empty($object->date_cloture) ?dol_print_date($object->date_cloture, 'dayhour') : ''),
+ $array_key.'_id'=>$object->id,
+ $array_key.'_ref'=>$object->ref,
+ $array_key.'_ref_ext'=>$object->ref_ext,
+ $array_key.'_ref_customer'=>(!empty($object->ref_client) ? $object->ref_client : (empty($object->ref_customer) ? '' : $object->ref_customer)),
+ $array_key.'_ref_supplier'=>(!empty($object->ref_fournisseur) ? $object->ref_fournisseur : (empty($object->ref_supplier) ? '' : $object->ref_supplier)),
+ $array_key.'_source_invoice_ref'=>$invoice_source->ref,
+ // Dates
+ $array_key.'_hour'=>dol_print_date($date, 'hour'),
+ $array_key.'_date'=>dol_print_date($date, 'day'),
+ $array_key.'_date_rfc'=>dol_print_date($date, 'dayrfc'),
+ $array_key.'_date_limit'=>(!empty($object->date_lim_reglement) ?dol_print_date($object->date_lim_reglement, 'day') : ''),
+ $array_key.'_date_end'=>(!empty($object->fin_validite) ?dol_print_date($object->fin_validite, 'day') : ''),
+ $array_key.'_date_creation'=>dol_print_date($object->date_creation, 'day'),
+ $array_key.'_date_modification'=>(!empty($object->date_modification) ?dol_print_date($object->date_modification, 'day') : ''),
+ $array_key.'_date_validation'=>(!empty($object->date_validation) ?dol_print_date($object->date_validation, 'dayhour') : ''),
+ $array_key.'_date_delivery_planed'=>(!empty($object->date_livraison) ?dol_print_date($object->date_livraison, 'day') : ''),
+ $array_key.'_date_close'=>(!empty($object->date_cloture) ?dol_print_date($object->date_cloture, 'dayhour') : ''),
- $array_key.'_payment_mode_code'=>$object->mode_reglement_code,
- $array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) != 'PaymentType'.$object->mode_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) : $object->mode_reglement),
- $array_key.'_payment_term_code'=>$object->cond_reglement_code,
- $array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) != 'PaymentCondition'.$object->cond_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) : ($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement)),
+ $array_key.'_payment_mode_code'=>$object->mode_reglement_code,
+ $array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) != 'PaymentType'.$object->mode_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code) : $object->mode_reglement),
+ $array_key.'_payment_term_code'=>$object->cond_reglement_code,
+ $array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) != 'PaymentCondition'.$object->cond_reglement_code ? $outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code) : ($object->cond_reglement_doc ? $object->cond_reglement_doc : $object->cond_reglement)),
- $array_key.'_incoterms'=>(method_exists($object, 'display_incoterms') ? $object->display_incoterms() : ''),
+ $array_key.'_incoterms'=>(method_exists($object, 'display_incoterms') ? $object->display_incoterms() : ''),
- $array_key.'_bank_iban'=>$bank_account->iban,
- $array_key.'_bank_bic'=>$bank_account->bic,
- $array_key.'_bank_label'=>$bank_account->label,
- $array_key.'_bank_number'=>$bank_account->number,
- $array_key.'_bank_proprio'=>$bank_account->proprio,
+ $array_key.'_bank_iban'=>$bank_account->iban,
+ $array_key.'_bank_bic'=>$bank_account->bic,
+ $array_key.'_bank_label'=>$bank_account->label,
+ $array_key.'_bank_number'=>$bank_account->number,
+ $array_key.'_bank_proprio'=>$bank_account->proprio,
- $array_key.'_total_ht_locale'=>price($object->total_ht, 0, $outputlangs),
- $array_key.'_total_vat_locale'=>(!empty($object->total_vat) ?price($object->total_vat, 0, $outputlangs) : price($object->total_tva, 0, $outputlangs)),
- $array_key.'_total_localtax1_locale'=>price($object->total_localtax1, 0, $outputlangs),
- $array_key.'_total_localtax2_locale'=>price($object->total_localtax2, 0, $outputlangs),
- $array_key.'_total_ttc_locale'=>price($object->total_ttc, 0, $outputlangs),
+ $array_key.'_total_ht_locale'=>price($object->total_ht, 0, $outputlangs),
+ $array_key.'_total_vat_locale'=>(!empty($object->total_vat) ?price($object->total_vat, 0, $outputlangs) : price($object->total_tva, 0, $outputlangs)),
+ $array_key.'_total_localtax1_locale'=>price($object->total_localtax1, 0, $outputlangs),
+ $array_key.'_total_localtax2_locale'=>price($object->total_localtax2, 0, $outputlangs),
+ $array_key.'_total_ttc_locale'=>price($object->total_ttc, 0, $outputlangs),
- $array_key.'_total_ht'=>price2num($object->total_ht),
- $array_key.'_total_vat'=>(!empty($object->total_vat) ?price2num($object->total_vat) : price2num($object->total_tva)),
- $array_key.'_total_localtax1'=>price2num($object->total_localtax1),
- $array_key.'_total_localtax2'=>price2num($object->total_localtax2),
- $array_key.'_total_ttc'=>price2num($object->total_ttc),
+ $array_key.'_total_ht'=>price2num($object->total_ht),
+ $array_key.'_total_vat'=>(!empty($object->total_vat) ?price2num($object->total_vat) : price2num($object->total_tva)),
+ $array_key.'_total_localtax1'=>price2num($object->total_localtax1),
+ $array_key.'_total_localtax2'=>price2num($object->total_localtax2),
+ $array_key.'_total_ttc'=>price2num($object->total_ttc),
- $array_key.'_multicurrency_code' => $object->multicurrency_code,
- $array_key.'_multicurrency_tx' => price2num($object->multicurrency_tx),
- $array_key.'_multicurrency_total_ht' => price2num($object->multicurrency_total_ht),
- $array_key.'_multicurrency_total_tva' => price2num($object->multicurrency_total_tva),
- $array_key.'_multicurrency_total_ttc' => price2num($object->multicurrency_total_ttc),
- $array_key.'_multicurrency_total_ht_locale' => price($object->multicurrency_total_ht, 0, $outputlangs),
- $array_key.'_multicurrency_total_tva_locale' => price($object->multicurrency_total_tva, 0, $outputlangs),
- $array_key.'_multicurrency_total_ttc_locale' => price($object->multicurrency_total_ttc, 0, $outputlangs),
+ $array_key.'_multicurrency_code' => $object->multicurrency_code,
+ $array_key.'_multicurrency_tx' => price2num($object->multicurrency_tx),
+ $array_key.'_multicurrency_total_ht' => price2num($object->multicurrency_total_ht),
+ $array_key.'_multicurrency_total_tva' => price2num($object->multicurrency_total_tva),
+ $array_key.'_multicurrency_total_ttc' => price2num($object->multicurrency_total_ttc),
+ $array_key.'_multicurrency_total_ht_locale' => price($object->multicurrency_total_ht, 0, $outputlangs),
+ $array_key.'_multicurrency_total_tva_locale' => price($object->multicurrency_total_tva, 0, $outputlangs),
+ $array_key.'_multicurrency_total_ttc_locale' => price($object->multicurrency_total_ttc, 0, $outputlangs),
- $array_key.'_note_private'=>$object->note,
- $array_key.'_note_public'=>$object->note_public,
- $array_key.'_note'=>$object->note_public, // For backward compatibility
+ $array_key.'_note_private'=>$object->note,
+ $array_key.'_note_public'=>$object->note_public,
+ $array_key.'_note'=>$object->note_public, // For backward compatibility
- // Payments
- $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs),
- $array_key.'_already_payed'=>price2num($sumpayed),
- $array_key.'_already_deposit_locale'=>price($sumdeposit, 0, $outputlangs),
- $array_key.'_already_deposit'=>price2num($sumdeposit),
- $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs),
- $array_key.'_already_creditnote'=>price2num($sumcreditnote),
+ // Payments
+ $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs),
+ $array_key.'_already_payed'=>price2num($sumpayed),
+ $array_key.'_already_deposit_locale'=>price($sumdeposit, 0, $outputlangs),
+ $array_key.'_already_deposit'=>price2num($sumdeposit),
+ $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs),
+ $array_key.'_already_creditnote'=>price2num($sumcreditnote),
- $array_key.'_already_payed_all_locale'=>price(price2num($already_payed_all, 'MT'), 0, $outputlangs),
- $array_key.'_already_payed_all'=> price2num($already_payed_all, 'MT'),
+ $array_key.'_already_payed_all_locale'=>price(price2num($already_payed_all, 'MT'), 0, $outputlangs),
+ $array_key.'_already_payed_all'=> price2num($already_payed_all, 'MT'),
- // Remain to pay with all know information (except open direct debit requests)
- $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $remain_to_pay, 'MT'), 0, $outputlangs),
- $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $remain_to_pay, 'MT')
+ // Remain to pay with all known information (except open direct debit requests)
+ $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $already_payed_all, 'MT'), 0, $outputlangs),
+ $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $already_payed_all, 'MT')
);
if (method_exists($object, 'getTotalDiscount') && in_array(get_class($object), array('Proposal', 'Commande', 'Facture', 'SupplierProposal', 'CommandeFournisseur', 'FactureFournisseur'))) {
From d026c721cf8f59933f8b66d3230af3f7896c08d7 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 03:27:27 +0100
Subject: [PATCH 19/31] Update security2.lib.php
---
htdocs/core/lib/security2.lib.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php
index d6546e64cfd..2edb2e629de 100644
--- a/htdocs/core/lib/security2.lib.php
+++ b/htdocs/core/lib/security2.lib.php
@@ -215,17 +215,17 @@ if (!function_exists('dol_loginfunction')) {
}
// Execute hook getLoginPageOptions (for table)
- $parameters = array('entity' => GETPOST('entity', 'int'));
+ $parameters = array('entity' => GETPOST('entity', 'int'), 'switchentity' => GETPOST('switchentity', 'int'));
$reshook = $hookmanager->executeHooks('getLoginPageOptions', $parameters); // Note that $action and $object may have been modified by some hooks.
$morelogincontent = $hookmanager->resPrint;
// Execute hook getLoginPageExtraOptions (eg for js)
- $parameters = array('entity' => GETPOST('entity', 'int'));
+ $parameters = array('entity' => GETPOST('entity', 'int'), 'switchentity' => GETPOST('switchentity', 'int'));
$reshook = $hookmanager->executeHooks('getLoginPageExtraOptions', $parameters); // Note that $action and $object may have been modified by some hooks.
$moreloginextracontent = $hookmanager->resPrint;
//Redirect after connection
- $parameters = array('entity' => GETPOST('entity', 'int'));
+ $parameters = array('entity' => GETPOST('entity', 'int'), 'switchentity' => GETPOST('switchentity', 'int'));
$reshook = $hookmanager->executeHooks('redirectAfterConnection', $parameters); // Note that $action and $object may have been modified by some hooks.
$php_self = $hookmanager->resPrint;
From e8e0768eec34e01f6e10f11bfb8a8144cec0a199 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 03:47:16 +0100
Subject: [PATCH 20/31] Fix phpcs
---
htdocs/core/lib/functions.lib.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index e18d0c081c2..81a5413182e 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -7227,7 +7227,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
if ($object->id > 0) {
$substitutionarray['__ONLINE_PAYMENT_TEXT_AND_URL__'] = ($paymenturl ?str_replace('\n', "\n", $outputlangs->trans("PredefinedMailContentLink", $paymenturl)) : '');
$substitutionarray['__ONLINE_PAYMENT_URL__'] = $paymenturl;
-
+
if (is_object($object) && $object->element == 'propal') {
$substitutionarray['__ONLINE_SIGN_URL__'] = getOnlineSignatureUrl(0, 'proposal', $object->ref);
}
From 3ff880aa74c12f389135cdad31b0726bf0084b84 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 11:40:40 +0100
Subject: [PATCH 21/31] Avoid virus detection
---
test/phpunit/testvirus.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/phpunit/testvirus.txt b/test/phpunit/testvirus.txt
index a2463df6d64..4a130462173 100644
--- a/test/phpunit/testvirus.txt
+++ b/test/phpunit/testvirus.txt
@@ -1 +1,2 @@
-X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
\ No newline at end of file
+# Remove this line and replace the ABC with X50 to get a file that is detected by antiviruses.
+ABC!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
\ No newline at end of file
From 39b8916215623e9d19d477d8ebe10e554510408e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 14:01:15 +0100
Subject: [PATCH 22/31] css
---
htdocs/index.php | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/htdocs/index.php b/htdocs/index.php
index b9ac604ca95..be439300291 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -561,9 +561,11 @@ if (empty($conf->global->MAIN_DISABLE_GLOBAL_WORKBOARD)) {
$nbtodClass = '';
if ($board->nbtodo > 0) {
$nbtodClass = 'badge badge-info';
+ } else {
+ $nbtodClass = 'opacitymedium';
}
- $openedDashBoard .= ' '.$infoName.''.$board->nbtodo.'';
+ $openedDashBoard .= ''.$infoName.''.$board->nbtodo.'';
if ($textLate) {
if ($board->url_late) {
$openedDashBoard .= '';
From c858c7bf53ff4f7be7dbef8b5a7f305ce090515e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 14:05:07 +0100
Subject: [PATCH 23/31] Trans shorter
---
htdocs/langs/en_US/ticket.lang | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang
index 0134b96b935..d38358eb74d 100644
--- a/htdocs/langs/en_US/ticket.lang
+++ b/htdocs/langs/en_US/ticket.lang
@@ -318,7 +318,7 @@ BoxTicketLastXDays=Number of new tickets by days the last %s days
BoxTicketLastXDayswidget = Number of new tickets by days the last X days
BoxNoTicketLastXDays=No new tickets the last %s days
BoxNumberOfTicketByDay=Number of new tickets by day
-BoxNewTicketVSClose=Number of today's new tickets versus today's closed tickets
+BoxNewTicketVSClose=Number of tickets versus closed tickets (today)
TicketCreatedToday=Ticket created today
TicketClosedToday=Ticket closed today
KMFoundForTicketGroup=We found topics and FAQs that may answers your question, thanks to check them before submitting the ticket
From c464a1cfd22385b70e94c2b8818034ac1f11cc47 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 14:37:21 +0100
Subject: [PATCH 24/31] Fix colors
---
htdocs/core/class/dolgraph.class.php | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php
index e52ab780195..59213e9066e 100644
--- a/htdocs/core/class/dolgraph.class.php
+++ b/htdocs/core/class/dolgraph.class.php
@@ -107,10 +107,12 @@ class DolGraph
global $conf;
global $theme_bordercolor, $theme_datacolor, $theme_bgcolor;
+ // Some default values for the case it is not defined into the theme later.
$this->bordercolor = array(235, 235, 224);
$this->datacolor = array(array(120, 130, 150), array(160, 160, 180), array(190, 190, 220));
$this->bgcolor = array(235, 235, 224);
+ // Load color of the theme
$color_file = DOL_DOCUMENT_ROOT . '/theme/' . $conf->theme . '/theme_vars.inc.php';
if (is_readable($color_file)) {
include $color_file;
@@ -1415,13 +1417,13 @@ class DolGraph
$color = 'rgb(' . $newcolor[0] . ', ' . $newcolor[1] . ', ' . $newcolor[2] . ', 0.9)';
$bordercolor = 'rgb(' . $newcolor[0] . ', ' . $newcolor[1] . ', ' . $newcolor[2] . ')';
} else { // We do not use a 'group by'
- if (!empty($this->bordercolor[$i]) && is_array($this->datacolor[$i])) {
+ if (!empty($this->datacolor[$i]) && is_array($this->datacolor[$i])) {
$color = 'rgb(' . $this->datacolor[$i][0] . ', ' . $this->datacolor[$i][1] . ', ' . $this->datacolor[$i][2] . ', 0.9)';
} else {
$color = $this->datacolor[$i];
}
if (!empty($this->bordercolor[$i]) && is_array($this->bordercolor[$i])) {
- $color = 'rgb(' . $this->bordercolor[$i][0] . ', ' . $this->bordercolor[$i][1] . ', ' . $this->bordercolor[$i][2] . ', 0.9)';
+ $bordercolor = 'rgb(' . $this->bordercolor[$i][0] . ', ' . $this->bordercolor[$i][1] . ', ' . $this->bordercolor[$i][2] . ', 0.9)';
} else {
if ($type != 'horizontalBar') {
$bordercolor = $color;
From f4b2a6ec9235545f84b5f58ade7fbc7eaa769de6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 14:51:14 +0100
Subject: [PATCH 25/31] Fix negative colors for bars
---
htdocs/core/class/dolgraph.class.php | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php
index 59213e9066e..a93ed92e8f5 100644
--- a/htdocs/core/class/dolgraph.class.php
+++ b/htdocs/core/class/dolgraph.class.php
@@ -1431,6 +1431,14 @@ class DolGraph
$bordercolor = $this->bordercolor[$i];
}
}
+
+ // For negative colors, we invert border and background
+ $tmp = str_replace('#', '', $color);
+ if (strpos($tmp, '-') !== false) {
+ $foundnegativecolor++;
+ $bordercolor = str_replace('-', '', $color);
+ $color = '#FFFFFF'; // If $val is '-123'
+ }
}
if ($i > 0) {
$this->stringtoshow .= ', ';
From 86365271254fa9bcc8933bc944bbc3155cf17a9b Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 17:53:18 +0100
Subject: [PATCH 26/31] Clean code
---
.../boxes/box_graph_invoices_permonth.php | 10 ++-----
.../box_graph_invoices_supplier_permonth.php | 28 +++++--------------
2 files changed, 9 insertions(+), 29 deletions(-)
diff --git a/htdocs/core/boxes/box_graph_invoices_permonth.php b/htdocs/core/boxes/box_graph_invoices_permonth.php
index 18ffe022610..65498ab6362 100644
--- a/htdocs/core/boxes/box_graph_invoices_permonth.php
+++ b/htdocs/core/boxes/box_graph_invoices_permonth.php
@@ -146,9 +146,6 @@ class box_graph_invoices_permonth extends ModeleBoxes
$filenamenb = $dir."/".$prefix."invoicesnbinyear-".$endyear.".png";
// default value for customer mode
$fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstats&file=invoicesnbinyear-'.$endyear.'.png';
- if ($mode == 'supplier') {
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessuppliernbinyear-'.$endyear.'.png';
- }
$px1 = new DolGraph();
$mesg = $px1->isGraphKo();
@@ -189,10 +186,7 @@ class box_graph_invoices_permonth extends ModeleBoxes
$filenamenb = $dir."/".$prefix."invoicesamountinyear-".$endyear.".png";
// default value for customer mode
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstats&file=invoicesamountinyear-'.$endyear.'.png';
- if ($mode == 'supplier') {
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessupplieramountinyear-'.$endyear.'.png';
- }
+ $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstats&file=invoicesamountinyear-'.$endyear.'.png';
$px2 = new DolGraph();
$mesg = $px2->isGraphKo();
@@ -251,7 +245,7 @@ class box_graph_invoices_permonth extends ModeleBoxes
$stringtoshow .= ' '.$langs->trans("AmountOfBillsByMonthHT");
$stringtoshow .= '
';
$stringtoshow .= $langs->trans("Year").' ';
- $stringtoshow .= '';
+ $stringtoshow .= '';
$stringtoshow .= '';
$stringtoshow .= '';
if ($shownb && $showtot) {
diff --git a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
index 3d8cb88938d..4ba27c74b1a 100644
--- a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
+++ b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
@@ -125,9 +125,6 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
$showtot = 1;
}
$nowarray = dol_getdate(dol_now(), true);
- if (empty($year)) {
- $year = $nowarray['year'];
- }
if (empty($endyear)) {
$endyear = $nowarray['year'];
}
@@ -143,12 +140,9 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
if ($shownb) {
$data1 = $stats->getNbByMonthWithPrevYear($endyear, $startyear, (GETPOST('action', 'aZ09') == $refreshaction ?-1 : (3600 * 24)), ($WIDTH < 300 ? 2 : 0), $startmonth);
- $filenamenb = $dir."/".$prefix."invoicessuppliernbinyear-".$year.".png";
+ $filenamenb = $dir."/".$prefix."invoicessuppliernbinyear-".$endyear.".png";
// default value for customer mode
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstats&file=invoicesnbinyear-'.$year.'.png';
- if ($mode == 'supplier') {
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessuppliernbinyear-'.$year.'.png';
- }
+ $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessuppliernbinyear-'.$endyear.'.png';
$px1 = new DolGraph();
$mesg = $px1->isGraphKo();
@@ -186,12 +180,9 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
if ($showtot) {
$data2 = $stats->getAmountByMonthWithPrevYear($endyear, $startyear, (GETPOST('action', 'aZ09') == $refreshaction ?-1 : (3600 * 24)), ($WIDTH < 300 ? 2 : 0), $startmonth);
- $filenamenb = $dir."/".$prefix."invoicessupplieramountinyear-".$year.".png";
+ $filenamenb = $dir."/".$prefix."invoicessupplieramountinyear-".$endyear.".png";
// default value for customer mode
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstats&file=invoicesamountinyear-'.$year.'.png';
- if ($mode == 'supplier') {
- $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessupplieramountinyear-'.$year.'.png';
- }
+ $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=billstatssupplier&file=invoicessupplieramountinyear-'.$endyear.'.png';
$px2 = new DolGraph();
$mesg = $px2->isGraphKo();
@@ -273,17 +264,12 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
}
$this->info_box_contents[0][0] = array('tr'=>'class="oddeven nohover"', 'td' => 'class="nohover center"', 'textnoformat'=>$stringtoshow);
} else {
- $this->info_box_contents[0][0] = array(
- 'tr'=>'class="oddeven nohover"',
- 'td' => 'class="nohover left"',
- 'maxlength'=>500,
- 'text' => $mesg,
- );
+ $this->info_box_contents[0][0] = array('tr'=>'class="oddeven nohover"', 'td' => 'class="nohover left"', 'maxlength'=>500, 'text' => $mesg);
}
} else {
$this->info_box_contents[0][0] = array(
- 'td' => 'class="nohover opacitymedium left"',
- 'text' => $langs->trans("ReadPermissionNotAllowed")
+ 'td' => 'class="nohover left"',
+ 'text' => ''.$langs->trans("ReadPermissionNotAllowed").''
);
}
}
From bd9d3bb4aba43dbdd0edb7e092c68562880d6bf9 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 18:10:35 +0100
Subject: [PATCH 27/31] Clean code
---
htdocs/includes/odtphp/odf.php | 34 +++++++---------------------------
1 file changed, 7 insertions(+), 27 deletions(-)
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index a7416258a57..80183843b36 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -79,7 +79,7 @@ class Odf
// Create tmp direcoty (will be deleted in destructor)
if (!file_exists($this->tmpdir)) {
- $result=mkdir($this->tmpdir);
+ $result = mkdir($this->tmpdir);
}
// Load zip proxy
@@ -329,6 +329,7 @@ class Odf
$tempHtml = $html;
while (strlen($tempHtml) > 0) {
+ $matches = array();
// Check if the string includes a html tag
if (preg_match_all('/<([A-Za-z]+)(?:\s([A-Za-z]+(?:\-[A-Za-z]+)?(?:=(?:".*?")|(?:[0-9]+))))*(?:(?:\s\/>)|(?:>(.*)<\/\1>))/', $tempHtml, $matches)) {
$tagOffset = strpos($tempHtml, $matches[0][0]);
@@ -342,6 +343,7 @@ class Odf
$tempHtml = substr($tempHtml, $tagOffset);
}
// Extract the attribute data from the html tag
+ $explodedAttributes = array();
preg_match_all('/([0-9A-Za-z]+(?:="[0-9A-Za-z\:\-\s\,\;\#]*")?)+/', $matches[2][0], $explodedAttributes);
$explodedAttributes = array_filter($explodedAttributes[0]);
$attributes = array();
@@ -447,32 +449,6 @@ class Odf
return $value;
}
- /**
- * Evaluating php codes inside the ODT and output the buffer (print, echo) inplace of the code
- *
- * @return int 0
- */
- public function phpEval()
- {
- preg_match_all('/[\{\<]\?(php)?\s+(?P.+)\?[\}\>]/iU', $this->contentXml, $matches); // detecting all {?php code ?} or
- $nbfound=count($matches['content']);
- for ($i=0; $i < $nbfound; $i++) {
- try {
- $ob_output = ''; // flush the output for each code. This var will be filled in by the eval($code) and output buffering : any print or echo or output will be redirected into this variable
- $code = $matches['content'][$i];
- ob_start();
- eval($code);
- $ob_output = ob_get_contents(); // send the content of the buffer into $ob_output
- $this->contentXml = str_replace($matches[0][$i], $ob_output, $this->contentXml);
- ob_end_clean();
- } catch (Exception $e) {
- ob_end_clean();
- $this->contentXml = str_replace($matches[0][$i], 'ERROR: there was a problem while evaluating this portion of code, please fix it: '.$e, $this->contentXml);
- }
- }
- return 0;
- }
-
/**
* Assign a template variable as a picture
*
@@ -515,10 +491,12 @@ IMG;
// Search all possible rows in the document
$reg1 = "#]*>(.*)#smU";
+ $matches = array();
preg_match_all($reg1, $this->contentXml, $matches);
for ($i = 0, $size = count($matches[0]); $i < $size; $i++) {
// Check if the current row contains a segment row.*
$reg2 = '#\[!--\sBEGIN\s(row.[\S]*)\s--\](.*)\[!--\sEND\s\\1\s--\]#sm';
+ $matches2 = array();
if (preg_match($reg2, $matches[0][$i], $matches2)) {
$balise = str_replace('row.', '', $matches2[1]);
// Move segment tags around the row
@@ -665,6 +643,7 @@ IMG;
}
// $reg = "#\[!--\sBEGIN\s$segment\s--\]<\/text:p>(.*)\[!--\sEND\s$segment\s--\]#sm";
$reg = "#\[!--\sBEGIN\s$segment\s--\](.*)\[!--\sEND\s$segment\s--\]#sm";
+ $m = array();
if (preg_match($reg, html_entity_decode($this->contentXml), $m) == 0) {
throw new OdfException("'".$segment."' segment not found in the document. The tag [!-- BEGIN xxx --] or [!-- END xxx --] is not present into content file.");
}
@@ -1005,6 +984,7 @@ IMG;
public function getvalue($valuename)
{
$searchreg="/\\[".$valuename."\\](.*)\\[\\/".$valuename."\\]/";
+ $matches = array();
preg_match($searchreg, $this->contentXml, $matches);
$this->contentXml = preg_replace($searchreg, "", $this->contentXml);
return $matches[1];
From 6e01f1702e2642a52787ce23b59a2550d1c444e4 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 18:45:00 +0100
Subject: [PATCH 28/31] Fix css
---
htdocs/projet/stats/index.php | 6 +++++-
htdocs/projet/tasks/stats/index.php | 9 +++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/htdocs/projet/stats/index.php b/htdocs/projet/stats/index.php
index c5acc20bfe6..878b80165d5 100644
--- a/htdocs/projet/stats/index.php
+++ b/htdocs/projet/stats/index.php
@@ -302,7 +302,9 @@ print $form->selectarray('year', $arrayyears, $year, 0);
print '';
print ' |
';
print '';
+
print '';
+
print '
';
print '';
@@ -369,10 +371,12 @@ $stringtoshow .= '';
print $stringtoshow;
+print '
';
-print '';
print '';
+print dol_get_fiche_end();
+
// End of page
llxFooter();
$db->close();
diff --git a/htdocs/projet/tasks/stats/index.php b/htdocs/projet/tasks/stats/index.php
index 60cbdf37072..5fd6b47407c 100644
--- a/htdocs/projet/tasks/stats/index.php
+++ b/htdocs/projet/tasks/stats/index.php
@@ -172,7 +172,9 @@ print $form->selectarray('year', $arrayyears, $year, 0);
print '';
print ' |
';
print '';
+
print '';
+
print '
';
@@ -190,13 +192,13 @@ foreach ($data_all_year as $val) {
$oldyear--;
print '';
- print '| 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$oldyear.' | ';
+ print ' 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$oldyear.' | ';
print '0 | ';
print '
';
}
print '';
- print '| 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$year.' | ';
+ print ' 0 ? '&socid='.$socid : '').($userid > 0 ? '&userid='.$userid : '').'">'.$year.' | ';
print ''.$val['nb'].' | ';
print '
';
$oldyear = $year;
@@ -220,8 +222,11 @@ print $stringtoshow;
print '';
+
print '';
+print dol_get_fiche_end();
+
// End of page
llxFooter();
$db->close();
From 69ea6c5b7a82284c9d06f527cd641f2b61980d1b Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 18:49:30 +0100
Subject: [PATCH 29/31] css
---
htdocs/theme/md/style.css.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 06598624da2..42de9b1c6f1 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -1987,7 +1987,7 @@ div.fichehalfleft {
print "float: ".$left.";\n";
} ?>
browser->layout != 'phone') {
- print "width: calc(50% - 10px);\n";
+ print "width: calc(50% - 14px);\n";
} ?>
}
div.fichehalfright {
@@ -1995,7 +1995,7 @@ div.fichehalfright {
print "float: ".$right.";\n";
} ?>
browser->layout != 'phone') {
- print "width: calc(50% - 10px);\n";
+ print "width: calc(50% - 14px);\n";
} ?>
}
div.fichehalfright {
From 6e1213128faeb28fb21e3f159d8b8eef9cd52275 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 18:53:19 +0100
Subject: [PATCH 30/31] Look and feel v15
---
htdocs/contrat/list.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index 0cfa0b2bf16..4c8c9c7aae5 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -810,8 +810,9 @@ while ($i < min($num, $limit)) {
}
print '';
}
+ // Email
if (!empty($arrayfields['s.email']['checked'])) {
- print ''.dol_print_email($obj->email).' | ';
+ print ''.dol_print_email($obj->email, 0, $obj->socid, 0, 0, 1, 1).' | ';
}
// Town
if (!empty($arrayfields['s.town']['checked'])) {
From 13e8e3d33c8a31e989f30615e5919de0487374c0 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur
Date: Mon, 8 Nov 2021 19:15:02 +0100
Subject: [PATCH 31/31] Look and feel v15
---
htdocs/core/class/html.formother.class.php | 1 -
htdocs/theme/md/style.css.php | 9 +++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php
index 99ee1b6af9b..ebe28237cc4 100644
--- a/htdocs/core/class/html.formother.class.php
+++ b/htdocs/core/class/html.formother.class.php
@@ -542,7 +542,6 @@ class FormOther
$resql_usr = $this->db->query($sql_usr);
if ($resql_usr) {
$userstatic = new User($this->db);
- $showstatus = 1;
while ($obj_usr = $this->db->fetch_object($resql_usr)) {
$userstatic->id = $obj_usr->rowid;
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 42de9b1c6f1..b750ac21b1e 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -1521,11 +1521,11 @@ table[summary="list_of_modules"] .fa-cog {
}
/* Set a width. Note: add also a max-width, for example maxwidth500, that will be used in priority */
-.widthcentpercentminusx {
+select.widthcentpercentminusx, span.widthcentpercentminusx:not(.select2-selection), input.widthcentpercentminusx {
width: calc(100% - 50px) !important;
display: inline-block;
}
-.widthcentpercentminusxx {
+select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-selection), input.widthcentpercentminusxx {
width: calc(100% - 70px) !important;
display: inline-block;
}
@@ -3829,11 +3829,12 @@ div.liste_titre_bydiv {
border-top-color: var(--colortopbordertitle1);
border-top-style: solid;
- box-shadow: none;
border-collapse: collapse;
display: table;
padding: 2px 0px 2px 0;
- width: calc(100% - 1px);
+ box-shadow: none;
+ /*width: calc(100% - 1px); 1px more, i don't know why so i remove */
+ width: calc(100%);
}
tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr, tagtr.liste_titre
{