You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
995 B
27 lines
995 B
# -*- coding: utf-8 -*-
|
|
# Copyright 2017 LasLabs Inc.
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
from odoo import api, models
|
|
|
|
|
|
class SaleOrder(models.Model):
|
|
_inherit = 'sale.order'
|
|
|
|
@api.multi
|
|
def action_confirm(self):
|
|
""" If we have a contract in the order, set it up """
|
|
for rec in self:
|
|
order_lines = self.mapped('order_line').filtered(
|
|
lambda r: r.product_id.is_contract
|
|
)
|
|
for line in order_lines:
|
|
contract_tmpl = line.product_id.contract_template_id
|
|
contract = self.env['account.analytic.account'].create({
|
|
'name': '%s Contract' % rec.name,
|
|
'partner_id': rec.partner_id.id,
|
|
'contract_template_id': contract_tmpl.id,
|
|
})
|
|
line.contract_id = contract.id
|
|
contract.recurring_create_invoice()
|
|
return super(SaleOrder, self).action_confirm()
|