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_sii_oca: Migration to v17 #3737

Open
wants to merge 296 commits into
base: 17.0
Choose a base branch
from

Conversation

manuelregidor
Copy link
Contributor

@manuelregidor manuelregidor commented Sep 27, 2024

Supersedes: #3504

Se ha aprovechado la migración para eliminar la dependencia hacia el módulo queue_job. Ahora, los envíos se envían a través de triggers, una opción base de Odoo.

Quedará pendiente crear un nuevo campo sii_start_date en res.company, que serviría para que la función _compute_sii_enabled de sii.mixin lo tenga en cuenta para dar valor al campo sii_enabled.

T-5833

ozono and others added 30 commits September 27, 2024 08:20
- Se ha modificado el texto de algunas claves de registro para adaptarlos a las
  actualmente publicadas por la AEAT
- Se han añadido las claves de registro correspondientes al primer semestre de 2017
  para facturas emitidas y recibidas
- Se han eliminado dos claves de registro eliminadas por la AEAT en la versión 0.7
- Se ha cambiado el valor de la variable SII_VERSION a '1.0'
- Se han modificado en los parámetros del sistema las URL de los WSDL de SII conforme
  a los publicados por la AEAT. Son funcionales tanto en entorno de pruebas como de
  producción. La versión 0.7 es admitida hasta el día 30 de Junio sólo para el entorno
  de pruebas (en producción debe ser la 1.0), a partir del día 1 de Julio la versión
  debe ser la 1.0 para ambos entornos.
- Se ha eliminado el parámetro del sistema 'l10n_es_aeat_sii.version' ya que no tiene
  sentido en configuración. La versión está hardcodeada en account_invoice.py y no
  debe poder ser configurable por el usuario.
- Se ha contemplado un nueva opción para el campo <TipoNoExenta> que la AEAT añadió en
  la versión 0.7, la opción (S3) que debe utilizarse cuando la factura tiene una parte
  sujeta sin inversión de sujeto pasivo y otra sujeta con inversión de sujeto pasivo.
