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

[17.0][MIG] l10n_es_aeat_mod303: Migration to version 17.0 #3486

Merged
merged 154 commits into from
Mar 22, 2024

Conversation

pedrobaeza
Copy link
Member

Depends on:

@Tecnativa TT48475

@pedrobaeza
Copy link
Member Author

/ocabot migration l10n_es_aeat_mod303

@OCA-git-bot OCA-git-bot added this to the 17.0 milestone Mar 21, 2024
@OCA-git-bot OCA-git-bot mentioned this pull request Mar 21, 2024
47 tasks
Copy link
Contributor

@HaraldPanten HaraldPanten left a comment

Choose a reason for hiding this comment

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

Probado en local con sus respectivas dependencias.

Revisión funcional OK.

Pedro M. Baeza and others added 24 commits March 22, 2024 12:13
[MIG] l10n_es_aeat_mod303: Migración a v7 del módulo con las siguientes mejoras:
- Convenciones de la comunidad.
- PEP8 en la mayoría de código.
- Icono para el módulo.
- Adaptación de vistas a las posibilidades de la v7.
- Restringidas las cuentas bancarias a las de la compañía.
…más código.

[IMP] l10n_es_aeat: Añadido wizard para ver el resultado de la exportación sin necesidad de tener el módulo document.
[IMP] l10n_es_aeat: Puesta transición de estados sin workflow.
[IMP] l10n_es_aeat_mod303: Adaptado al nuevo mecanismo. Se elimina workflow anterior mediante un script de migración.
[MIG] Eliminados módulos no migrados a v7
…zado

Presentación del Modelo AEAT 303
================================

* Incluye un motor genérico para obtener los totales de códigos de impuestos
  de manera parametrizada y con posibilidad de versionado por fechas
* Incluye un motor de parametrización de las exportaciones a formato BOE
  con posibilidad de versionado por fechas.
* Se incluyen las parametrizaciones de ambos motores para el 303.
…dacion y corregido formulario de mod303, sustituido campo casilla_46 repetido por campo casilla_69.
…ón cuando se hace la declaración

* Generador del asiento de regularización con cargo a un proveedor "Agencia
  Estatal de Administración Tributaria" creado al efecto.

Configuración
=============

Para activar la creación del asiento de regularización en un modelo, hay que
poner en el modelo correspondiente el campo allow_posting a True, y establecer
en la configuración de impuestos los conceptos que se regularizarán con el
flag "to_regularize".
======================
AEAT - Prorrata de IVA
======================

Módulo para gestionar la prorrata del IVA en las declaraciones de la AEAT (por
el momento, en el modelo 303), según el artículo 92 de la Ley 37/1992, de 28 de
diciembre, del Impuesto sobre el Valor Añadido.

Uso
===

Realizando el modelo 303, se puede seleccionar si se desea aplicar prorrata de
IVA.

Prorrata general
----------------

En el caso de seleccionar "Prorrata general", aparece un nuevo campo llamado
"Porcentaje de prorrata de IVA" que puede ser rellenado a mano.

Además, cuando se realice el asiento de regularización, la parte proporcional
de la cuota no deducida se compensará como gasto.

Se ha incluido un calculador del porcentaje de prorrata, utilizable en 2 casos:

* Al comienzo de un nuevo ejercicio, para determinar el porcentaje provisional
  a aplicar hasta el último periodo de ese ejercicio.
* En la última declaración del ejercicio, para determinar el porcentaje
  definitivo de prorrata, y sobre el que se compensará la diferencia.

Problemas conocidos / Hoja de ruta
==================================

* La prorrata especial de IVA no está contemplada aún.
…ixes OCA#290

Cuando se tienen campos related, aunque el valor no se cambie,
Odoo lanza una escritura en el objeto relacionado cada vez que se
guarda el objeto principal. En el caso de la moneda asociada a la
compañía, hace que aquellos usuarios que no tengan permiso para
modificar la compañía (la mayoría), falle en la creación del modelo.
El anterior método utilizado, al tener una clase y un many2one genérico,
no permitía poner los datos en múltiples modelos hijos, ya que se repetían
los IDs, y cogía los datos de un modelo en otros.

