[REF] Contract: split from analytic account

This commit is contained in:
Thomas Binsfeld
2019-05-28 16:41:32 +02:00
committed by Francisco Ivan Anton Prieto
parent 70db1094ff
commit 3ca769e079
27 changed files with 543 additions and 317 deletions

View File

@@ -11,12 +11,15 @@ from odoo.exceptions import ValidationError
from .contract_line_constraints import get_allowed
class AccountAnalyticInvoiceLine(models.Model):
_name = 'account.analytic.invoice.line'
_inherit = 'account.abstract.analytic.contract.line'
class ContractLine(models.Model):
_name = 'contract.line'
_inherit = 'contract.abstract.contract.line'
sequence = fields.Integer(
string="Sequence",
)
contract_id = fields.Many2one(
comodel_name='account.analytic.account',
comodel_name='contract.contract',
string='Contract',
required=True,
index=True,
@@ -43,7 +46,7 @@ class AccountAnalyticInvoiceLine(models.Model):
compute='_compute_create_invoice_visibility'
)
successor_contract_line_id = fields.Many2one(
comodel_name='account.analytic.invoice.line',
comodel_name='contract.line',
string="Successor Contract Line",
required=False,
readonly=True,
@@ -53,7 +56,7 @@ class AccountAnalyticInvoiceLine(models.Model):
"contract line created.",
)
predecessor_contract_line_id = fields.Many2one(
comodel_name='account.analytic.invoice.line',
comodel_name='contract.line',
string="Predecessor Contract Line",
required=False,
readonly=True,
@@ -511,12 +514,11 @@ class AccountAnalyticInvoiceLine(models.Model):
invoice_line._onchange_product_id()
invoice_line_vals = invoice_line._convert_to_write(invoice_line._cache)
# Insert markers
contract = self.contract_id
name = self._insert_markers(dates[0], dates[1])
invoice_line_vals.update(
{
'name': name,
'account_analytic_id': contract.id,
'account_analytic_id': self.contract_id.analytic_account_id.id,
'price_unit': self.price_unit,
}
)
@@ -737,7 +739,7 @@ class AccountAnalyticInvoiceLine(models.Model):
successor_contract_line
:return: successor_contract_line
"""
contract_line = self.env['account.analytic.invoice.line']
contract_line = self.env['contract.line']
for rec in self:
if not rec.is_plan_successor_allowed:
raise ValidationError(
@@ -804,7 +806,7 @@ class AccountAnalyticInvoiceLine(models.Model):
raise ValidationError(
_('Stop/Plan successor not allowed for this line')
)
contract_line = self.env['account.analytic.invoice.line']
contract_line = self.env['contract.line']
for rec in self:
if rec.date_start >= date_start:
if rec.date_start < date_end:
@@ -935,7 +937,7 @@ class AccountAnalyticInvoiceLine(models.Model):
return {
'type': 'ir.actions.act_window',
'name': 'Un-Cancel Contract Line',
'res_model': 'account.analytic.invoice.line.wizard',
'res_model': 'contract.line.wizard',
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form')],
@@ -957,7 +959,7 @@ class AccountAnalyticInvoiceLine(models.Model):
return {
'type': 'ir.actions.act_window',
'name': 'Plan contract line successor',
'res_model': 'account.analytic.invoice.line.wizard',
'res_model': 'contract.line.wizard',
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form')],
@@ -979,7 +981,7 @@ class AccountAnalyticInvoiceLine(models.Model):
return {
'type': 'ir.actions.act_window',
'name': 'Resiliate contract line',
'res_model': 'account.analytic.invoice.line.wizard',
'res_model': 'contract.line.wizard',
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form')],
@@ -1001,7 +1003,7 @@ class AccountAnalyticInvoiceLine(models.Model):
return {
'type': 'ir.actions.act_window',
'name': 'Suspend contract line',
'res_model': 'account.analytic.invoice.line.wizard',
'res_model': 'contract.line.wizard',
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form')],
@@ -1020,7 +1022,7 @@ class AccountAnalyticInvoiceLine(models.Model):
@api.multi
def renew(self):
res = self.env['account.analytic.invoice.line']
res = self.env['contract.line']
for rec in self:
is_auto_renew = rec.is_auto_renew
rec.stop(rec.date_end, post_message=False)
@@ -1067,18 +1069,18 @@ class AccountAnalyticInvoiceLine(models.Model):
default_contract_type = self.env.context.get('default_contract_type')
if view_type == 'tree' and default_contract_type == 'purchase':
view_id = self.env.ref(
'contract.account_analytic_invoice_line_purchase_view_tree'
'contract.contract_line_supplier_tree_view'
).id
if view_type == 'form':
if default_contract_type == 'purchase':
view_id = self.env.ref(
'contract.account_analytic_invoice_line_purchase_view_form'
'contract.contract_line_supplier_form_view'
).id
elif default_contract_type == 'sale':
view_id = self.env.ref(
'contract.account_analytic_invoice_line_sale_view_form'
'contract.contract_line_customer_form_view'
).id
return super(AccountAnalyticInvoiceLine, self).fields_view_get(
return super(ContractLine, self).fields_view_get(
view_id, view_type, toolbar, submenu
)
@@ -1089,7 +1091,7 @@ class AccountAnalyticInvoiceLine(models.Model):
raise ValidationError(
_("Contract line must be canceled before delete")
)
return super(AccountAnalyticInvoiceLine, self).unlink()
return super(ContractLine, self).unlink()
@api.multi
def _get_quantity_to_invoice(