From ac6bfb538c73bda17716e951753d72acab1caf7f Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Thu, 3 Oct 2024 22:12:15 +0000 Subject: [PATCH] [FIX] l10n_uy_reports: formulario 2-181. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ticket: 80568 Error de lógica al momento de descargar el txt del formulario 2-181 de Uruguay X-original-commit: ea0bbd6f6e6eba03c5bea11e9424c3f3dfbb8ae8 --- l10n_uy_reports/README.rst | 2 +- l10n_uy_reports/wizards/form_report_wiz.py | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/l10n_uy_reports/README.rst b/l10n_uy_reports/README.rst index 52367acf..488f4c96 100644 --- a/l10n_uy_reports/README.rst +++ b/l10n_uy_reports/README.rst @@ -16,7 +16,7 @@ Uruguay - Accounting Reports * Agrega la posibilidad de ver/exportar xls con el libro de IVA Compras/Ventas Uruguayo, esto en el menu "Tax Reports" * Agrega el menu Resumen de IVA para uruguay, reporte que se puee usar para analizar los datos de facturacióneed -* Nuevo asistente que permite generar los archivos TXT para presentar el Formulario 2/181 (hasta el momento solo repota impuestos de iva compra/venta) +* Nuevo asistente que permite generar los archivos TXT para presentar el Formulario 2/181 (hasta el momento solo repota impuestos de iva compra/venta). Instructivos: https://www.gub.uy/direccion-general-impositiva/comunicacion/publicaciones/instructivo-para-confeccion-presentacion-declaraciones-aplicacion-beta y https://www.gub.uy/direccion-general-impositiva/comunicacion/publicaciones/informacion-sobre-formulario-2181 Detalle de implementacion diff --git a/l10n_uy_reports/wizards/form_report_wiz.py b/l10n_uy_reports/wizards/form_report_wiz.py index e749519f..d753989a 100644 --- a/l10n_uy_reports/wizards/form_report_wiz.py +++ b/l10n_uy_reports/wizards/form_report_wiz.py @@ -49,7 +49,7 @@ def _get_invoices_domain(self): """ domain = [ ('company_id', '=', self.company_id.id), ('state', '=', 'posted'), - ('date', '>=', self.date_from), ('date', '<', self.date_to), + ('date', '>=', self.date_from), ('date', '<=', self.date_to), ('partner_id.vat', '!=', False), ('l10n_latam_document_type_id.code', '!=', '0'), ('l10n_latam_document_type_id.code', '!=', False), @@ -146,20 +146,18 @@ def _get_form_2181_data(self): for item in group_by_subtotal_values: tax_group_id = item.get('tax_group_id') if tax_group_id in taxes_group_ids: - inv_amount = item.get('tax_group_amount') + # los comprobantes exentos tienen 0.0 en tax_group_amount, entonces tomamos tax_group_base_amount + inv_amount = item.get('tax_group_amount') if not tax_group_id == self.env.ref('l10n_uy_account.tax_group_vat_exempt').id else item.get('tax_group_base_amount') # No estaba ene especifcacion pero vimos via un ejemplo que los montos reportados siempre son en # pesos. aun qu el comprobamte sea de otra moneda, es por eso que hacemos esta conversion if inv.currency_id != UYU_currency: - currency_rate = inv.currency_id._convert( - 1.0, - inv.company_id.currency_id, - inv.company_id, - inv.date or fields.Date.today(), - round=False - ) - inv_amount = inv_amount * currency_rate + inv_amount = inv_amount * (inv.l10n_uy_currency_rate or (inv.currency_id._convert(1.0, inv.company_id.currency_id, inv.company_id, inv.date, round=False))) key = (tax_group_id, 'sale' if 'out_' in inv.move_type else 'purchase') - amount_total[key] = amount_total.get(key, 0.0) + (amount_total.get(tax_group_id, 0.0)) + inv_amount + sing = '+' if inv.move_type in ['out_invoice', 'in_invoice', 'out_receipt', 'in_receipt'] else '-' + if sing == '+': + amount_total[key] = amount_total.get(key, 0.0) + (amount_total.get(tax_group_id, 0.0)) + inv_amount + else: + amount_total[key] = amount_total.get(key, 0.0) + (amount_total.get(tax_group_id, 0.0)) - inv_amount for tax in amount_total: if not tax_code.get(tax):