PERF Reduce number of SQL call to get local tax.

This commit is contained in:
ldestailleur
2025-10-02 13:50:47 +02:00
parent 3c8ea21911
commit dec9d861bf
2 changed files with 29 additions and 11 deletions

View File

@@ -10577,9 +10577,10 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
}
}
}
if ((empty($exclude) || !in_array('objectamount', $exclude)) && (empty($include) || in_array('objectamount', $include))) {
'@phan-var-force Facture|FactureRec $object';
/** @var Facture|FactureRec|null $object */
/** @var Propal|Commande|Facture|FactureRec|null $object */
include_once DOL_DOCUMENT_ROOT . '/core/lib/functionsnumtoword.lib.php';
$substitutionarray['__DATE_YMD__'] = is_object($object) ? (isset($object->date) ? dol_print_date($object->date, 'day', false, $outputlangs) : null) : '';
@@ -10606,10 +10607,19 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
$substitutionarray['__AMOUNT_VAT_TEXT__'] = is_object($object) ? (isset($object->total_vat) ? dol_convertToWord($object->total_vat, $outputlangs, '', true) : dol_convertToWord($object->total_tva, $outputlangs, '', true)) : '';
$substitutionarray['__AMOUNT_VAT_TEXTCURRENCY__'] = is_object($object) ? (isset($object->total_vat) ? dol_convertToWord($object->total_vat, $outputlangs, $conf->currency, true) : dol_convertToWord($object->total_tva, $outputlangs, $conf->currency, true)) : '';
if ($onlykey != 2 || $mysoc->useLocalTax(1)) {
$mysocuselocaltax1 = false;
$mysocuselocaltax2 = false;
if ($mysoc instanceof Societe && !empty(country_code)) {
$tmparray = $mysoc->useLocalTax(-1);
$mysocuselocaltax1 = $tmparray[1];
$mysocuselocaltax2 = $tmparray[2];
}
// Local taxes
if ($onlykey != 2 || $mysocuselocaltax1) {
$substitutionarray['__AMOUNT_TAX2__'] = is_object($object) ? $object->total_localtax1 : '';
}
if ($onlykey != 2 || $mysoc->useLocalTax(2)) {
if ($onlykey != 2 || $mysocuselocaltax2) {
$substitutionarray['__AMOUNT_TAX3__'] = is_object($object) ? $object->total_localtax2 : '';
}
@@ -10618,10 +10628,10 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
$substitutionarray['__AMOUNT_FORMATTED__'] = is_object($object) ? ($object->total_ttc ? price($object->total_ttc, 0, $outputlangs, 0, -1, -1, $conf->currency) : null) : '';
$substitutionarray['__AMOUNT_REMAIN_FORMATTED__'] = is_object($object) ? ($object->total_ttc ? price($object->total_ttc - $already_payed_all, 0, $outputlangs, 0, -1, -1, $conf->currency) : null) : '';
$substitutionarray['__AMOUNT_VAT_FORMATTED__'] = is_object($object) ? (isset($object->total_vat) ? price($object->total_vat, 0, $outputlangs, 0, -1, -1, $conf->currency) : ($object->total_tva ? price($object->total_tva, 0, $outputlangs, 0, -1, -1, $conf->currency) : null)) : '';
if ($onlykey != 2 || $mysoc->useLocalTax(1)) {
if ($onlykey != 2 || $mysocuselocaltax1) {
$substitutionarray['__AMOUNT_TAX2_FORMATTED__'] = is_object($object) ? ($object->total_localtax1 ? price($object->total_localtax1, 0, $outputlangs, 0, -1, -1, $conf->currency) : null) : '';
}
if ($onlykey != 2 || $mysoc->useLocalTax(2)) {
if ($onlykey != 2 || $mysocuselocaltax2) {
$substitutionarray['__AMOUNT_TAX3_FORMATTED__'] = is_object($object) ? ($object->total_localtax2 ? price($object->total_localtax2, 0, $outputlangs, 0, -1, -1, $conf->currency) : null) : '';
}
// Amount keys formatted in a currency (with the typo error for backward compatibility)
@@ -10630,10 +10640,10 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
$substitutionarray['__AMOUNT_FORMATED__'] = $substitutionarray['__AMOUNT_FORMATTED__'];
$substitutionarray['__AMOUNT_REMAIN_FORMATED__'] = $substitutionarray['__AMOUNT_REMAIN_FORMATTED__'];
$substitutionarray['__AMOUNT_VAT_FORMATED__'] = $substitutionarray['__AMOUNT_VAT_FORMATTED__'];
if ($mysoc instanceof Societe && $mysoc->useLocalTax(1)) {
if ($mysocuselocaltax1) {
$substitutionarray['__AMOUNT_TAX2_FORMATED__'] = $substitutionarray['__AMOUNT_TAX2_FORMATTED__'];
}
if ($mysoc instanceof Societe && $mysoc->useLocalTax(2)) {
if ($mysoc->useLocalTax2) {
$substitutionarray['__AMOUNT_TAX3_FORMATED__'] = $substitutionarray['__AMOUNT_TAX3_FORMATTED__'];
}
}