Odoo18-Base/addons/l10n_ar/models/account_chart_template.py
2025-03-10 10:52:11 +07:00

46 lines
2.0 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, api, _
from odoo.addons.account.models.chart_template import template
class AccountChartTemplate(models.AbstractModel):
_inherit = 'account.chart.template'
@api.model
def _get_ar_responsibility_match(self, chart_template):
""" return responsibility type that match with the given chart_template code
"""
match = {
'ar_base': self.env.ref('l10n_ar.res_RM'),
'ar_ex': self.env.ref('l10n_ar.res_IVAE'),
'ar_ri': self.env.ref('l10n_ar.res_IVARI'),
}
return match.get(chart_template)
def _load(self, template_code, company, install_demo):
""" Set companies AFIP Responsibility and Country if AR CoA is installed, also set tax calculation rounding
method required in order to properly validate match AFIP invoices.
Also, raise a warning if the user is trying to install a CoA that does not match with the defined AFIP
Responsibility defined in the company
"""
coa_responsibility = self._get_ar_responsibility_match(template_code)
if coa_responsibility:
company.write({
'l10n_ar_afip_responsibility_type_id': coa_responsibility.id,
'country_id': self.env['res.country'].search([('code', '=', 'AR')]).id,
'tax_calculation_rounding_method': 'round_globally',
})
# set CUIT identification type (which is the argentinean vat) in the created company partner instead of
# the default VAT type.
company.partner_id.l10n_latam_identification_type_id = self.env.ref('l10n_ar.it_cuit')
res = super()._load(template_code, company, install_demo)
# If Responsable Monotributista remove the default purchase tax
if template_code in ('ar_base', 'ar_ex'):
company.account_purchase_tax_id = self.env['account.tax']
return res