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

52 lines
2.0 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, api, fields, models
from odoo.exceptions import UserError
class AccountTaxGroup(models.Model):
_inherit = 'account.tax.group'
# values from http://www.afip.gob.ar/fe/documentos/otros_Tributos.xlsx
l10n_ar_tribute_afip_code = fields.Selection([
('01', '01 - National Taxes'),
('02', '02 - Provincial Taxes'),
('03', '03 - Municipal Taxes'),
('04', '04 - Internal Taxes'),
('06', '06 - VAT perception'),
('07', '07 - IIBB perception'),
('08', '08 - Municipal Taxes Perceptions'),
('09', '09 - Other Perceptions'),
('99', '99 - Others'),
], string='Tribute AFIP Code', index=True, readonly=True)
# values from http://www.afip.gob.ar/fe/documentos/OperacionCondicionIVA.xls
l10n_ar_vat_afip_code = fields.Selection([
('0', 'Not Applicable'),
('1', 'Untaxed'),
('2', 'Exempt'),
('3', '0%'),
('4', '10.5%'),
('5', '21%'),
('6', '27%'),
('8', '5%'),
('9', '2,5%'),
], string='VAT AFIP Code', index=True, readonly=True)
@api.ondelete(at_uninstall=False)
def check_uninstall_required(self):
"""
Make sure we don't uninstall a required tax group
"""
ar_companies = self.filtered(lambda g: g.company_id.chart_template.startswith('ar_')).mapped('company_id')
profits_tax_group_ids = self.env['ir.model.data'].search([
('name', 'in', [f'{company.id}_tax_group_percepcion_ganancias' for company in ar_companies]),
('module', '=', 'account'),
]).mapped('res_id')
if profit_tax_groups_to_be_deleted := self.filtered(lambda g: g.id in profits_tax_group_ids):
raise UserError(
_(
"The tax group '%s' can't be removed, since it is required in the Argentinian localization.",
profit_tax_groups_to_be_deleted[0].name,
)
)