diff --git a/product_contract/models/contract_line.py b/product_contract/models/contract_line.py
index 998da169c..101e544cd 100644
--- a/product_contract/models/contract_line.py
+++ b/product_contract/models/contract_line.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import api, fields, models, _
+from odoo import fields, models
class AccountAnalyticInvoiceLine(models.Model):
diff --git a/product_contract/models/sale_order.py b/product_contract/models/sale_order.py
index a2e8487d4..e53fbb918 100644
--- a/product_contract/models/sale_order.py
+++ b/product_contract/models/sale_order.py
@@ -26,6 +26,7 @@ class SaleOrder(models.Model):
line_to_create_contract = rec.order_line.filtered(
lambda r: not r.contract_id
)
+ line_to_update_contract = rec.order_line.filtered('contract_id')
for contract_template in line_to_create_contract.mapped(
'product_id.contract_template_id'
):
@@ -47,7 +48,6 @@ class SaleOrder(models.Model):
contract._onchange_contract_template_id()
order_lines.create_contract_line(contract)
order_lines.write({'contract_id': contract.id})
- line_to_update_contract = rec.order_line.filtered('contract_id')
for line in line_to_update_contract:
line.create_contract_line(line.contract_id)
return super(SaleOrder, self).action_confirm()
@@ -64,10 +64,10 @@ class SaleOrder(models.Model):
action = self.env.ref(
"contract.action_account_analytic_sale_overdue_all"
).read()[0]
- contracts = self.env['account.analytic.invoice.line'].search([
- ('sale_order_line', 'in', self.order_line.ids)
- ]).mapped('contract_id')
- action["domain"] = [
- ("id", "in", contracts.ids)
- ]
+ contracts = (
+ self.env['account.analytic.invoice.line']
+ .search([('sale_order_line_id', 'in', self.order_line.ids)])
+ .mapped('contract_id')
+ )
+ action["domain"] = [("id", "in", contracts.ids)]
return action
diff --git a/product_contract/models/sale_order_line.py b/product_contract/models/sale_order_line.py
index 1c13fdad5..70e868c4f 100644
--- a/product_contract/models/sale_order_line.py
+++ b/product_contract/models/sale_order_line.py
@@ -20,7 +20,7 @@ class SaleOrderLine(models.Model):
comodel_name='account.analytic.contract',
string='Contract Template',
related='product_id.product_tmpl_id.contract_template_id',
- readonly=True
+ readonly=True,
)
recurring_rule_type = fields.Selection(
[
@@ -50,9 +50,6 @@ class SaleOrderLine(models.Model):
)
date_start = fields.Date(string='Date Start', default=fields.Date.today())
date_end = fields.Date(string='Date End', index=True)
- recurring_next_date = fields.Date(
- default=fields.Date.today(), copy=False, string='Date of Next Invoice'
- )
@api.onchange('product_id')
def onchange_product(self):
@@ -74,8 +71,6 @@ class SaleOrderLine(models.Model):
'uom_id': self.product_uom.id,
'price_unit': self.price_unit,
'discount': self.discount,
- 'recurring_next_date': self.recurring_next_date
- or fields.Date.today(),
'date_end': self.date_end,
'date_start': self.date_start or fields.Date.today(),
'recurring_interval': self.recurring_interval,
@@ -87,9 +82,13 @@ class SaleOrderLine(models.Model):
@api.multi
def create_contract_line(self, contract):
+ contract_line_env = self.env['account.analytic.invoice.line']
contract_line = self.env['account.analytic.invoice.line']
for rec in self:
- contract_line.create(rec._prepare_contract_line_values(contract))
+ contract_line |= contract_line_env.create(
+ rec._prepare_contract_line_values(contract)
+ )
+ contract_line._onchange_date_start()
@api.constrains('contract_id')
def _check_contract_sale_partner(self):
diff --git a/product_contract/views/sale_order.xml b/product_contract/views/sale_order.xml
index 70397c32e..4443c39d8 100644
--- a/product_contract/views/sale_order.xml
+++ b/product_contract/views/sale_order.xml
@@ -56,7 +56,6 @@
-
@@ -68,8 +67,6 @@
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
-