main #7

Merged
admin merged 620 commits from main into dev 2026-03-29 13:03:25 +00:00
2 changed files with 44 additions and 28 deletions
Showing only changes of commit 10848ed533 - Show all commits

View File

@@ -299,6 +299,16 @@ class Purchase(metaclass=PoolMeta):
def get_company_info(self,name): def get_company_info(self,name):
return (self.company.party.name == 'MELYA') return (self.company.party.name == 'MELYA')
def _get_default_bank_account(self):
if not self.party or not self.party.bank_accounts:
return None
party_bank_accounts = list(self.party.bank_accounts)
if self.currency:
for account in party_bank_accounts:
if account.currency == self.currency:
return account
return party_bank_accounts[0]
@fields.depends('party', '_parent_party.bank_accounts') @fields.depends('party', '_parent_party.bank_accounts')
def on_change_with_bank_accounts(self, name=None): def on_change_with_bank_accounts(self, name=None):
if self.party and self.party.bank_accounts: if self.party and self.party.bank_accounts:
@@ -310,13 +320,11 @@ class Purchase(metaclass=PoolMeta):
'bank_account', '_parent_party.bank_accounts') 'bank_account', '_parent_party.bank_accounts')
def on_change_party(self): def on_change_party(self):
super().on_change_party() super().on_change_party()
if self.party and self.party.bank_accounts: self.bank_account = self._get_default_bank_account()
party_bank_accounts = list(self.party.bank_accounts)
if (not self.bank_account @fields.depends('party', 'currency', '_parent_party.bank_accounts')
or self.bank_account not in party_bank_accounts): def on_change_currency(self):
self.bank_account = party_bank_accounts[0] self.bank_account = self._get_default_bank_account()
else:
self.bank_account = None
@classmethod @classmethod
def default_wb(cls): def default_wb(cls):

View File

@@ -263,6 +263,16 @@ class Sale(metaclass=PoolMeta):
def get_company_info(self,name): def get_company_info(self,name):
return (self.company.party.name == 'MELYA') return (self.company.party.name == 'MELYA')
def _get_default_bank_account(self):
if not self.party or not self.party.bank_accounts:
return None
party_bank_accounts = list(self.party.bank_accounts)
if self.currency:
for account in party_bank_accounts:
if account.currency == self.currency:
return account
return party_bank_accounts[0]
@fields.depends('party', '_parent_party.bank_accounts') @fields.depends('party', '_parent_party.bank_accounts')
def on_change_with_bank_accounts(self, name=None): def on_change_with_bank_accounts(self, name=None):
if self.party and self.party.bank_accounts: if self.party and self.party.bank_accounts:
@@ -274,13 +284,11 @@ class Sale(metaclass=PoolMeta):
'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts') 'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts')
def on_change_party(self): def on_change_party(self):
super().on_change_party() super().on_change_party()
if self.party and self.party.bank_accounts: self.bank_account = self._get_default_bank_account()
party_bank_accounts = list(self.party.bank_accounts)
if (not self.bank_account @fields.depends('party', 'currency', '_parent_party.bank_accounts')
or self.bank_account not in party_bank_accounts): def on_change_currency(self):
self.bank_account = party_bank_accounts[0] self.bank_account = self._get_default_bank_account()
else:
self.bank_account = None
@classmethod @classmethod
def default_wb(cls): def default_wb(cls):