mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[FIX] - Remove recurring_next_date from sale order line
recurring_next_date should be computed by contract line to get default value
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
</group>
|
||||
<group attrs="{'invisible': [('is_contract', '=', False)]}">
|
||||
<field name="date_start"/>
|
||||
<field name="recurring_next_date"/>
|
||||
</group>
|
||||
<group attrs="{'invisible': [('is_contract', '=', False)]}">
|
||||
<field name="date_end"/>
|
||||
@@ -68,8 +67,6 @@
|
||||
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
|
||||
<field name="date_end"
|
||||
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
|
||||
<field name="recurring_next_date"
|
||||
attrs="{'column_invisible': [('parent.is_contract', '=', False)]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree"
|
||||
position="attributes">
|
||||
|
||||
Reference in New Issue
Block a user