Odoo18-Base/addons/l10n_mx/models/account_account.py
2025-03-10 11:12:23 +07:00

20 lines
941 B
Python

from odoo import api, Command, models
class AccountAccount(models.Model):
_inherit = 'account.account'
@api.model_create_multi
def create(self, vals_list):
# EXTENDS account - ensure there is a tag on created MX accounts
# The computation is a bit naive and might not be correct in all cases.
accounts = super().create(vals_list)
debit_tag = self.env.ref('l10n_mx.tag_debit_balance_account')
credit_tag = self.env.ref('l10n_mx.tag_credit_balance_account')
mx_account_no_tags = accounts.filtered(lambda a: a.company_id.country_code == 'MX' and not a.tag_ids & (credit_tag + debit_tag))
DEBIT_CODES = ['1', '5', '6', '7'] # all other codes are considered "credit"
for account in mx_account_no_tags:
tag_id = debit_tag.id if account.code[0] in DEBIT_CODES else credit_tag.id
account.tag_ids = [Command.link(tag_id)]
return accounts