From 357478e74cef4dd36c409df173e82ac13e2c32a6 Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Wed, 25 Mar 2026 19:29:32 +0100 Subject: [PATCH] 25.03.26 --- modules/purchase_trade/purchase.py | 26 +++++++++++++++++++ modules/purchase_trade/view/purchase_form.xml | 6 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py index dba26a1..e610c8c 100755 --- a/modules/purchase_trade/purchase.py +++ b/modules/purchase_trade/purchase.py @@ -253,6 +253,13 @@ class Purchase(metaclass=PoolMeta): __name__ = 'purchase.purchase' btb = fields.Many2One('back.to.back',"Back to back") + bank_accounts = fields.Function( + fields.Many2Many('bank.account', None, None, "Bank Accounts"), + 'on_change_with_bank_accounts') + bank_account = fields.Many2One( + 'bank.account', "Bank Account", + domain=[('id', 'in', Eval('bank_accounts', []))], + depends=['bank_accounts']) from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')]) to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')]) shipment_in = fields.Many2One('stock.shipment.in','Purchases') @@ -292,6 +299,25 @@ class Purchase(metaclass=PoolMeta): def get_company_info(self,name): return (self.company.party.name == 'MELYA') + @fields.depends('party', '_parent_party.bank_accounts') + def on_change_with_bank_accounts(self, name=None): + if self.party and self.party.bank_accounts: + return [account.id for account in self.party.bank_accounts] + return [] + + @fields.depends( + 'company', 'party', 'invoice_party', 'payment_term', 'lines', + 'bank_account', '_parent_party.bank_accounts') + def on_change_party(self): + super().on_change_party() + if self.party and self.party.bank_accounts: + party_bank_accounts = list(self.party.bank_accounts) + if (not self.bank_account + or self.bank_account not in party_bank_accounts): + self.bank_account = party_bank_accounts[0] + else: + self.bank_account = None + @classmethod def default_wb(cls): WB = Pool().get('purchase.weight.basis') diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml index b334e39..e3d9313 100755 --- a/modules/purchase_trade/view/purchase_form.xml +++ b/modules/purchase_trade/view/purchase_form.xml @@ -79,4 +79,8 @@ this repository contains the full copyright notices and license terms. --> - \ No newline at end of file + + +