diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index af52fef760..f4aeab4be7 100644 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -169,8 +169,9 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin): Eval('accounting_date'), Eval('invoice_date')), }) - payment_term = fields.Many2One('account.invoice.payment_term', - 'Payment Term', states=_states) + payment_term = fields.Many2One( + 'account.invoice.payment_term', "Payment Term", + ondelete='RESTRICT', states=_states) alternative_payees = fields.Many2Many( 'account.invoice.alternative_payee', 'invoice', 'party', "Alternative Payee", states=_states, diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index ffa03c91ac..b344665c9c 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -92,8 +92,9 @@ class Purchase( 'required': ~Eval('state').in_( ['draft', 'quotation', 'cancelled']), }) - payment_term = fields.Many2One('account.invoice.payment_term', - 'Payment Term', states={ + payment_term = fields.Many2One( + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', + states={ 'readonly': ~Eval('state').in_(['draft', 'quotation']), }) party = fields.Many2One('party.party', 'Party', required=True, diff --git a/modules/purchase_amendment/purchase.py b/modules/purchase_amendment/purchase.py index 4c061a83db..6e9f9690fb 100644 --- a/modules/purchase_amendment/purchase.py +++ b/modules/purchase_amendment/purchase.py @@ -196,7 +196,7 @@ class AmendmentLine(ModelSQL, ModelView): }) payment_term = fields.Many2One( - 'account.invoice.payment_term', "Payment Term", + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', states={ 'invisible': Eval('action') != 'payment_term', }) diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 4f2d9306cb..957c3a5ff2 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -89,8 +89,8 @@ class Sale( 'required': ~Eval('state').in_( ['draft', 'quotation', 'cancelled']), }) - payment_term = fields.Many2One('account.invoice.payment_term', - 'Payment Term', + payment_term = fields.Many2One( + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', states={ 'readonly': Eval('state') != 'draft', }) diff --git a/modules/sale_amendment/sale.py b/modules/sale_amendment/sale.py index 3851ebfbf7..869fb7d957 100644 --- a/modules/sale_amendment/sale.py +++ b/modules/sale_amendment/sale.py @@ -212,7 +212,7 @@ class AmendmentLine(ModelSQL, ModelView): }) payment_term = fields.Many2One( - 'account.invoice.payment_term', "Payment Term", + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', states={ 'invisible': Eval('action') != 'payment_term', }) diff --git a/modules/sale_opportunity/opportunity.py b/modules/sale_opportunity/opportunity.py index ad7d9daa13..6702e4df26 100644 --- a/modules/sale_opportunity/opportunity.py +++ b/modules/sale_opportunity/opportunity.py @@ -75,8 +75,9 @@ class SaleOpportunity( "Amount", currency='currency', digits='currency', states=_states_stop, help='Estimated revenue amount.') - payment_term = fields.Many2One('account.invoice.payment_term', - 'Payment Term', states={ + payment_term = fields.Many2One( + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', + states={ 'readonly': In(Eval('state'), ['converted', 'lost', 'cancelled']), }) diff --git a/modules/sale_subscription/subscription.py b/modules/sale_subscription/subscription.py index e4bacdd38b..955870089b 100644 --- a/modules/sale_subscription/subscription.py +++ b/modules/sale_subscription/subscription.py @@ -92,7 +92,7 @@ class Subscription(Workflow, ModelSQL, ModelView): 'required': ~Eval('state').in_(['draft']), }) payment_term = fields.Many2One( - 'account.invoice.payment_term', "Payment Term", + 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT', states={ 'readonly': Eval('state') != 'draft', })