Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur (aka Eldy) 2025-01-07 19:12:54 +01:00
commit c3f06059cb
31 changed files with 215 additions and 375 deletions

View File

@ -5298,12 +5298,6 @@ parameters:
count: 1
path: ../../../htdocs/compta/cashcontrol/report.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/compta/cashcontrol/report.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
@ -11526,12 +11520,6 @@ parameters:
count: 1
path: ../../../htdocs/core/lib/order.lib.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/lib/pdf.lib.php
-
message: '#^Ternary operator condition is always false\.$#'
identifier: ternary.alwaysFalse
@ -12348,12 +12336,6 @@ parameters:
count: 2
path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 6
path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_einstein\:\:_tableau_info\(\) expects int, float given\.$#'
identifier: argument.type
@ -12402,18 +12384,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_eratosthene\:\:drawInfoTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_eratosthene\:\:drawTotalTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
-
message: '#^Property Commande\:\:\$availability \(string\) in isset\(\) is not nullable\.$#'
identifier: isset.property
@ -13026,24 +12996,12 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 7
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Parameter \#2 \$current_line of method pdf_octopus\:\:getInfosLineLastSituation\(\) expects FactureLigne, CommonInvoiceLine given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_octopus\:\:drawInfoTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Parameter \#3 \$tab_height of method pdf_octopus\:\:_tableFirstPage\(\) expects int, float given\.$#'
identifier: argument.type
@ -13056,12 +13014,6 @@ parameters:
count: 3
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_octopus\:\:drawTotalTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php
-
message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#'
identifier: isset.property
@ -13224,24 +13176,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 6
path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_sponge\:\:drawInfoTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_sponge\:\:drawTotalTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php
-
message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#'
identifier: isset.property
@ -13458,54 +13392,12 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/fichinter/mod_pacific.php
-
message: '#^Parameter \#3 \$tab_height of method pdf_standard_evaluation\:\:_tableau\(\) expects int, float given\.$#'
identifier: argument.type
count: 6
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#'
identifier: isset.property
count: 2
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxnotes has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxpiece has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxrankemp has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxrequiredrank has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxresult has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Property pdf_standard_evaluation\:\:\$posxskill has no type specified\.$#'
identifier: missingType.property
count: 1
path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php
-
message: '#^Ternary operator condition is always false\.$#'
identifier: ternary.alwaysFalse
@ -14664,12 +14556,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_vinci\:\:_tableau_info\(\) expects int, float given\.$#'
identifier: argument.type
@ -15066,12 +14952,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 6
path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_azur\:\:_tableau_info\(\) expects int, float given\.$#'
identifier: argument.type
@ -15114,24 +14994,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 5
path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_cyan\:\:drawInfoTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_cyan\:\:drawTotalTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php
-
message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\<float\>\|float\) in isset\(\) is not nullable\.$#'
identifier: isset.property
@ -15468,12 +15330,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_eagle_proforma\:\:drawTotalTable\(\) expects int, float given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php
-
message: '#^Property CommonDocGenerator\:\:\$cols \(array\<string, array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\) does not accept non\-empty\-array\<string, array\{rank\: 0, width\: false, status\: true, title\: array\{textkey\: ''Designation'', align\: ''L'', padding\: array\{0\.5, 1, 0\.5, 1\.5\}\}, content\: array\{align\: ''L'', padding\: array\{1, 0\.5, 1, 1\.5\}\}\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#'
identifier: assign.propertyType
@ -15606,12 +15462,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_canelle\:\:_tableau_tot\(\) expects int, float given\.$#'
identifier: argument.type
@ -15690,12 +15540,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_cornas\:\:_tableau_info\(\) expects int, float given\.$#'
identifier: argument.type
@ -15822,12 +15666,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php
-
message: '#^Parameter \#3 \$posy of method pdf_muscadet\:\:_tableau_info\(\) expects int, float given\.$#'
identifier: argument.type
@ -15948,12 +15786,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 5
path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
-
message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#'
identifier: argument.type
@ -15978,12 +15810,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 3
path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php
-
message: '#^Parameter \#4 \$posy of method pdf_zenith\:\:_tableau_tot\(\) expects int, float given\.$#'
identifier: argument.type
@ -31344,12 +31170,6 @@ parameters:
count: 1
path: ../../../htdocs/takepos/printbox.php
-
message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#'
identifier: argument.type
count: 1
path: ../../../htdocs/takepos/receipt.php
-
message: '#^Right side of && is always true\.$#'
identifier: booleanAnd.rightAlwaysTrue
@ -31506,60 +31326,6 @@ parameters:
count: 1
path: ../../../htdocs/theme/eldy/style.css.php
-
message: '#^Variable \$badgeDanger might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeDark might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeInfo might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeLight might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgePrimary might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeSecondary might not be defined\.$#'
identifier: variable.undefined
count: 4
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeSuccess might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$badgeWarning might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$colorblind_deuteranopes_badgeWarning might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/theme/md/badges.inc.php
-
message: '#^Variable \$fontlist might not be defined\.$#'
identifier: variable.undefined

