[account_banking_mandate] fixes to support multicompany

This commit is contained in:
Jordi Ballester Alomar
2018-12-19 14:42:22 +01:00
parent 2ea5ff221c
commit 75bd62aece
3 changed files with 24 additions and 4 deletions

View File

@@ -157,11 +157,27 @@ class AccountBankingMandate(models.Model):
'account.banking.mandate') or 'New'
return super(AccountBankingMandate, self).create(vals)
@api.multi
@api.onchange('company_id')
def _onchange_company_id(self):
res = {}
partner_domain = self._get_default_partner_bank_id_domain()
if self.company_id:
if self.partner_bank_id and \
self.company_id and \
self.partner_bank_id.company_id and \
self.partner_bank_id.company_id != self.company_id:
self.partner_bank_id = False
partner_domain.append(('company_id', '=', self.company_id.id))
domain = {'partner_bank_id': partner_domain}
else:
domain = {
'partner_bank_id': partner_domain}
res['domain'] = domain
return res
@api.onchange('partner_bank_id')
def mandate_partner_bank_change(self):
for mandate in self:
mandate.partner_id = mandate.partner_bank_id.partner_id
self.partner_id = self.partner_bank_id.partner_id
@api.multi
def validate(self):

View File

@@ -66,7 +66,8 @@ class AccountInvoice(models.Model):
def set_mandate(self):
if self.payment_mode_id.payment_method_id.mandate_required:
self.mandate_id = self.partner_id.valid_mandate_id
self.mandate_id = self.partner_id.with_context(
force_company=self.company_id.id).valid_mandate_id
else:
self.mandate_id = False

View File

@@ -72,6 +72,9 @@ class TestMandate(TransactionCase):
mandate.partner_bank_id = bank_account_2
mandate.mandate_partner_bank_change()
self.assertEquals(mandate.partner_id, bank_account_2.partner_id)
mandate.company_id = self.company_2
mandate._onchange_company_id()
self.assertFalse(mandate.partner_bank_id)
def test_constrains_01(self):
bank_account = self.env.ref('account_payment_mode.res_partner_12_iban')