summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-03-23 16:21:58 +0100
committerChristophe Simonis <chs@odoo.com>2018-03-23 16:21:58 +0100
commit7b5b3ea96daee84d29098cf9c1905a5df1a57258 (patch)
tree7c4da2677d20a892b9423edbdb3fbc353351e952
parent3e8443b5de2f4806839c35653ee77d66b37595d4 (diff)
parente06f3b0b3b1fc3eeffb6170a7ac04ee4c88d4877 (diff)
[MERGE] forward port branch saas-11.2 up to e1a2b299b23
-rw-r--r--models/sale_coupon_program.py5
-rw-r--r--models/sale_order.py6
-rw-r--r--tests/common.py28
3 files changed, 26 insertions, 13 deletions
diff --git a/models/sale_coupon_program.py b/models/sale_coupon_program.py
index 2419aa652ae..cd4ca0627b1 100644
--- a/models/sale_coupon_program.py
+++ b/models/sale_coupon_program.py
@@ -80,6 +80,11 @@ class SaleCouponProgram(models.Model):
if self.promo_code_usage == 'no_code_needed':
self.promo_code = False
+ @api.onchange('reward_product_id')
+ def _onchange_reward_product_id(self):
+ if self.reward_product_id:
+ self.reward_product_uom_id = self.reward_product_id.uom_id
+
@api.model
def create(self, vals):
program = super(SaleCouponProgram, self).create(vals)
diff --git a/models/sale_order.py b/models/sale_order.py
index be5925fffe5..29b070c50c1 100644
--- a/models/sale_order.py
+++ b/models/sale_order.py
@@ -39,14 +39,12 @@ class SaleOrder(models.Model):
@api.multi
@api.returns('self', lambda value: value.id)
def copy(self, default=None):
- order = super(SaleOrder, self).copy(dict(default or {}, order_line=False))
- for line in self._get_reward_lines():
- line.copy({'order_id': order.id})
+ order = super(SaleOrder, self).copy(default)
+ order._get_reward_lines().unlink()
order.with_context(sale_coupon_no_loop=False)._create_new_no_code_promo_reward_lines()
return order
def action_confirm(self):
- self.recompute_coupon_lines()
self.generated_coupon_ids.write({'state': 'new'})
return super(SaleOrder, self).action_confirm()
diff --git a/tests/common.py b/tests/common.py
index 87f21a0d52a..03820578f64 100644
--- a/tests/common.py
+++ b/tests/common.py
@@ -25,17 +25,34 @@ class TestSaleCouponCommon(common.TransactionCase):
self.uom_unit = self.env.ref('uom.product_uom_unit')
+ # Taxes
+ self.tax_15pc_excl = self.env['account.tax'].create({
+ 'name': "Tax 15%",
+ 'amount_type': 'percent',
+ 'amount': 15,
+ 'type_tax_use': 'sale',
+ })
+
+ self.tax_10pc_incl = self.env['account.tax'].create({
+ 'name': "10% Tax incl",
+ 'amount_type': 'percent',
+ 'amount': 10,
+ 'price_include': True,
+ })
+
#products
self.product_A = self.env['product.product'].create({
'name': 'Product A',
'list_price': 100,
- 'sale_ok': True
+ 'sale_ok': True,
+ 'taxes_id': [(6, 0, [self.tax_15pc_excl.id])],
})
self.product_B = self.env['product.product'].create({
'name': 'Product B',
'list_price': 5,
- 'sale_ok': True
+ 'sale_ok': True,
+ 'taxes_id': [(6, 0, [self.tax_15pc_excl.id])],
})
# Immediate Program By A + B: get B free
@@ -57,10 +74,3 @@ class TestSaleCouponCommon(common.TransactionCase):
'rule_products_domain': "[('id', 'in', [%s])]" % (self.product_A.id),
'active': True,
})
-
- self.tax_10pc_incl = self.env['account.tax'].create({
- 'name': "10% Tax incl",
- 'amount_type': 'percent',
- 'amount': 10,
- 'price_include': True,
- })