Skip to content

Commit

Permalink
[IMP] l10n_ar_account_tax_settlement: agregar código de impuesto al i…
Browse files Browse the repository at this point in the history
…nstalar el módulo.

Tarea: 34379
Se agregaron los códigos de impuestos correspondientes para retenciones de ganancias aplicadas y retenciones de iva aplicadas.
  • Loading branch information
pablohmontenegro committed Apr 10, 2024
1 parent 8b0d916 commit b26fcc7
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 0 deletions.
1 change: 1 addition & 0 deletions l10n_ar_account_tax_settlement/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
##############################################################################
from . import models
from . import wizards
from .hooks import post_init_hook
1 change: 1 addition & 0 deletions l10n_ar_account_tax_settlement/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@
'installable': True,
'auto_install': True,
'application': False,
'post_init_hook': 'post_init_hook',
}
32 changes: 32 additions & 0 deletions l10n_ar_account_tax_settlement/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from odoo import api, SUPERUSER_ID
import logging
_logger = logging.getLogger(__name__)


def post_init_hook(env):
""" Al instalar este módulo (l10n_ar_account_tax_settlement), en caso de que existan compañías responsable inscripto argentinas con l10n_ar_withholding y con plan de cuentas ya establecido entonces a los impuestos de retenciones de ganancias e iva les agregamos el código de impuesto correspondiente. """

# l10n_ar_withholding es el módulo que crea los impuestos de retenciones
l10n_ar_withholding = env['ir.module.module'].search([
('name', '=', 'l10n_ar_withholding'),
('state', '=', 'installed'),
])
if l10n_ar_withholding:
# verificamos que la compañía sea argentina, responsable inscripto y tenga plan de cuentas instalado
companies = env['res.company'].search([('l10n_ar_afip_responsibility_type_id.code', '=', '1'), ('chart_template', '=', 'ar_ri')])
for company in companies:
# Retenciones aplicadas de ganancias
xml_id_ret_gcias_aplic = "account.%s_%s" % (company.id, 'ri_tax_withholding_ganancias_applied')
impuesto_ret_gcias_aplic = env.ref(xml_id_ret_gcias_aplic)
if impuesto_ret_gcias_aplic:
impuesto_ret_gcias_aplic.codigo_impuesto = '01'

# Retenciones aplicadas de iva
xml_id_ret_iva_aplic = "account.%s_%s" % (company.id, 'ri_tax_withholding_vat_applied')
impuesto_ret_iva_aplic = env.ref(xml_id_ret_iva_aplic)
if impuesto_ret_iva_aplic:
impuesto_ret_iva_aplic.codigo_impuesto = '02'

# Dejamos registro en los logs de las compañías en las cuales se estableció el código de impuesto
if companies:
_logger.info("Se agregaron los códigos de impuestos correspondientes para retenciones de ganancias aplicadas y retenciones de iva aplicadas para compañías %s." % ', '.join(companies.mapped('name')))
18 changes: 18 additions & 0 deletions l10n_ar_account_tax_settlement/models/account_chart_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,21 @@ def _get_latam_withholding_account_journal(self, template_code):
'settlement_account_tag_ids': tag and [(4, tag.id, False)],
}
return res

@template('ar_ri', 'account.tax')
def _get_ar_ri_withholding_account_tax(self):
""" En caso de que ya se encuentren instalados l10n_ar_account_tax_settlement y l10n_ar_withholding y se creen nuevas compañías argentinas responsable inscripto con su plan de cuentas correspondiente entonces a los impuestos creados de retenciones de ganancias e iva les agregamos el código de impuesto. """
taxes_creados = super(AccountChartTemplate, self)._get_ar_ri_withholding_account_tax()
# l10n_ar_withholding es el módulo que crea los impuestos de retenciones
l10n_ar_withholding = self.env['ir.module.module'].search([
('name', '=', 'l10n_ar_withholding'),
('state', '=', 'installed'),
])
if l10n_ar_withholding:
company = self.env.company
# verificamos que la compañía sea argentina y responsable inscripto
if company.country_id.code in self._get_country_code() and company.l10n_ar_afip_responsibility_type_id.code == '1':
if taxes_creados:
taxes_creados.get('ri_tax_withholding_ganancias_applied')['codigo_impuesto'] = '01'
taxes_creados.get('ri_tax_withholding_vat_applied')['codigo_impuesto'] = '02'
return taxes_creados

0 comments on commit b26fcc7

Please sign in to comment.