46 lines
2.0 KiB
Python
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
|