mirror of
https://github.com/brain-tec/account_ebics.git
synced 2025-08-14 14:45:36 +00:00
account_ebics - mulit-company fix company_ids field
This commit is contained in:
@@ -28,6 +28,7 @@ class EbicsConfig(models.Model):
|
||||
)
|
||||
journal_ids = fields.Many2many(
|
||||
comodel_name="account.journal",
|
||||
relation="account_journal_ebics_config_rel",
|
||||
readonly=True,
|
||||
states={"draft": [("readonly", False)]},
|
||||
string="Bank Accounts",
|
||||
@@ -148,8 +149,9 @@ class EbicsConfig(models.Model):
|
||||
active = fields.Boolean(default=True)
|
||||
company_ids = fields.Many2many(
|
||||
comodel_name="res.company",
|
||||
relation="ebics_config_res_company_rel",
|
||||
string="Companies",
|
||||
required=True,
|
||||
readonly=True,
|
||||
help="Companies sharing this EBICS contract.",
|
||||
)
|
||||
|
||||
@@ -181,9 +183,26 @@ class EbicsConfig(models.Model):
|
||||
)
|
||||
)
|
||||
|
||||
@api.onchange("journal_ids")
|
||||
def _onchange_journal_ids(self):
|
||||
self.company_ids = self.journal_ids.mapped("company_id")
|
||||
def write(self, vals):
|
||||
"""
|
||||
Due to the multi-company nature of the EBICS config we
|
||||
need to adapt the company_ids in the write method.
|
||||
"""
|
||||
if "journal_ids" not in vals:
|
||||
return super().write(vals)
|
||||
for rec in self:
|
||||
old_company_ids = rec.journal_ids.mapped("company_id").ids
|
||||
super(EbicsConfig, rec).write(vals)
|
||||
new_company_ids = rec.journal_ids.mapped("company_id").ids
|
||||
updates = []
|
||||
for cid in new_company_ids:
|
||||
if cid in old_company_ids:
|
||||
old_company_ids.remove(cid)
|
||||
else:
|
||||
updates += [(4, cid)]
|
||||
updates += [(3, x) for x in old_company_ids]
|
||||
super(EbicsConfig, rec).write({"company_ids": updates})
|
||||
return True
|
||||
|
||||
def unlink(self):
|
||||
for ebics_config in self:
|
||||
|
@@ -245,6 +245,8 @@ class EbicsFile(models.Model):
|
||||
statement_ids = [x["statement_id"] for x in sts_data]
|
||||
if statement_ids:
|
||||
self.sudo().bank_statement_ids = [(4, x) for x in statement_ids]
|
||||
company_ids = self.sudo().bank_statement_ids.mapped("company_id").ids
|
||||
self.company_ids = [(6, 0, company_ids)]
|
||||
ctx = dict(self.env.context, statement_ids=statement_ids)
|
||||
module = __name__.split("addons.")[1].split(".")[0]
|
||||
result_view = self.env.ref("%s.ebics_file_view_form_result" % module)
|
||||
|
Reference in New Issue
Block a user