# Copyright 2015-2020 Akretion (http://www.akretion.com) # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging from odoo import api, models logger = logging.getLogger(__name__) class AccountAccount(models.Model): _inherit = "account.account" @api.depends("name", "code") def name_get(self): if self._context.get("account_account_show_code_only"): res = [] for record in self: res.append((record.id, record.code)) return res else: return super().name_get() # https://github.com/odoo/odoo/issues/23040 # TODO mig to v14 ? def fix_bank_account_types(self): aao = self.env["account.account"] companies = self.env["res.company"].search([]) if len(companies) > 1: self = self.sudo() logger.info("START the script 'fix bank and cash account types'") bank_type = self.env.ref("account.data_account_type_liquidity") asset_type = self.env.ref("account.data_account_type_current_assets") journals = self.env["account.journal"].search( [("type", "in", ("bank", "cash"))], order="company_id" ) journal_accounts_bank_type = aao for journal in journals: for account in [ journal.default_credit_account_id, journal.default_debit_account_id, ]: if account: if account.user_type_id != bank_type: account.user_type_id = bank_type.id logger.info( "Company %s: Account %s updated to Bank " "and Cash type", account.company_id.display_name, account.code, ) if account not in journal_accounts_bank_type: journal_accounts_bank_type += account accounts = aao.search( [("user_type_id", "=", bank_type.id)], order="company_id, code" ) for account in accounts: if account not in journal_accounts_bank_type: account.user_type_id = asset_type.id logger.info( "Company %s: Account %s updated to Current Asset type", account.company_id.display_name, account.code, ) logger.info("END of the script 'fix bank and cash account types'") return True