diff --git a/product_contract/models/sale_order_line.py b/product_contract/models/sale_order_line.py
index 39d01e93..00213bac 100644
--- a/product_contract/models/sale_order_line.py
+++ b/product_contract/models/sale_order_line.py
@@ -181,7 +181,9 @@ class SaleOrderLine(models.Model):
predecessor_contract_line = rec.contract_line_id
if predecessor_contract_line:
new_contract_line = contract_line_env.create(
- rec._prepare_contract_line_values(contract, predecessor_contract_line.id)
+ rec._prepare_contract_line_values(
+ contract, predecessor_contract_line.id
+ )
)
predecessor_contract_line.successor_contract_line_id = (
new_contract_line
@@ -210,7 +212,8 @@ class SaleOrderLine(models.Model):
for rec in self:
if rec.contract_id:
if (
- rec.contract_template_id
+ rec.contract_id.contract_template_id
+ and rec.contract_template_id
!= rec.contract_id.contract_template_id
):
raise ValidationError(
diff --git a/product_contract/views/sale_order.xml b/product_contract/views/sale_order.xml
index 686a8db5..41b8b0b8 100644
--- a/product_contract/views/sale_order.xml
+++ b/product_contract/views/sale_order.xml
@@ -29,8 +29,13 @@
position="after">
+ domain="['|',('contract_template_id','=',contract_template_id),
+ ('contract_template_id','=',False),
+ ('partner_id','=',parent.partner_id),
+ ('recurring_invoices','=',True),
+ ]"/>