Skip to content

[18.0][FIX] l10n_es_vat_book: handle group taxes (e.g. DUA) - #5034

Open
EmilioPascual wants to merge 1 commit into
OCA:18.0from
moduon:18.0-fix-vat-book-group-taxes
Open

[18.0][FIX] l10n_es_vat_book: handle group taxes (e.g. DUA)#5034
EmilioPascual wants to merge 1 commit into
OCA:18.0from
moduon:18.0-fix-vat-book-group-taxes

Conversation

@EmilioPascual

@EmilioPascual EmilioPascual commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Los impuestos grupo (amount_type='group', como el DUA de importación p_iva21_ibc_group) provocaban un KeyError en upsert_book_line_tax porque el consumidor indexaba el diccionario res de AEAT por el impuesto grupo, mientras que _process_aeat_tax_base_info lo indexa por los hijos del grupo.

Este PR corrige upsert_book_line_tax en l10n_es_vat_book para que itere los hijos que ya devuelve el helper de AEAT, eliminando el acceso res[grupo] manual y dejando la función preparada para impuestos grupo.

Issues: #4652 y #4971.

Pasos de reproducción (ahora corregidos):

  1. Crear una factura de proveedor con un impuesto grupo DUA (p. ej. "IVA 21% Importaciones DUA") en una línea.
  2. Validar la factura.
  3. Crear un libro de IVA para el periodo correspondiente y pulsar Calcular.
  4. Sin el arreglo: KeyError: account.tax(<id>,) en l10n_es_vat_book/models/l10n_es_vat_book.py:281.
image image

Notas de implementación:

  • upsert_book_line_tax ahora itera res.items() directamente. El helper de AEAT (_process_aeat_tax_base_info / _process_aeat_tax_fee_info) es la única fuente de verdad sobre "a qué hijos AEAT se expande este impuesto".
  • La línea que añade la base del primer impuesto (if i == 0:) usa ahora next(iter(res.values()))["base"] para leer la base del primer hijo expandido, ya que el helper de AEAT asigna la misma base a todos los hijos de un grupo.
  • Ampliado TestL10nEsAeatVatBookBase.taxes_purchase con P_IVA21_IBC_GROUP (DUA importación, base 1000, cuota 21%) y actualizadas las aserciones de test_model_vat_book para esperar 8 entradas en received_tax_summary_ids (antes 7), con la fila del DUA en primer lugar al ordenar. Sin el arreglo en upsert_book_line_tax, este test reproduce el KeyError de [17.0][‎‎l10n_es_vat_book] DUA grouped tax error #4652 / [BUG] l10n_es_vat_book: KeyError on group taxes (e.g. DUA) in upsert_book_line_tax #4971.

¿@ValentinVinagre @pedrobaeza @HaraldPanten @Abranes @ProcessControl-JHF @ArantxaSudon podéis revisarlo, por favor? Gracias

MT-14055 @moduon

@OCA-git-bot OCA-git-bot added series:18.0 mod:l10n_es_vat_book Module l10n_es_vat_book labels Jun 8, 2026

@loida-vm loida-vm left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@ArantxaSudon ArantxaSudon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Prueba funcional
El LIVA recoge perfectamente los impuestos del DUA

Image

Gracias @EmilioPascual
@moduon MT-14055

@ValentinVinagre

Copy link
Copy Markdown
Contributor

@pedrobaeza @HaraldPanten en un principio se está trabajando en lo mismo que en estos pr's anteriores(#4674 #5004). Creo que se habló que el libro de IVA se tiene que refactorizar según creo que comentamos 🤔 . Más que nada por saber sobre este tema.
Merci

@pedrobaeza pedrobaeza added this to the 18.0 milestone Jun 10, 2026
@pedrobaeza

Copy link
Copy Markdown
Member

@ValentinVinagre si la solución tiene las mismas falencias que los anteriores PRs, entonces sí, tampoco sería fusionable. No lo he analizado aún. ¿Puedes decirme?

@EmilioPascual

EmilioPascual commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

Aquí la ventaja sobre los otros PR es que incluye el desglose en una sola línea y no en 2 como se comentó que hacía #4674

De todas formas, he leído varias veces que el módulo se va a refactorizar pero no me queda muy claro en qué sentido se quiere refactorizar. ¿Podéis aclararlo por favor? Así podemos aportar en ese sentido 🤗

Al final lo que estamos intentando es migrar el módulo a 19.0 pero #4884 parece estar bloqueada por las issues del key error. Quiza se pueda fusionar este PR o algunos de los otros en lo que se termina de plantear la refactorización.

@HaraldPanten

HaraldPanten commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Hola @EmilioPascual Creo que el refactoring profundo va enfocado a una mejora notable del código y del rendimiento del libro de IVA.

Hace años que se ha ido parcheando, en mayor o menor medida, y conviene hacer un replanteamiento del mismo.

En los Spanish CA Days, finalmente no se habló sobre el tema. Aunque nosotros no pudimos acudir.

Pedro, tenías alguna idea de refactoring en mente a partir de la que se pueda empezar a trabajar, para darle salida al libro de IVA en V19?

Gracias por las aportaciones.

@OCA-git-bot

Copy link
Copy Markdown
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). 🤖

@rafaelbn

Copy link
Copy Markdown
Member

@pedrobaeza @HaraldPanten por lo que hemos validado, este PR resuelve el caso del DUA sin generar las dos líneas que se detectaron anteriormente. Las pruebas funcionales son correctas.

No estamos refactorizando y esto es algo que se puede hacer después.

¿Podemos mezclar este PR para soluconar las incidencia actuales por favor?

Muchas gracias
Saludos

@QubiQBcn

QubiQBcn commented Jul 3, 2026

Copy link
Copy Markdown

@pedrobaeza ¿cuándo se va a poder mergear este PR? Tenemos un cliente que tiene este problema también.
Muchas gracias.

@rafaelbn

rafaelbn commented Jul 7, 2026

Copy link
Copy Markdown
Member

Hola @pedrobaeza , hola @HaraldPanten :

Este FIX es necesarios , tenemos BUG en los clientes de 19 y una vez mezclado en 18 hay que llevarlo a Odoo 19.

¿Qué problema hay? Creo que Emilio lo explicó adecuadamente y yo aclaré que esto no es todavía la re-factorización.

¿Es posible por favor avanzar?

Son errores en PROD en 2 versiones... y estamos dando el PR listo y testeado 🙏🏼

Gracias
Saludos,
Rafa

@rafaelbn

rafaelbn commented Jul 8, 2026

Copy link
Copy Markdown
Member

@OCA-git-bot

Copy link
Copy Markdown
Contributor

Sorry @rafaelbn you are not allowed to rebase.

To do so you must either have push permissions on the repository, or be a declared maintainer of all modified addons.

If you wish to adopt an addon and become it's maintainer, open a pull request to add your GitHub login to the maintainers key of its manifest.

@rafaelbn rafaelbn left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Resuelve un error que no deja sacar el Libro de IVA cuando tienes DUA

👍🏼 Probado

@Evaguadaltech

Copy link
Copy Markdown

Buenos días, en la version 18 en el Libro de IVA al calcular un informe me da el error relacionado con el impuesto "21% EX G DUA(168)". He instalado la ultima version del mes de marzo pero me sigue dando el mismo error. Necesito arreglar dicho error porque no podemos generar el Libro de IVA.
libro

Gracias.
Un saudo.

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.