Se añade redondeo al descuento total
This commit is contained in:
parent
2c9bcc82ce
commit
3b46ae9c78
34
sale.py
34
sale.py
@ -14,9 +14,10 @@ class Sale(metaclass=PoolMeta):
|
|||||||
|
|
||||||
pizza_number = fields.Integer("Number pizza")
|
pizza_number = fields.Integer("Number pizza")
|
||||||
total_discount = fields.Function(
|
total_discount = fields.Function(
|
||||||
Monetary("Total Discount", digits='currency', currency='currency'), 'get_amount')
|
Monetary(
|
||||||
total_discount_cache = Monetary(
|
"Total Discount", digits='currency', currency='currency'),
|
||||||
"Total Discount cache", digits='currency', currency='currency')
|
'get_amount')
|
||||||
|
total_discount_cache = fields.Numeric("Total Discount cache", digits='currency')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
@ -33,6 +34,25 @@ class Sale(metaclass=PoolMeta):
|
|||||||
def default_pizza_number(cls):
|
def default_pizza_number(cls):
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
@fields.depends('lines', 'currency', methods=['get_tax_amount'])
|
||||||
|
def on_change_lines(self):
|
||||||
|
self.untaxed_amount = Decimal('0.0')
|
||||||
|
self.tax_amount = Decimal('0.0')
|
||||||
|
self.total_amount = Decimal('0.0')
|
||||||
|
self.total_discount = Decimal('0.0')
|
||||||
|
|
||||||
|
if self.lines:
|
||||||
|
for line in self.lines:
|
||||||
|
self.untaxed_amount += getattr(line, 'amount', None) or 0
|
||||||
|
self.tax_amount = self.get_tax_amount()
|
||||||
|
if self.currency:
|
||||||
|
self.untaxed_amount = self.currency.round(self.untaxed_amount)
|
||||||
|
self.tax_amount = self.currency.round(self.tax_amount)
|
||||||
|
self.total_amount = self.untaxed_amount + self.tax_amount
|
||||||
|
if self.currency:
|
||||||
|
self.total_discount = self.currency.round(self.total_discount)
|
||||||
|
self.total_amount = self.currency.round(self.total_amount)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def store_cache(cls, sales):
|
def store_cache(cls, sales):
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
@ -68,12 +88,12 @@ class Sale(metaclass=PoolMeta):
|
|||||||
tax_amount[sale.id] = sale.tax_amount_cache
|
tax_amount[sale.id] = sale.tax_amount_cache
|
||||||
total_amount[sale.id] = sale.total_amount_cache
|
total_amount[sale.id] = sale.total_amount_cache
|
||||||
else:
|
else:
|
||||||
untaxed_amount[sale.id] = sum(
|
untaxed_amount[sale.id] = round(sum(
|
||||||
(line.amount for line in sale.lines
|
(line.amount for line in sale.lines
|
||||||
if line.type == 'line'), Decimal(0))
|
if line.type == 'line'), Decimal(0)),2)
|
||||||
total_discount[sale.id] = sum(
|
total_discount[sale.id] = round(sum(
|
||||||
(line.discount_amount for line in sale.lines
|
(line.discount_amount for line in sale.lines
|
||||||
if line.type == 'line'), Decimal(0))
|
if line.type == 'line'), Decimal(0)), 2)
|
||||||
if compute_taxes:
|
if compute_taxes:
|
||||||
tax_amount[sale.id] = sale.get_tax_amount()
|
tax_amount[sale.id] = sale.get_tax_amount()
|
||||||
total_amount[sale.id] = (
|
total_amount[sale.id] = (
|
||||||
|
Loading…
Reference in New Issue
Block a user