- Se ha añadido control (provisionalmente) en los envíos para evitar que por error un
  usuario envíe una factura del primer semestre al entorno de producción, comprobándolo
  por el período de la factura. El formato que ahora se genera no está adaptado para
  facturas del primer semestre ya que es algo distinto (hay campos que deben tener un
  valor fijo por defecto, como la descripción que debe ser "Registro del primer
  semestre" o la CuotaDeducible que debe ser 0). Auque he realziado pruebas de envío
  contra la de pruebas con clave de registro del primer semestre y no me ha dado error,
  no se si en producción pasará igual o si, aún no dando el error, la factura estará
  mal comunicada (no tiene la clave correcta o los valores por defecto exigidos). Por
  eso de momento (he añadido un TODO) se evita que se envíen si no se está contra el
  entorno de pruebas. Cuando se adapte el formato de envío y dedidamos cómo abordar el
  tema de la comunicación de las facturas del primer semestre (wizard o similar) lo
  podemos quitar o modificar según veamos.
- Mejorada lógica de comprobación para en envío de facturas
- Corrección de domain para atributo invisible de botones de anulación en formularios de facturas

[FIX] l10n_es_aeat_sii: Cálculo descripción SII para factura automático para todo

[IMP] l10n_es_aeat_sii: Control de cambio de fecha de factura de proveedor y revisión de traducciones

[FIX] l10n_es_aeat_sii: Corrección de fecha programada con metodo en conector 'fixed'

La hora a la que se programan los envíos no respetaba el TZ del usuario
* Solo se comprueba que tenga VAT en el caso de regimen nacional
* En caso de extracomunitarias pero con código de pais ES solo acepta
  IDType=07
* Mandar 'NO_DISPONIBLE' en caso de que no haya VAT
* Tener en cuenta el caso regimen nacional y partner no Español
* Si el país no esta establecido, tener el cuenta los dígitos del VAT
* Si no tiene ni pais ni vat devolver vacio
[FIX] l10n_es_aeat_sii: en caso de que no haya descripción no deja guardar
* Cambiado hardcodeado de nombres de posición fiscal a configurable por posición fiscal
* Traducciones
* Se redondea la base imponible en el caso de las exentas de clientes
* Nunca se cambian a signo negativo los importes si la factira no es rectificativa
* [Información del NIF en exportaciones a Canarias
* Filtro de no enviados SII que sólo incluya 2017
* Los trabajos no realizados se eliminan en lugar de pasarlos a estado "Hecho"
  al reenviar, cancelar, etc.
* Permiso de lectura a queue.job para los gestores de la AEAT.
* Regla de seguridad para que los gestores de la AEAT sólo vean los trabajos
  del SII.
* Los trabajos se encolan como admin para evitar errores al validar por gente
  sin permisos del conector. Desafortunadamente, no se puede mantener el
  usuario original en el trabajo.

[IMP] l10n_es_aeat_sii: Share queue.job view for both types of invoices

[FIX] l10n_es_aeat_sii: Add jobs with sudo for avoiding permission errors

[FIX] l10n_es_aeat_sii: Permissions problem

No more need for connector or AEAT permissions

[IMP] l10n_es_aeat_sii: Track content sent + better layout for return
[IMP] l10n_es_aeat_sii: Change tax computation to invoice level

Odoo v9 already knows which tax generates each invoice tax line, so
we get with this:

* Avoid to make roundings that are not accurate.
* If there are manual changes in supplier invoices taxes, now we
  will be able to notify them and prevent not matching errors.
* Less difficult algorithms for getting tax amount totals.
Writing on one cursor some invoice values and on error in another,
makes the process to hang due to a lock. Deferring the write to the
end and accumulating values prevents this lock.

Closes OCA#594
* Se corrige la compañía con la que se crean los trabajos del conector
* Se corrige la creación del trabajo de cancelación sii
…ories

Refactorización de la obtención del código de país y gestión correcta de
los territorios de ultramar franceses.
Envío correcto para el caso de facturas de bienes o ISP emitidas a
clientes extranjeros con sucursal permanente en España.
As grouped taxes are unfolded on invoice tax footer, we need to
map on SII children taxes (only one of them though), not parent ones
Se añade la posibilidad de indicar las dos caves de registro adicionales.
…stro contable para el SII (OCA#621)

Según la conversación mantenida aquí https://groups.google.com/forum/#!searchin/openerp-spain/sii%7Csort:relevance/openerp-spain/ZM2GlTBI5qw/iOF-FF4YBQAJ , la fecha de registro contable para el SII de las facturas recibidas debe ser la fecha en que se registra la factura en el sistema informático, con independencia de la fecha que se establezca al asiento contable de la misma. Hasta ahora por defecto se establece esta fecha como la fecha del momento del envío (esto es correcto) pero se vuelve a obtener la fecha del momento del envío también para las modificaciones y cancelaciones posteriores, y esto es incorrecto ya que es necesario almacenar la fecha en que se comunica la factura por primera vez para no altararla si hay modificaciones o anulaciones posteriores. Se crea en este PR un campo para almacenar la fecha en que se registra la factura correctamente en el SII por primera vez y se utiliza este dato en los siguientes envíos de la factura al SII. Con esto se independiza completamente la fecha de registro en el SII de la fecha del asiento contable y se asegura además que nunca se comunicará fuera de plazo (8 días ahora, 4 días después) independientemente de la fecha contable que le demos al asiento. Los contables sólo deberán tener en cuenta que deben enviar las facturas que quieran deducirse en un mes antes del día 16 del mes siguiente.
He añadido además una migración para establecer el valor del nuevo campo de fecha de registro en el SII a partir del dato 'FechaRegContable' ya comunicado y que se almacena en el último envío al SII de cada factura.
OCA-git-bot and others added 11 commits September 27, 2024 08:20
…er method

Since odoo/odoo@07be14e3086f473ed9a8c4b12ea7c,
Odoo has a helper method in AccountTestInvoicingCommon called
`_create_invoice`.

There are some tests here in this repository using the same name for
methods with the decorator `classmethod` and also inheriting from the
previous one, so they collide.

- l10n_es_aeat_sii_oca: l10n_es_pos_sii adds the inheritance on
  AccountTestInvoicingCommon
- l10n_es_intrastat_report: Direct inheritance.

The solution is to rename these methods to another name.
Steps to reproduce:

- Enable SII in a company with connector with a delay of 48 hours.
- Create and validate an invoice. A job is configured for being executed
  in 48 hours.
- Next day, filter "Not sent to SII", and do Action > Send to SII.

Result: the pending invoices are requeued and the delay is reapplied,
so the invoices will be sent in 48 hours from that moment. Doing this
indefinitely, the invoices will never be sent!

Although it's a weird behavior, let's avoid it not requeuing the
invoices with pending jobs.

For this, a little refactor in the code has been done, not calling
_cancel_sii_jobs, but filtering another way, and not removing previous
failed jobs, which can be considered the only functional change, and
it's not bad IMO.

TT50641
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_sii_oca
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_sii_oca/
Creación de un nuevo modelo en `l10n_es_aeat` llamado *aeat_mixin*, del
que heredan *sii.mixin* (ya existente) y un nuevo *verifactu.mixin*.
Refactor de *sii.mixin* pasando funcionalidad a *aeat_mixin*
Se han renombrado varios campos sii_* a aeat_* ya que serán utilizados
por ambos.
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: l10n-spain-16.0/l10n-spain-16.0-l10n_es_aeat_sii_oca
Translate-URL: https://translation.odoo-community.org/projects/l10n-spain-16-0/l10n-spain-16-0-l10n_es_aeat_sii_oca/
@manuelregidor
Copy link
Contributor Author

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.

Un par de comentarios, antes de revisarlo funcionalmente:

  • En el README (apartado DESCRIPTION) se sigue haciendo referencia al queue_job. Ese punto habría que quitarlo.
  • Puedes poner a Sygel como autores? Hemos hecho un buen refactoring y creo que es justo estar ahí. @pedrobaeza entiendo que no hay problema en ello, no?

Gracias!

@pedrobaeza
Copy link
Member

Estoy de acuerdo con la co-autoría en este caso. Bien es cierto que AuresTIC (cc @zamberjo) por trabajos pasados también la merece.

@manuelregidor
Copy link
Contributor Author

@HaraldPanten Cambios aplicados. En cuanto a los autores, he añadido a Sygel. Si finalmente tengo que añadir a AuresTIC, lo hago en un momento.

@pedrobaeza
Copy link
Member

Incluid por favor #3736

@manuelregidor
Copy link
Contributor Author

@pedrobaeza incluido

@pedrobaeza
Copy link
Member

/ocabot migration l10n_es_aeat_sii_oca

Habría que incluir (adaptando) #3740 para los nuevos impuestos de octubre.

@OCA-git-bot OCA-git-bot added this to the 17.0 milestone Sep 28, 2024
@OCA-git-bot OCA-git-bot mentioned this pull request Sep 28, 2024
46 tasks
@pedrobaeza
Copy link
Member

Para incluir también #3741, y se pueden juntar ambos commits, ya que es un leftover del primero.

pedrobaeza and others added 3 commits September 30, 2024 08:27
Following odoo/odoo@fbc7214, this commit
puts the new taxes on the corresponding SII maps for being able to
send invoices containing them to the AEAT service.

TT51016
@manuelregidor
Copy link
Contributor Author

@pedrobaeza commits añadidos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.