From 75f0f3164a3fa7cefb82a0100c4448c862f76fb9 Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Fri, 5 Feb 2016 09:47:35 +0100 Subject: [PATCH 1/2] Fix amount computation when modifying shipment moves (grafted from 9e9711b4e8ea46e87c28d3d35d4617559bf7bca1) --- shipment.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/shipment.py b/shipment.py index f567f16..cae2533 100755 --- a/shipment.py +++ b/shipment.py @@ -135,17 +135,18 @@ class ShipmentIn(ShipmentValuedMixin): @classmethod def write(cls, *args): - new_args = [] actions = iter(args) + to_update = [] for shipments, values in zip(actions, actions): if set(values) & set(['incoming_moves']): - for shipment in shipments: - new_values = copy(values) - new_values.update(shipment.calc_amounts()) - new_args.extend(([shipment], new_values)) - else: - new_args.extend((shipments, values)) - super(ShipmentIn, cls).write(*new_args) + to_update.extend(shipments) + super(ShipmentIn, cls).write(*args) + to_write = [] + for shipment in to_update: + values = shipment.calc_amounts() + to_write.extend(([shipment], values)) + if to_write: + cls.write(*to_write) @classmethod def receive(cls, shipments): From dc58608ea21710fcc8d2bc49cc32edcaafc43408 Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Thu, 4 Feb 2016 19:34:08 +0100 Subject: [PATCH 2/2] Use price_digits --- move.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/move.py b/move.py index 043ed57..a815ca5 100644 --- a/move.py +++ b/move.py @@ -6,9 +6,9 @@ from trytond.model import fields from trytond.pool import Pool, PoolMeta from trytond.pyson import Equal, Eval, Not from trytond.transaction import Transaction -from trytond.config import config -DIGITS = int(config.get('digits', 'unit_price_digits', 4)) -DISCOUNT_DIGITS = int(config.get('digits', 'discount_digits', 4)) +from trytond.config import config as config_ +from trytond.modules.product import price_digits +DISCOUNT_DIGITS = config_.getint('product', 'discount_decimal', default=4) __all__ = ['Move'] __metaclass__ = PoolMeta @@ -25,7 +25,7 @@ class Move: currency_digits = fields.Function(fields.Integer('Currency Digits'), 'on_change_with_currency_digits') gross_unit_price = fields.Function(fields.Numeric('Gross Price', - digits=(16, DIGITS), states=STATES, depends=['state']), + digits=price_digits, states=STATES, depends=['state']), 'get_origin_fields') discount = fields.Function(fields.Numeric('Discount', digits=(16, DISCOUNT_DIGITS), states=STATES, depends=['state']),