Con este nuevo sistema, se sigue utilizando una tabla, pero con doble
índice: el modelo y el ID, parecido a un campo reference, pero gestionado
por código propio en el método de cálculo.

El 303 está adaptado a este nuevo sistema, y se incluye un script de
migración que conserve los datos.
pedrobaeza and others added 19 commits March 22, 2024 12:13
Following odoo/odoo#95967, the mapping is done
for mapping the corresponding fields in the 303 model.

If someone sells electricity at that rate, there's no mapping yet, as we
don't know how the AEAT is going to reformat the model.

TT38004
When doing mathematical operations over several rounded amounts, you can
get a non rounded result. Example:

>>> tax_lines.mapped("amount")
[1022.18, 125899.42, 5399.41, 7354.03, 30.5, -3104.6, -181.45, 0.27, 18.03, 0.0, -0.34]
>>> sum(tax_lines.mapped("amount"))
136437.44999999995

Leading to possible wrong report result ("Solicitud de devolución"
instead of "Resultado cero").

In this commit, we round all the amounts + use float_compare for the
result to avoid the problem.

TT40670
- Activity codes are now 3 letters long instead of integers.
- New activity codes for this year, and shared for 4T and 12.
- Implemented new date_start and date_end on activity codes, period_type
  not required and code as char, along with an extended domain on 303
  report for accomodating to the new specs.
- Fix BOE format to real specs.
They were not adjusted to new domain and thus, you can't select the
proper activity codes for this year.

TT41421
AEAT is now stricter forcing to not fill this information if the bank
account is not a foreign one.

TT41873
Currently translated at 3.8% (7 of 180 strings)

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_mod303
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_mod303/sl/
Currently translated at 88.8% (159 of 179 strings)

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_mod303
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_mod303/ca/
Currently translated at 100.0% (179 of 179 strings)

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_mod303
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_mod303/es/
…o Repercutido (Servicios)' y 'No sujeto Repercutido (Bienes)' de la linea 60 y se agregan a la linea 120
Currently translated at 100.0% (179 of 179 strings)

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_mod303
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_mod303/es/
- Standard procedure.
- Converted tax map lines to new format.
- Converted views to new readonly/required/invisible syntax.
- Adapted tests.

TT48475
@pedrobaeza
Copy link
Member Author

/ocabot merge nobump

Voy ahora a hacer el 111

@OCA-git-bot
Copy link
Contributor

This PR looks fantastic, let's merge it!
Prepared branch 17.0-ocabot-merge-pr-3486-by-pedrobaeza-bump-nobump, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit ae8207b into OCA:17.0 Mar 22, 2024
7 checks passed
@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at 3065350. Thanks a lot for contributing to OCA. ❤️

@pedrobaeza pedrobaeza deleted the 17.0-mig-l10n_es_aeat_mod303 branch March 22, 2024 11:30
@ramiadavid
Copy link
Contributor

@pedrobaeza el archivo l10n.es.aeat.map.tax.line.tax.csv y l10n.es.aeat.map.tax.line.account.csv no sería mas lógico ponerlos en el modulo l10n_es_aeat?

Otros modelos como el 347 también los usa y habría que crearlos de nuevo, haciendo que se dupliquen si los dos módulos están instalados...

@pedrobaeza
Copy link
Member Author

Es algo que he pensado, pero he descartado finalmente por las siguiente razones:

  • Exigiría mantener un sitio "central" de esos registros, y si hay alguna actualización de impuestos, tener que tocar en dos módulos (l10n_es_aeat y el módulo de la declaración que cambie).
  • Las referencias a los XML-IDs serían mucho más largas, teniendo que construirse como l10n_es.xxxxx, siendo menos legibles y ocupando más.
  • Al final, no es ningún overhead añadir de estos registros, y así se da más libertad, incluso de tenerlos repetidos y actuar manualmente. Imagina el caso de que alguien "adelanta" en una BD estos XML-IDs, y luego se incorporan oficialmente en el módulo. En caso de tenerlo centralizado con un constraint unique, habría que borrar previamente el hecho a mano para después actualizar el módulo. En el código ya puse "sets" para evitar duplicidades.

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.