1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/account_base_import/models/account_account.py
2024-12-10 09:04:09 +07:00

33 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, api, models
from odoo.exceptions import UserError
class AccountAccount(models.Model):
_inherit = ["account.account"]
@api.model
def load(self, fields, data):
""" Overridden to add an id to a row to update an account if it already exists
instead of trying to create it.
"""
if "import_file" in self.env.context:
if 'code' not in fields:
raise UserError(_("The import file must contain the 'code' column"))
accounts_codes_ids = {}
fields.append(".id")
code_index = fields.index("code")
account_codes = self.search_read(
domain=self._check_company_domain(self.env.company),
fields=["code"]
)
for account in account_codes:
accounts_codes_ids[account["code"]] = account["id"]
for row in data:
account_code = row[code_index]
account_id = accounts_codes_ids.get(account_code)
if account_id:
row.append(account_id)
return super().load(fields, data)