issue9146.diff - [account_stock_landed_cost] Use field digits on secondary unit

This commit is contained in:
Raimon Esteve 2021-05-13 16:27:50 +02:00
parent a7bee98726
commit a21593b903
2 changed files with 46 additions and 0 deletions

45
issue9146.diff Normal file
View File

@ -0,0 +1,45 @@
diff --git a/trytond/trytond/modules/account_stock_landed_cost/account.py b/trytond/trytond/modules/account_stock_landed_cost/account.py
index 3815326..93478b1 100644
--- a/trytond/trytond/modules/account_stock_landed_cost/account.py
+++ b/trytond/trytond/modules/account_stock_landed_cost/account.py
@@ -10,11 +10,18 @@ from trytond.transaction import Transaction
from trytond import backend
from trytond.tools.multivalue import migrate_property
from trytond.modules.company.model import CompanyValueMixin
+from trytond.modules.product import price_digits
__all__ = ['Configuration', 'ConfigurationLandedCostSequence',
'LandedCost', 'LandedCost_Shipment', 'InvoiceLine']
+def round_price(value, rounding=None):
+ "Round price using the price digits"
+ return value.quantize(
+ Decimal(1) / 10 ** price_digits[1], rounding=rounding)
+
+
class Configuration(metaclass=PoolMeta):
__name__ = 'account.configuration'
landed_cost_sequence = fields.MultiValue(fields.Many2One(
@@ -244,8 +251,8 @@ class LandedCost(Workflow, ModelSQL, ModelView):
for move in moves:
quantity = Decimal(str(move.quantity))
move_cost = cost * factors[move.id]
- unit_landed_cost = (move_cost / quantity).quantize(exp,
- rounding=ROUND_DOWN)
+ unit_landed_cost = round_price(
+ move_cost / quantity, rounding=ROUND_DOWN)
costs.append({
'unit_landed_cost': unit_landed_cost,
'difference': move_cost - (unit_landed_cost * quantity),
@@ -267,8 +274,8 @@ class LandedCost(Workflow, ModelSQL, ModelView):
unit_landed_cost = Currency.compute(
currency, cost['unit_landed_cost'],
move.currency, round=False)
- unit_landed_cost = unit_landed_cost.quantize(
- exp, rounding=ROUND_HALF_EVEN)
+ unit_landed_cost = round_price(
+ unit_landed_cost, rounding=ROUND_HALF_EVEN)
if move.unit_landed_cost is None:
move.unit_landed_cost = 0
move.unit_price += unit_landed_cost

1
series
View File

@ -95,3 +95,4 @@ account_asset_update_asset.diff # [account_asset] convert float to decimal [#044
issue10382.diff # [stock_split] Decimals of quantity move exceed the total digits when split move
issue10338.diff # [bank] Search on rec_name of other model in search_rec_name
issue9146.diff # [account_stock_landed_cost] Use field digits on secondary unit