total_discount
This commit is contained in:
parent
94279af9b8
commit
b8c9db77f4
19
sale.py
19
sale.py
@ -13,9 +13,10 @@ class Sale(metaclass=PoolMeta):
|
|||||||
__name__ = 'sale.sale'
|
__name__ = 'sale.sale'
|
||||||
|
|
||||||
pizza_number = fields.Integer("Number pizza")
|
pizza_number = fields.Integer("Number pizza")
|
||||||
total_discount = fields.Function(Monetary("Total Discount", currency='currency', digits='currency'),
|
total_discount = fields.Function(
|
||||||
'get_amount')
|
Monetary("Total Discount", digits='currency', currency='currency'), 'get_amount')
|
||||||
total_discount_cache = Monetary("Total Discount cache", currency='currency', digits='currency')
|
total_discount_cache = Monetary(
|
||||||
|
"Total Discount cache", digits='currency', currency='currency')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
@ -39,8 +40,8 @@ class Sale(metaclass=PoolMeta):
|
|||||||
sale.tax_amount_cache = sale.tax_amount
|
sale.tax_amount_cache = sale.tax_amount
|
||||||
sale.total_amount_cache = sale.total_amount
|
sale.total_amount_cache = sale.total_amount
|
||||||
sale.total_discount_cache = sale.total_discount
|
sale.total_discount_cache = sale.total_discount
|
||||||
cls.save(sales)
|
cls.save(sales)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_amount(cls, sales, names):
|
def get_amount(cls, sales, names):
|
||||||
untaxed_amount = {}
|
untaxed_amount = {}
|
||||||
@ -53,7 +54,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
compute_taxes = False
|
compute_taxes = False
|
||||||
# Sort cached first and re-instanciate to optimize cache management
|
# Sort cached first and re-instanciate to optimize cache management
|
||||||
sales = sorted(sales, key=lambda s: s.state in cls._states_cached,
|
sales = sorted(sales, key=lambda s: s.state in cls._states_cached,
|
||||||
reverse=True)
|
reverse=True)
|
||||||
sales = cls.browse(sales)
|
sales = cls.browse(sales)
|
||||||
for sale in sales:
|
for sale in sales:
|
||||||
if (sale.state in cls._states_cached
|
if (sale.state in cls._states_cached
|
||||||
@ -72,7 +73,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
if line.type == 'line'), Decimal(0))
|
if line.type == 'line'), Decimal(0))
|
||||||
total_discount[sale.id] = sum(
|
total_discount[sale.id] = 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))
|
||||||
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] = (
|
||||||
@ -97,7 +98,8 @@ class Sale(metaclass=PoolMeta):
|
|||||||
return dict([
|
return dict([
|
||||||
('resolution_number', resolution.resolution_number),
|
('resolution_number', resolution.resolution_number),
|
||||||
('resolution_prefix', resolution.prefix),
|
('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)),
|
('valid_date_time_to', str(resolution.valid_date_time_to)),
|
||||||
('from_number', resolution.from_number),
|
('from_number', resolution.from_number),
|
||||||
('to_number', resolution.to_number)])
|
('to_number', resolution.to_number)])
|
||||||
@ -148,6 +150,7 @@ class Sale(metaclass=PoolMeta):
|
|||||||
if line.type != 'title' and line.taxes else None
|
if line.type != 'title' and line.taxes else None
|
||||||
} for line in record.lines]
|
} for line in record.lines]
|
||||||
|
|
||||||
|
data["total_discount"] = str(round(record.total_discount,2))
|
||||||
data["untaxed_amount"] = str(record.untaxed_amount)
|
data["untaxed_amount"] = str(record.untaxed_amount)
|
||||||
data["tax_amount"] = str(record.tax_amount)
|
data["tax_amount"] = str(record.tax_amount)
|
||||||
data["total"] = str(record.total_amount)
|
data["total"] = str(record.total_amount)
|
||||||
|
Loading…
Reference in New Issue
Block a user