From b8c9db77f4e86cbfe798c42d4114d63cc6c01f2b Mon Sep 17 00:00:00 2001 From: sinergia Date: Sun, 3 Sep 2023 17:14:11 -0500 Subject: [PATCH] total_discount --- sale.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/sale.py b/sale.py index b99b6f7..a2db878 100644 --- a/sale.py +++ b/sale.py @@ -13,9 +13,10 @@ class Sale(metaclass=PoolMeta): __name__ = 'sale.sale' pizza_number = fields.Integer("Number pizza") - total_discount = fields.Function(Monetary("Total Discount", currency='currency', digits='currency'), - 'get_amount') - total_discount_cache = Monetary("Total Discount cache", currency='currency', digits='currency') + total_discount = fields.Function( + Monetary("Total Discount", digits='currency', currency='currency'), 'get_amount') + total_discount_cache = Monetary( + "Total Discount cache", digits='currency', currency='currency') @classmethod def __setup__(cls): @@ -39,8 +40,8 @@ class Sale(metaclass=PoolMeta): sale.tax_amount_cache = sale.tax_amount sale.total_amount_cache = sale.total_amount sale.total_discount_cache = sale.total_discount - cls.save(sales) - + cls.save(sales) + @classmethod def get_amount(cls, sales, names): untaxed_amount = {} @@ -53,7 +54,7 @@ class Sale(metaclass=PoolMeta): compute_taxes = False # Sort cached first and re-instanciate to optimize cache management sales = sorted(sales, key=lambda s: s.state in cls._states_cached, - reverse=True) + reverse=True) sales = cls.browse(sales) for sale in sales: if (sale.state in cls._states_cached @@ -72,7 +73,7 @@ class Sale(metaclass=PoolMeta): if line.type == 'line'), Decimal(0)) total_discount[sale.id] = sum( (line.discount_amount for line in sale.lines - if line.type == 'line'), Decimal(0)) + if line.type == 'line'), Decimal(0)) if compute_taxes: tax_amount[sale.id] = sale.get_tax_amount() total_amount[sale.id] = ( @@ -97,7 +98,8 @@ class Sale(metaclass=PoolMeta): return dict([ ('resolution_number', resolution.resolution_number), ('resolution_prefix', resolution.prefix), - ('valid_date_time_from', str(resolution.valid_date_time_from)), + ('valid_date_time_from', str( + resolution.valid_date_time_from)), ('valid_date_time_to', str(resolution.valid_date_time_to)), ('from_number', resolution.from_number), ('to_number', resolution.to_number)]) @@ -148,6 +150,7 @@ class Sale(metaclass=PoolMeta): if line.type != 'title' and line.taxes else None } for line in record.lines] + data["total_discount"] = str(round(record.total_discount,2)) data["untaxed_amount"] = str(record.untaxed_amount) data["tax_amount"] = str(record.tax_amount) data["total"] = str(record.total_amount)