# 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