2018-01-11 06:23:48 +01:00
|
|
|
# Part of Flectra See LICENSE file for full copyright and licensing details.
|
|
|
|
|
|
|
|
from .discount_common import TestDiscountCommon
|
|
|
|
|
|
|
|
|
|
|
|
class TestSODiscount(TestDiscountCommon):
|
|
|
|
def setUp(self):
|
|
|
|
super(TestSODiscount, self).setUp()
|
|
|
|
|
|
|
|
def discount_01_set_fixamount(self):
|
2018-01-25 08:07:16 +01:00
|
|
|
self.sale_order.onchange_discount_method()
|
2018-01-18 11:38:21 +01:00
|
|
|
self.SaleOrderLine.create({
|
2018-01-11 06:23:48 +01:00
|
|
|
'name': self.product_1.name,
|
|
|
|
'product_id': self.product_1.id,
|
|
|
|
'product_uom_qty': 20,
|
|
|
|
'product_uom': self.product_1.uom_id.id,
|
|
|
|
'price_unit': self.product_1.list_price,
|
2018-01-25 08:07:16 +01:00
|
|
|
'order_id': self.sale_order.id,
|
2018-01-11 06:23:48 +01:00
|
|
|
})
|
2018-01-18 11:38:21 +01:00
|
|
|
self.SaleOrderLine.create({
|
2018-01-11 06:23:48 +01:00
|
|
|
'name': self.product_2.name,
|
|
|
|
'product_id': self.product_2.id,
|
|
|
|
'product_uom_qty': 20,
|
|
|
|
'product_uom': self.product_2.uom_id.id,
|
|
|
|
'price_unit': self.product_2.list_price,
|
2018-01-25 08:07:16 +01:00
|
|
|
'order_id': self.sale_order.id,
|
2018-01-11 06:23:48 +01:00
|
|
|
})
|
2018-01-25 08:07:16 +01:00
|
|
|
self.sale_order.write({
|
2018-01-11 06:23:48 +01:00
|
|
|
'discount_method': 'fixed',
|
|
|
|
'discount_amount': 100,
|
|
|
|
})
|
2018-01-25 08:07:16 +01:00
|
|
|
return self.sale_order
|
2018-01-11 06:23:48 +01:00
|
|
|
|
|
|
|
def discount_02_set_percentages(self):
|
2018-01-25 08:07:16 +01:00
|
|
|
self.sale_order.onchange_discount_method()
|
|
|
|
self.sale_order.write({
|
2018-01-11 06:23:48 +01:00
|
|
|
'discount_method': 'per',
|
|
|
|
'discount_per': 10,
|
|
|
|
})
|
2018-01-18 11:38:21 +01:00
|
|
|
self.SaleOrderLine.create({
|
2018-01-11 06:23:48 +01:00
|
|
|
'name': self.product_1.name,
|
|
|
|
'product_id': self.product_1.id,
|
|
|
|
'product_uom_qty': 10,
|
|
|
|
'product_uom': self.product_1.uom_id.id,
|
|
|
|
'price_unit': self.product_1.list_price,
|
2018-01-25 08:07:16 +01:00
|
|
|
'order_id': self.sale_order.id,
|
2018-01-11 06:23:48 +01:00
|
|
|
'discount': 10,
|
|
|
|
})
|
2018-01-18 11:38:21 +01:00
|
|
|
self.SaleOrderLine.create({
|
2018-01-11 06:23:48 +01:00
|
|
|
'name': self.product_2.name,
|
|
|
|
'product_id': self.product_2.id,
|
|
|
|
'product_uom_qty': 20,
|
|
|
|
'product_uom': self.product_2.uom_id.id,
|
|
|
|
'price_unit': self.product_2.list_price,
|
2018-01-25 08:07:16 +01:00
|
|
|
'order_id': self.sale_order.id,
|
2018-01-11 06:23:48 +01:00
|
|
|
'discount': 10,
|
|
|
|
})
|
2018-01-25 08:07:16 +01:00
|
|
|
self.sale_order.write({
|
2018-01-11 06:23:48 +01:00
|
|
|
'discount_method': 'per',
|
|
|
|
'discount_per': 20.0,
|
|
|
|
})
|
2018-01-25 08:07:16 +01:00
|
|
|
return self.sale_order
|
|
|
|
|
|
|
|
def discount_03_check_include_taxes(self):
|
|
|
|
self.sale_order.onchange_discount_method()
|
|
|
|
|
|
|
|
tax_id = self.env['account.tax'].create({
|
|
|
|
'name': 'Tax 7.7',
|
|
|
|
'amount': 7.7,
|
|
|
|
'amount_type': 'percent',
|
|
|
|
'price_include': True,
|
|
|
|
'include_base_amount': True,
|
|
|
|
})
|
|
|
|
|
|
|
|
self.SaleOrderLine.create({
|
|
|
|
'name': self.product_1.name,
|
|
|
|
'product_id': self.product_1.id,
|
|
|
|
'product_uom_qty': 1,
|
|
|
|
'product_uom': self.product_1.uom_id.id,
|
|
|
|
'price_unit': 100,
|
|
|
|
'tax_id': [(6, 0, [tax_id.id])],
|
|
|
|
'order_id': self.sale_order.id,
|
|
|
|
})
|
|
|
|
self.SaleOrderLine.create({
|
|
|
|
'name': self.product_2.name,
|
|
|
|
'product_id': self.product_2.id,
|
|
|
|
'product_uom_qty': 1,
|
|
|
|
'product_uom': self.product_2.uom_id.id,
|
|
|
|
'price_unit': 200,
|
|
|
|
'tax_id': [(6, 0, [tax_id.id])],
|
|
|
|
'order_id': self.sale_order.id,
|
|
|
|
})
|
|
|
|
|
|
|
|
self.sale_order.write({
|
|
|
|
'discount_method': 'fixed',
|
|
|
|
'discount_amount': 10,
|
|
|
|
})
|
|
|
|
return self.sale_order
|