Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][FIX] l10n_es_aeat_mod_369: No recalcular line_number debido a incons… #3975

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from

Conversation

sergiobstoj
Copy link
Member

@sergiobstoj sergiobstoj commented Jan 30, 2025

…istencias en ciertos casos donde genera que se repita el mismo número y reemplaza registros del dict oss_taxes_map

Existe un caso muy específico en el método _get_oss_taxes_map. Al iterar en for country, taxes in oss_countries.items() y tenemos que previous_tax_count == 5 la fórmula indicada line_number += 8 - (previous_tax_count * 2) siempre se traducirá a line_number += -2. Por ende, en este caso line_number siempre será equivalente al line_number del último impuesto añadido a oss_taxes_map y debido a esto, ese último impuesto será reemplazado por el actual y provoca que no se vea reflejado en el reporte 369.

Para replicar en runbot:
  • Compañía: ES Company.
  • Desde Ajustes -> Contabilidad -> Impuestos -> OSS de la UE OCA -> Añadir nuevos impuestos.
  • Seleccionar por ejemplo, 3 países (Alemania, Austria y Bélgica).
  • Impuestos generales -> Por ejemplo IVA 21% (Bienes)

Se entiende que al realizar esta búsqueda al comienzo del método:
oss_taxes = self.env["account.tax"].search([("oss_country_id", "!=", False), ("company_id", "=", self.company_id.id)])
El primer registro siempre será el último creado, entonces:

  • Para, por ejemplo, Austria, crear 2 nuevos impuestos (se puede duplicar y cambiar nombre e importe)
  • Y para, por ejemplo, Alemania, crear 4 nuevos impuestos (así este queda con 5 para replicar el caso en cuestión)

Crear clientes:

  • Crear cliente b2c para Austria
  • Crear cliente b2c para Alemania

Crear facturas:

  • Crear factura para Cliente Austria con cualquiera de sus impuestos OSS.
  • Crear factura para Cliente Alemania con al menos que una línea tenga el último impuesto OSS que se vea disponible en el selector.

Generar 369:

  • NO se refleja el impuesto de Alemania.
Error-mod-369.mp4
  • Con el PR, si se refleja.
correccion-mod-369.mp4

No termino de darle el sentido a la fórmula line_number += 8 - (previous_tax_count * 2). Al dejar que siga con su secuencia de +2 en cada iteración, el reporte se genera igual de correcto.

…istencias en ciertos casos donde genera que se repita el mismo número y reemplaza registros del dict oss_taxes_map
@sergiobstoj sergiobstoj changed the title [FIX] l10n_es_aeat_mod_369: No recalcular line_number debido a incons… [16.0][FIX] l10n_es_aeat_mod_369: No recalcular line_number debido a incons… Jan 30, 2025
Copy link

@SoniaViciana SoniaViciana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisión funcional hecha y es ok.

Sin el PR no se mostraba el desglose de todas las cuotas de Portugal al haberse sumado Madeira y Azores:
image

@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@sergiobstoj sergiobstoj marked this pull request as ready for review February 7, 2025 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants