From da869db151abe17e8572d7ff174821ea068c14fe Mon Sep 17 00:00:00 2001 From: Stepan Savelyev Date: Thu, 19 Dec 2019 10:55:25 +0500 Subject: [PATCH] [ADD] domain to create only not linked orders --- models/res_partner_contract_annex.py | 8 +++++++- models/sale_order.py | 20 ++++++++++---------- views/sale_order.xml | 1 + 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/models/res_partner_contract_annex.py b/models/res_partner_contract_annex.py index 49327af..80e8ea3 100644 --- a/models/res_partner_contract_annex.py +++ b/models/res_partner_contract_annex.py @@ -8,7 +8,12 @@ class ContractOrderAnnex(models.Model): _description = "Contract Order Annex" name = fields.Char(string="Name", help="The Number of Annex") - order_id = fields.Many2one("sale.order", string="Order", required=True) + order_id = fields.Many2one( + "sale.order", + string="Order", + domain=[("contract_annex_id", "=", False)], + required=True, + ) contract_id = fields.Many2one( "res.partner.contract", string="Contract", readonly=True ) @@ -25,6 +30,7 @@ class ContractOrderAnnex(models.Model): record.name = "{contract}--{annex}".format( contract=contract_number, annex=annex_number ) + record.order_id.contract_annex_id = record.id return record diff --git a/models/sale_order.py b/models/sale_order.py index 78102c7..ecee665 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -2,25 +2,25 @@ from odoo import api, fields, models class SaleOrder(models.Model): - _inherit = 'sale.order' + _inherit = "sale.order" - delivery_time = fields.Integer( - string='Delivery Time', - default=45, + delivery_time = fields.Integer(string="Delivery Time", default=45,) + contract_annex_id = fields.Many2one( + "res.partner.contract.annex", string="Contract Annex", readonly=True, ) # Extend default field payment_term_id = fields.Many2one( - 'account.payment.term', - domain=lambda self: [('id', 'in', self._get_payment_terms())] + "account.payment.term", + domain=lambda self: [("id", "in", self._get_payment_terms())], ) @api.multi def _get_payment_terms(self): ref = self.env.ref terms = ( - ref('client_contracts.payment_term_prepaid').id, - ref('client_contracts.payment_term_postpayment').id, - ref('client_contracts.payment_term_partial_2').id, - ref('client_contracts.payment_term_partial_3').id, + ref("client_contracts.payment_term_prepaid").id, + ref("client_contracts.payment_term_postpayment").id, + ref("client_contracts.payment_term_partial_2").id, + ref("client_contracts.payment_term_partial_3").id, ) return terms diff --git a/views/sale_order.xml b/views/sale_order.xml index 687ae57..99a94dd 100644 --- a/views/sale_order.xml +++ b/views/sale_order.xml @@ -10,6 +10,7 @@ +