View File

@ -4,11 +4,10 @@
* Copyright (C) 2004-2020 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2019 Nicolas ZABOURI <info@inovea-conseil.com>
* Copyright (C) 2021-2023 Frédéric France <frederic.france@netlgic.fr>
* Copyright (C) 2021-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2021-2023 Waël Almoman <info@almoman.com>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
*
* 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

View File

@ -1,8 +1,8 @@
<?php
/* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
/* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2020-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2019-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -9,7 +9,7 @@
* Copyright (C) 2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2018 Andreu Bisquerra <jove@bisquerra.com>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
*
* 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
@ -450,7 +450,7 @@ if ($resql) {
if (!empty($totalvatperrate) && is_array($totalvatperrate)) {
print '<br><br><div class="small inline-block">'.$langs->trans("VATRate").'</div>';
foreach ($totalvatperrate as $keyrate => $valuerate) {
print '<br><div class="small">'.$langs->trans("VATRate").' '.vatrate($keyrate, 1).' : <div class="inline-block amount width100"></div><div class="inline-block amount width100">'.price($valuerate).'</div></div>';
print '<br><div class="small">'.$langs->trans("VATRate").' '.vatrate($keyrate, true).' : <div class="inline-block amount width100"></div><div class="inline-block amount width100">'.price($valuerate).'</div></div>';
}
}

View File

@ -1,9 +1,9 @@
<?php
/* Module descriptor for ticket system
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
* 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2021 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -1,9 +1,9 @@
<?php
/* Module descriptor for ticket system
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
* 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2021 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -1,9 +1,9 @@
<?php
/* Module descriptor for ticket system
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
* 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2021 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2019-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -1,9 +1,9 @@
<?php
/*
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2018-2023 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -1081,6 +1081,42 @@ abstract class CommonDocGenerator
$array_shipment['order_ref_customer'] = $object->commande->ref_customer;
}
// Load dim data
$tmparray = $object->getTotalWeightVolume();
$totalWeight = $tmparray['weight'];
$totalVolume = $tmparray['volume'];
$totalOrdered = $tmparray['ordered'];
$totalToShip = $tmparray['toship'];
// Set trueVolume and volume_units not currently stored into database
if ($object->trueWidth && $object->trueHeight && $object->trueDepth) {
$object->trueVolume = $object->trueWidth * $object->trueHeight * $object->trueDepth;
$object->volume_units = $object->size_units * 3;
}
$array_shipment[$array_key.'_total_ordered'] = (string) $totalOrdered;
$array_shipment[$array_key.'_total_toship'] = (string) $totalToShip;
if ($object->trueWeight) {
$array_shipment[$array_key.'_total_weight'] = (empty($totalWeight)) ? '' : showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs);
} elseif (!empty($totalWeight)) {
$array_shipment[$array_key.'_total_weight'] = showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs, -1, 'no', 1);
} else {
$array_shipment[$array_key.'_total_weight'] = "";
}
if (!empty($object->trueVolume)) {
if ($object->volume_units < 50) {
$array_shipment[$array_key.'_total_volume'] = (empty($totalVolume)) ? '' : showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs);
} else {
$array_shipment[$array_key.'_total_volume'] = (empty($totalVolume)) ? '' : price($object->trueVolume, 0, $outputlangs, 0, 0).' '.measuringUnitString(0, "volume", $object->volume_units);
}
} elseif (!empty($totalVolume)) {
$array_shipment[$array_key.'_total_volume'] = showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs, -1, 'no', 1);
} else {
$array_shipment[$array_key.'_total_volume'] = "";
}
return $array_shipment;
}

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2011 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2022 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
/* Copyright (C) 2011 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2022-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.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

View File

@ -13,7 +13,7 @@
* Copyright (C) 2019 Lenin Rivas <lenin.rivas@servcom-it.com>
* Copyright (C) 2020 Nicolas ZABOURI <info@inovea-conseil.com>
* Copyright (C) 2021-2022 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2023-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2023-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
@ -1959,7 +1959,7 @@ function pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails = 0)
if (empty($hidedetails) || $hidedetails > 1) {
$tmpresult = '';
$tmpresult .= vatrate($object->lines[$i]->tva_tx, 0, $object->lines[$i]->info_bits, -1);
$tmpresult .= vatrate($object->lines[$i]->tva_tx, false, $object->lines[$i]->info_bits, -1);
if (!getDolGlobalString('MAIN_PDF_MAIN_HIDE_SECOND_TAX')) {
if ($object->lines[$i]->total_localtax1 != 0) {
if (preg_replace('/[\s0%]/', '', $tmpresult)) {
@ -1967,7 +1967,7 @@ function pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails = 0)
} else {
$tmpresult = '';
}
$tmpresult .= vatrate((string) abs($object->lines[$i]->localtax1_tx), 0);
$tmpresult .= vatrate((string) abs($object->lines[$i]->localtax1_tx), false);
}
}
if (!getDolGlobalString('MAIN_PDF_MAIN_HIDE_THIRD_TAX')) {
@ -1977,7 +1977,7 @@ function pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails = 0)
} else {
$tmpresult = '';
}
$tmpresult .= vatrate((string) abs($object->lines[$i]->localtax2_tx), 0);
$tmpresult .= vatrate((string) abs($object->lines[$i]->localtax2_tx), false);
}
}
$tmpresult .= '%';

View File

@ -1,9 +1,9 @@
<?php
/**
* Copyright (C) 2015 Charlie BENKE <charlie@patas-monkey.com>
* Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2015 Charlie BENKE <charlie@patas-monkey.com>
* Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
* Copyright (C) 2023 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2023-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2022 Frédéric France <frederic.france@netlogic.fr>
/* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2022-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify

View File

@ -7,7 +7,7 @@
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017-2018 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
* Copyright (C) 2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
@ -1008,7 +1008,7 @@ class pdf_einstein extends ModelePDFCommandes
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1044,7 +1044,7 @@ class pdf_einstein extends ModelePDFCommandes
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1073,13 +1073,13 @@ class pdf_einstein extends ModelePDFCommandes
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalVAT", $mysoc->country_code) : '');
$totalvat .= ' ';
if (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'rateonly') {
$totalvat .= vatrate($tvaval['vatrate'], 1).$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'codeonly') {
$totalvat .= $tvaval['vatcode'].$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate($tvaval['vatrate'], 1).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1114,7 +1114,7 @@ class pdf_einstein extends ModelePDFCommandes
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1154,7 +1154,7 @@ class pdf_einstein extends ModelePDFCommandes
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);

View File

@ -8,7 +8,7 @@
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2021-2024 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
* Copyright (C) 2024 Joachim Kueter <git-jk@bloxera.com>
@ -910,7 +910,7 @@ class pdf_eratosthene extends ModelePDFCommandes
*
* @param TCPDF $pdf Object PDF
* @param Commande $object Object order
* @param int $posy Position y in PDF
* @param float $posy Position y in PDF
* @param Translate $outputlangs Object langs for output
* @return int Return integer <0 if KO, >0 if OK
*/
@ -924,9 +924,9 @@ class pdf_eratosthene extends ModelePDFCommandes
*
* @param TCPDF $pdf Object PDF
* @param Commande $object Object to show
* @param int $posy Y
* @param float $posy Y
* @param Translate $outputlangs Langs object
* @return int Pos y
* @return float Pos y
*/
protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs)
{
@ -1105,11 +1105,11 @@ class pdf_eratosthene extends ModelePDFCommandes
*
* @param TCPDF $pdf Object PDF
* @param Commande $object Object to show
* @param int $deja_regle Montant deja regle
* @param int $posy Position depart
* @param float $deja_regle Montant deja regle
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @param Translate $outputlangsbis Object lang for output bis
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs, $outputlangsbis = null)
{

View File

@ -8,7 +8,7 @@
* Copyright (C) 2012-2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
* Copyright (C) 2015 Marcos Garcia <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2022 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2022-2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2022-2024 Eric Seigne <eric.seigne@cap-rel.fr>
@ -1178,9 +1178,9 @@ class pdf_octopus extends ModelePDFFactures
*
* @param TCPDI|TCPDF $pdf Object PDF
* @param Facture $object Object invoice
* @param int $posy Position y in PDF
* @param float $posy Position y in PDF
* @param Translate $outputlangs Object langs for output
* @return int Return integer <0 if KO, >0 if OK
* @return int|float Return integer <0 if KO, >0 if OK
*/
public function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs)
{
@ -1322,10 +1322,10 @@ class pdf_octopus extends ModelePDFFactures
*
* @param TCPDI|TCPDF $pdf Object PDF
* @param Facture $object Object to show
* @param int $posy Y
* @param float $posy Y
* @param Translate $outputlangs Langs object
* @param Translate $outputlangsbis Object lang for output bis
* @return int Pos y
* @return float Pos y
*/
protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs, $outputlangsbis)
{
@ -1626,11 +1626,11 @@ class pdf_octopus extends ModelePDFFactures
*
* @param TCPDI|TCPDF $pdf Object PDF
* @param Facture $object Object invoice
* @param int $deja_regle Amount already paid (in the currency of invoice)
* @param int $posy Position depart
* @param float $deja_regle Amount already paid (in the currency of invoice)
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @param Translate $outputlangsbis Object lang for output bis
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs, $outputlangsbis)
{
@ -1735,7 +1735,7 @@ class pdf_octopus extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1772,7 +1772,7 @@ class pdf_octopus extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1818,13 +1818,13 @@ class pdf_octopus extends ModelePDFFactures
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalVAT", $mysoc->country_code) : '');
$totalvat .= ' ';
if (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'rateonly') {
$totalvat .= vatrate($tvaval['vatrate'], 1).$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'codeonly') {
$totalvat .= $tvaval['vatcode'].$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate($tvaval['vatrate'], 1).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1858,7 +1858,7 @@ class pdf_octopus extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1896,7 +1896,7 @@ class pdf_octopus extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -3645,7 +3645,7 @@ class pdf_octopus extends ModelePDFFactures
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($width, $height, $totalvat, 0, 'L', 1);
$pdf->SetXY($posx + $width, $posy + $height * $index);

View File

@ -8,12 +8,12 @@
* Copyright (C) 2012-2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2024 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2024 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2022-2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
* Copyright (C) 2024 Franck Moreau
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
* Copyright (C) 2024 Franck Moreau
*
* 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
@ -1111,9 +1111,9 @@ class pdf_sponge extends ModelePDFFactures
*
* @param TCPDF $pdf Object PDF
* @param Facture $object Object invoice
* @param int $posy Position y in PDF
* @param float $posy Position y in PDF
* @param Translate $outputlangs Object langs for output
* @return int Return integer <0 if KO, >0 if OK
* @return float Return integer <0 if KO, >0 if OK
*/
public function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs)
{
@ -1253,10 +1253,10 @@ class pdf_sponge extends ModelePDFFactures
*
* @param TCPDF $pdf Object PDF
* @param Facture $object Object to show
* @param int $posy Y
* @param float $posy Y
* @param Translate $outputlangs Langs object
* @param Translate $outputlangsbis Object lang for output bis
* @return int Pos y
* @return float Pos y
*/
protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs, $outputlangsbis)
{
@ -1568,11 +1568,11 @@ class pdf_sponge extends ModelePDFFactures
*
* @param TCPDF $pdf Object PDF
* @param Facture $object Object invoice
* @param int $deja_regle Amount already paid (in the currency of invoice)
* @param int $posy Position depart
* @param float $deja_regle Amount already paid (in the currency of invoice)
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @param Translate $outputlangsbis Object lang for output bis
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs, $outputlangsbis)
{
@ -1828,7 +1828,7 @@ class pdf_sponge extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1865,7 +1865,7 @@ class pdf_sponge extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1919,13 +1919,13 @@ class pdf_sponge extends ModelePDFFactures
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalVAT", $mysoc->country_code) : '');
$totalvat .= ' ';
if (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'rateonly') {
$totalvat .= vatrate($tvaval['vatrate'], 1).$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'codeonly') {
$totalvat .= $tvaval['vatcode'].$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate($tvaval['vatrate'], 1).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1959,7 +1959,7 @@ class pdf_sponge extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1997,7 +1997,7 @@ class pdf_sponge extends ModelePDFFactures
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2016-2023 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018 Francis Appels <francis.appels@z-application.com>
* Copyright (C) 2019 Markus Welters <markus@welters.de>
* Copyright (C) 2019 Rafael Ingenleuf <ingenleuf@welters.de>
@ -72,12 +72,39 @@ class pdf_standard_evaluation extends ModelePDFEvaluation
*/
public $version = 'dolibarr';
/**
* @var float
*/
public $posxpiece;
/**
* @var float
*/
public $posxskill;
/**
* @var float
*/
public $posxrankemp;
/**
* @var float
*/
public $posxrequiredrank;
/**
* @var float
*/
public $posxresult;
/**
* @var float
*/
public $postotalht;
/**
* @var float
*/
public $posxnotes;
@ -642,9 +669,9 @@ class pdf_standard_evaluation extends ModelePDFEvaluation
* Show table for lines
*
* @param TCPDF $pdf Object PDF
* @param int $tab_top Tab top
* @param int $tab_height Tab height
* @param int $nexY next y
* @param float $tab_top Tab top
* @param float $tab_height Tab height
* @param float $nexY next y
* @param Translate $outputlangs Output langs
* @param int $hidetop 1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title
* @param int $hidebottom Hide bottom bar of array

View File

@ -5,7 +5,7 @@
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Josep Lluís Amador <joseplluis@lliuretic.cat>
* Copyright (C) 2024 Nick Fragoulis
@ -762,7 +762,7 @@ class pdf_vinci extends ModelePDFMo
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -816,7 +816,7 @@ class pdf_vinci extends ModelePDFMo
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -846,7 +846,7 @@ class pdf_vinci extends ModelePDFMo
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -7,7 +7,7 @@
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017-2018 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2019 Pierre Ardoin <mapiolca@me.com>
* Copyright (C) 2021-2024 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
@ -1194,7 +1194,7 @@ class pdf_azur extends ModelePDFPropales
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1230,7 +1230,7 @@ class pdf_azur extends ModelePDFPropales
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1259,13 +1259,13 @@ class pdf_azur extends ModelePDFPropales
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalVAT", $mysoc->country_code) : '');
$totalvat .= ' ';
if (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'rateonly') {
$totalvat .= vatrate($tvaval['vatrate'], 1).$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'codeonly') {
$totalvat .= $tvaval['vatcode'].$tvacompl;
} elseif (getDolGlobalString('PDF_VAT_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate($tvaval['vatrate'], 1).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
$totalvat .= vatrate($tvaval['vatrate'], true).($tvaval['vatcode'] ? ' ('.$tvaval['vatcode'].')' : '').$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1297,7 +1297,7 @@ class pdf_azur extends ModelePDFPropales
if (getDolGlobalString('PDF_LOCALTAX1_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1334,7 +1334,7 @@ class pdf_azur extends ModelePDFPropales
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);

View File

@ -8,7 +8,7 @@
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2021-2024 Anthony Berton <anthony.berton@bb2a.fr>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
* Copyright (C) 2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
@ -1008,9 +1008,9 @@ class pdf_cyan extends ModelePDFPropales
*
* @param TCPDF $pdf Object PDF
* @param Propal $object Object to show
* @param int $posy Y
* @param float $posy Y
* @param Translate $outputlangs Langs object
* @return int Pos y
* @return float Pos y
*/
public function drawInfoTable(&$pdf, $object, $posy, $outputlangs)
{
@ -1191,11 +1191,11 @@ class pdf_cyan extends ModelePDFPropales
*
* @param TCPDF $pdf Object PDF
* @param Propal $object Object proposal
* @param int $deja_regle Amount already paid (in the currency of invoice)
* @param int $posy Position depart
* @param float $deja_regle Amount already paid (in the currency of invoice)
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @param Translate $outputlangsbis Object lang for output bis
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs, $outputlangsbis = null)
{
@ -1299,7 +1299,7 @@ class pdf_cyan extends ModelePDFPropales
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalLT1", $mysoc->country_code) : '');
$totalvat .= ' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$total_localtax = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? price2num($tvaval * $object->multicurrency_tx, 'MT') : $tvaval);
@ -1332,7 +1332,7 @@ class pdf_cyan extends ModelePDFPropales
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalLT2", $mysoc->country_code) : '');
$totalvat .= ' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$total_localtax = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? price2num($tvaval * $object->multicurrency_tx, 'MT') : $tvaval);
@ -1359,7 +1359,7 @@ class pdf_cyan extends ModelePDFPropales
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalVAT", $mysoc->country_code) : '');
$totalvat .= ' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1390,7 +1390,7 @@ class pdf_cyan extends ModelePDFPropales
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).(is_object($outputlangsbis) ? ' / '.$outputlangsbis->transcountrynoentities("TotalLT1", $mysoc->country_code) : '');
$totalvat .= ' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$total_localtax = ((isModEnabled("multicurrency") && isset($object->multicurrency_tx) && $object->multicurrency_tx != 1) ? price2num($tvaval * $object->multicurrency_tx, 'MT') : $tvaval);
@ -1428,7 +1428,7 @@ class pdf_cyan extends ModelePDFPropales
if (getDolGlobalString('PDF_LOCALTAX2_LABEL_IS_CODE_OR_RATE') == 'nocodenorate') {
$totalvat .= $tvacompl;
} else {
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
}
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
@ -1900,9 +1900,9 @@ class pdf_cyan extends ModelePDFPropales
*
* @param TCPDF $pdf Object PDF
* @param Propal $object Object proposal
* @param int $posy Position depart
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawSignatureArea(&$pdf, $object, $posy, $outputlangs)
{

View File

@ -7,7 +7,7 @@
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
@ -1021,10 +1021,10 @@ class pdf_eagle_proforma extends ModelePDFStockTransfer
*
* @param TCPDF $pdf Object PDF
* @param StockTransfer $object Object StockTransfer
* @param int $deja_regle Montant deja regle
* @param int $posy Position depart
* @param float $deja_regle Montant deja regle
* @param float $posy Position depart
* @param Translate $outputlangs Object langs
* @return int Position pour suite
* @return float Position pour suite
*/
protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs)
{

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
*
@ -673,7 +673,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -721,7 +721,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -746,7 +746,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -5,7 +5,7 @@
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2023 William Mead <william.mead@manchenumerique.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
@ -987,7 +987,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1041,7 +1041,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1071,7 +1071,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -5,7 +5,7 @@
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
*
@ -849,7 +849,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -903,7 +903,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -933,7 +933,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -5,7 +5,7 @@
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
*
@ -940,7 +940,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -972,7 +972,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -995,7 +995,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1025,7 +1025,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
@ -1056,7 +1056,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -5,7 +5,7 @@
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Nick Fragoulis
*
@ -970,7 +970,7 @@ class pdf_zenith extends ModelePDFSupplierProposal
}
$totalvat = $outputlangs->transcountrynoentities("TotalVAT", $mysoc->country_code).' ';
$totalvat .= vatrate($tvakey, 1).$tvacompl;
$totalvat .= vatrate($tvakey, true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1024,7 +1024,7 @@ class pdf_zenith extends ModelePDFSupplierProposal
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT1", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
@ -1054,7 +1054,7 @@ class pdf_zenith extends ModelePDFSupplierProposal
$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
}
$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
$totalvat .= vatrate((string) abs((float) $tvakey), 1).$tvacompl;
$totalvat .= vatrate((string) abs((float) $tvakey), true).$tvacompl;
$pdf->MultiCell($col2x - $col1x, $tab2_hl, $totalvat, 0, 'L', 1);
$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2017-2024 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
*
* 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
@ -305,6 +305,6 @@ unset($dolibarr_main_db_port);
unset($dolibarr_main_db_name);
unset($dolibarr_main_db_user);
unset($dolibarr_main_db_pass);
unset($$dolibarr_main_db_type);
unset($dolibarr_main_db_type);
unset($dolibarr_main_document_root);
unset($dolibarr_main_document_root_alt);

View File

@ -6,7 +6,7 @@
* Copyright (C) 2019 Josep Lluís Amador <joseplluis@lliuretic.cat>
* Copyright (C) 2021 Nicolas ZABOURI <info@inovea-conseil.com>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
*
* 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
@ -281,7 +281,7 @@ if (getDolGlobalString('TAKEPOS_SHOW_DATE_OF_PRINING')) {
?>
<tr>
<th align="right"><?php if ($gift != 1) {
echo $langs->trans("VAT").' '.vatrate($key, 1);
echo $langs->trans("VAT").' '.vatrate($key, true);
} ?></th>
<td align="right"><?php if ($gift != 1) {
echo price($val, 1, '', 1, - 1, - 1, $conf->currency)."\n";

View File

@ -1,11 +1,23 @@
<?php
/* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2025 Frédéric France <frederic.france@free.fr>
*/
if (!defined('ISLOADEDBYSTEELSHEET')) {
die('Must be called by steelsheet');
}
// From theme_vars.inc, must be included by steelsheet
/**
* @var string $badgePrimary
* @var string $badgeSecondary
* @var string $badgeSuccess
* @var string $badgeDanger
* @var string $badgeWarning
* @var string $badgeInfo
* @var string $badgeLight
* @var string $badgeDark
* @var string $colorblind_deuteranopes_badgeWarning
*/
'
@phan-var-force string $badgePrimary
@phan-var-force string $badgeSecondary