changeset 7c0cd2e70d8e in modules/stock_secondary_unit:default
details: 
https://hg.tryton.org/modules/stock_secondary_unit?cmd=changeset;node=7c0cd2e70d8e
description:
        Add round_price

        We add a common method to round prices that are stored using the price 
digits.
        It is useless to use the digits from the field because it can not be 
changed in
        any other way than by configuration.

        issue9146
        review299521002
diffstat:

 stock.py   |  13 ++++++-------
 tryton.cfg |   1 +
 2 files changed, 7 insertions(+), 7 deletions(-)

diffs (52 lines):

diff -r a154d249b4e2 -r 7c0cd2e70d8e stock.py
--- a/stock.py  Sat Mar 21 18:45:33 2020 +0100
+++ b/stock.py  Thu Apr 23 21:44:00 2020 +0200
@@ -1,12 +1,10 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
-from decimal import Decimal
-
 from trytond.model import fields
 from trytond.pool import PoolMeta, Pool
 from trytond.pyson import Eval
 
-from trytond.modules.product import price_digits
+from trytond.modules.product import price_digits, round_price
 
 
 class Move(metaclass=PoolMeta):
@@ -80,10 +78,11 @@
         Uom = pool.get('product.uom')
         if (self.unit_price and self.uom and self.secondary_unit
                 and (self.secondary_uom_factor or self.secondary_uom_rate)):
-            return Uom.compute_price(
+            unit_price = Uom.compute_price(
                 self.uom, self.unit_price, self.secondary_unit,
                 factor=self.secondary_uom_factor, rate=self.secondary_uom_rate
-                ).quantize(Decimal(1) / 10 ** price_digits[1])
+                )
+            return round_price(unit_price)
         else:
             return None
 
@@ -95,8 +94,8 @@
                 and (self.secondary_uom_factor or self.secondary_uom_rate)):
             self.unit_price = Uom.compute_price(
                 self.secondary_unit, self.secondary_unit_price, self.uom,
-                factor=self.secondary_uom_rate, rate=self.secondary_uom_factor
-                ).quantize(Decimal(1) / 10 ** price_digits[1])
+                factor=self.secondary_uom_rate, rate=self.secondary_uom_factor)
+            self.unit_price = round_price(self.unit_price)
 
     @fields.depends(methods=[
             'on_change_secondary_quantity', 'on_change_secondary_unit_price'])
diff -r a154d249b4e2 -r 7c0cd2e70d8e tryton.cfg
--- a/tryton.cfg        Sat Mar 21 18:45:33 2020 +0100
+++ b/tryton.cfg        Thu Apr 23 21:44:00 2020 +0200
@@ -3,5 +3,6 @@
 depends:
     ir
     stock
+    product
 xml:
     stock.xml

Reply via email to