Skip to content

13.0 mig l10n es account invoice sequence#1208

Closed
emagdalenaC2i wants to merge 49 commits intoOCA:13.0from
Change2improve:13.0-mig-l10n_es_account_invoice_sequence
Closed

13.0 mig l10n es account invoice sequence#1208
emagdalenaC2i wants to merge 49 commits intoOCA:13.0from
Change2improve:13.0-mig-l10n_es_account_invoice_sequence

Conversation

@emagdalenaC2i
Copy link

No description provided.

Pedro M. Baeza and others added 30 commits October 18, 2019 22:34
…cia de factura y la del asiento. Sustituye al antiguo nan_account_invoice_sequence.
…tá asignada a un diario como secuencia de factura.
…ntenido del campo internal_number.

[IMP] l10n_es_account_invoice_sequence: PEP8 y convenciones v7.
…ura ocultado cuando el diario no es del tipo adecuado.
[MIG] Eliminados módulos no migrados a v7
* Tests
* Asigna la misma secuencia para la factura y el asiento
* Nueva API
* al cancelar y validar una factura se le asigna otro numero
* with_context, quitar browse e 'internal_number' solo si se necesita
* Cuando Valida -> Cancela -> Valida no se asigna correctamente el num. asiento contable
* Permitir eliminar facturas en borrador o canceladas
* Descripción del módulo ampliada y extraída a RST
…tandard Odoo for invoice numbering

Restore default behaviour on unlink too
* Full tests
* All flows covered
* Journal fix on install
…ectly for first use

Odoo has included the possibility of changing first invoice number when there's no other
invoices in the system. With this patch, the number is get and set correctly.
@pedrobaeza
Copy link
Member

@meigallodixital Si quieres ir hacia esta versión y no se avanza lo que te interesa, tienes 2 opciones:

  1. Migrarlos tú mismo y lo deseable de que contribuyas con dichas migraciones en la comunidad.
  2. Financiar a alguien para que lo haga.

Si no, se avanzará esto según los intereses de aquellos que lo contribuyan, lo que normalmente no tiene una planificación estricta.

@jalzaga
Copy link
Contributor

jalzaga commented Jan 27, 2020

Personalmente, y ya lo he manifestado en ocasiones anteriores, este módulo es innecesario y aleja el entorno del estándar de Odoo. Odoo te garantiza la secuencia de facturas sin huecos. Tampoco creo necesaria la renumeración de asientos, como mucho, para los más puristas, podría añadirse un número de secuencia para el libro diario.

@meigallodixital
Copy link

@pedrobaeza Este cambio creo que es demasiado crítico para que alguien fuera de los que llevais l10n_spain o tenga muy claros los procesos internos de facturación/contabilidad de Odoo lo migre como bien comentais al principio del hilo.

Es más creo que es más un tema de decidir una estructura que no afecte al resto como la que propone @anajuaristi que técnico/programación/migración. Si se decide una forma y no es muy compleja podría intentar migrarlo a ver si soy capaz.

Respecto a lo de liberar siempre lo hago, de hecho le empezaría a atacar a la parte de operating_unit desde ya, al menos la parte funcional, si esto y el account de operating_unit estuviesen listos.

@meigallodixital
Copy link

Personalmente, y ya lo he manifestado en ocasiones anteriores, este módulo es innecesario y aleja el entorno del estándar de Odoo. Odoo te garantiza la secuencia de facturas sin huecos. Tampoco creo necesaria la renumeración de asientos, como mucho, para los más puristas, podría añadirse un número de secuencia para el libro diario.

Ahora el problema de 13.0 es más que número de factura y asiento es el mismo campo y en españa no es así, no se corresponden per se. no se si con lo que propones se arreglaría, no se si es solución parecida a la que comenta @anajuaristi

@acysos
Copy link
Member

acysos commented Feb 16, 2020

No me gusta entrar en estos debates porque al final cada asesor dice una cosa, pero al menos yo suelo sustentarme en el BOE, no solo en buenas prácticas o costumbres.

Vamos por pasos, la ley obliga a que las facturas sean correlativas, esto en principio manteniendo una secuncia separada por cada diario de facturación con Odoo estandar no sería un problema aunque no se usa doble secuencia, ya que cada diario tendría su secuencia única sin huecos:
https://www.boe.es/diario_boe/txt.php?id=BOE-A-2012-14696
https://www.boe.es/buscar/doc.php?id=BOE-A-2016-11575

Pero que sucede con el registro mercantil del libro diario. El BOE dice "Todo empresario deberá llevar una contabilidad ordenada, adecuada a la actividad de su empresa que permita un seguimiento cronológico de todas sus operaciones, así como la elaboración periódica de balances e inventarios. Llevará necesariamente, sin perjuicio de lo establecido en las Leyes o disposiciones especiales, un libro de Inventarios y Cuentas anuales y otro Diario"
https://www.boe.es/buscar/act.php?id=BOE-A-1885-6627

Este BOE no dice especificamente que tengán que tener númeración única correlativa todo los apuntes. Por lo tanto, podría no ir en contra de la ley, usar una sola secuencia y no realizar este desarrollo. Pero cual es la realidad, sobre todo en las empresas obligadas a auditoria externa, que lo primero que piden es el libro diario numerado en orden cronológico, no multiples numeraciones. Esto nos obliga a tener una secuencia por asiento y otra por factura, ya que la facutra no puede cambiarse.

Odoo puede ir por un camino, pero no tiene porque ser la realidad o correcto, de hecho no es la primera vez que sucede un caso similar.

Un último tema, aunque ya ajeno a Odoo, todos softwares, incluidos los grandes ERPs que no son Odoo, tienen renumeración de asientos, pero si no tenemos doble secuencia no podemos hacerlo, ya que sobre escribiriamos las secuencias de las facturas que no es legal.

@rafaelbn
Copy link
Member

Buenos días:

Lo primero que pienso es que al tener un cambio tan importante en v13 con las desaparición de las facturas y esto afectar tanto a localización española creo que deben opinar/intervenir más personas como ya se hizo en v11 cuando se decidió suprimir el cierre de año contable y cambiar en base a eso los informes del PGCE.

Pensad que este cambio se hace ahora en v13 (aunque muchos no la estéis implantando) pero ya será para "siempre" (v14, etc..)

@omar7r @JordiBForgeFlow @angelmoya @carlosdauden @rlizana @misern2 @emagdalenaC2i @albertgafic @santiarg ...

Gracias @acysos por estos datos.

"La ley obliga a que las facturas sean correlitvas".

Bromas a parte. Tenemos:

  • Cumplir con la legalidad (fácil). Ignacio lo que pide el registro mercantil se saca igual con este módulo que sin este módulo.
  • Gestionar el cambio con los clientes (misión imposible 😄 )
  • Consistencia de datos al migrar de v12 (o anteriores) a v13. (esto para mi es lo más importante)
  1. Este módulo podía haber no existido nunca y no habría pasado nada. Lo que habría pasado es que a la hora de sacar un informe de Libro diaro, etc.. hubiera sido de otra forma
  2. Ahora mismo cualquier cliente en v12 o anteriores tiene en su base de datos número de asiento y número de factura y esto a Odoo no le afecta porque sus números de factura eran sus números de asiento. Pero para toda base de datos de Odoo con este módulo hay que coger el número de facturar y moverlo al campo de número de asiento para consistencia de Odoo. Esto significa que se pierden los números de asientos de años anteriores pero no lo veo un problema porque eso se saca en cualquier momento dado lo que hace account_renumber es trivial y se puede hacer siempre.
  3. El problema hay que resolverlo para la multi-compañia en diferentes países. El instalar este módulo suponía en en la compañía de UK y otros países esto no era necesario, incluso podía ser contraproducente porque un cantable en otro país no entiende por qué el número de factura no es el número de asiento.

A ver si podemos aportar todos ideas y comentarios para sacar conclusiones.

A priori mi opinión es:

  • Discontinuar este módulo 👍
  • Gestionar la migración de version sin este módulo 👍
  • Adaptar informes para poder sacar Libro de inventarios 👍

Gracias

@jalzaga
Copy link
Contributor

jalzaga commented Feb 22, 2020

Mi opinión ya la conocéis, no soy partidario de usar el módulo, nunca lo he instalado en ningún cliente.
Respecto a la migración, pondría el número de factura en el número de asiento, después de todo el número de asiento de la factura es un número inventado, o recalculado.
Estoy convencido de que se puede presentar el libro diario en el registro con los números de asiento de Odoo siempre que se ordenen por fecha. Corregidme si me equivoco. En cualquier caso, como ya dije anteriormente, para los que quieran mantener esa numeración única, se podría añadir un número de secuencia para el registro a cada asiento y calcularlo a final de año. Habría que adaptar en ese caso el informe del libro diario. En la migración el número de asiento se guardaría en ese campo.
Una cosa más relativa a la migración, si el módulo está instalado en versiones anteriores, es necesario ajustar los diarios porque generalmente están parametrizados para que todos usen la misma secuencia.

@anajuaristi
Copy link
Contributor

Buenas
Por mi parte creo que añadir una secuencia aparte, no impacta en nada al standar ni a ninguna otra cosa. Permitiría renumerar y también permitiría que quien quiera lo use y quien no, no.
Los informes, no veo cómo se puede sacar la numeración correlativa sin que exista el campo, pero si se puede, entonces, no haría falta.
Quizás por mantener la compatibilidad hacia atrás y por evitar los consabidos conflictos de resistencia al cambio con los contables y clientes, mi voto sería crear la secuencia, como ya dije antes.
Ya direis

@anajuaristi
Copy link
Contributor

anajuaristi commented Feb 24, 2020

@jalzaga el problema es el cambio de modelo. Hasta la V12 existía account.invoice (con su número de factura) y account.move (con su número de asiento). Por tanto, aún sin la instalación del módulo podíamos decir que teníamos de base al menos 2 campos diferentes, a pesar de que Odoo standar llevaba el número de factura al número de asiento. Nuestro módulo account_invoice_sequence, permitía tener una numeración secuencial diferente para account.move (correlativa independientemente del diario del que proviene el asiento y por tanto distinta del número de factura)

El problema es que ahora account.invoice NO EXISTE MAS. Es decir, el modelo como tal ha desaparecido, por tanto, ya de base no tienes 2 campos, tienes uno único. Es decir, la secuencia de account.move y listo. No hay más. Esta secuencia se calcula según el diario en el que se registre el asiento y por tanto, ya no existirá más una secuencia correlativa independiente del diario, a no ser que añadamos una nueva.
Y he aquí el conflicto. Si el informe general, permite presentar los libros, con una secuencia numerada en fecha, correlativa SIN añadir el campo, pues ya estaría solucionado y el módulo no sería necesario. Ahora bien, habría que asegurar de alguna forma que cada vez que se imprime o se exporta, se imprima lo mismo y es lo que no veo cómo hacer, si el campo no está en bbdd. Pero los técnicos sois vosotros. Así que igual se me escapa algo.
Ya diréis.

@HaraldPanten
Copy link
Contributor

Por lo que comenta @rafaelbn y @jalzaga , parece claro que no es obligatorio SÍ o SÍ. O, al menos, no hay una normativa que obligue a ello específicamente. De este modo, no veo la necesidad de que sea un "STOPPER" de cara a avanzar en la localización española. Tengamos en cuenta, también, que la decisión que se tome ahora se deberá seguir en versiones posteriores, V14 y futuras... Por lo menos a mi entender.

Aún así, como dice @anajuaristi ; el hecho de mantenerlo no supondría un gran problema. Dependerá en todo caso de cada implantador/cliente ya que podemos encontrarnos con todos los gustos/necesidades como hasta ahora. De este modo, también cubriríamos los casos de uso comentados por @acysos en comparación con otros softwares, Odoo seguiría siendo polivalente y se potenciaría la herramienta. En todo caso, valdría la pena evaluar los pros y contras (complejidad de adaptación/tiempo a invertir/beneficios) y si debe ser un punto crítico en el cual invertir los esfuerzos de la Comunidad. Para mí no lo es, sino que lo entiendo como una mejora, más bien.

De optar por mantenerlo (o no), se debería analizar de dónde venimos (versiones anteriores) para tener en cuenta las migraciones en los casos que se estuviera utilizando (o no) debido al cambio de modelo, etc.

Gracias.

@anajuaristi
Copy link
Contributor

Eso es +1 @HaraldPanten
Otra cosa que quizás deberíamos evaluar es, qué otros informes aparte del diario general, históricamente utilizaban la secuencia de asiento tal cual la conocemos porque todos los informes que lo usen así tendrán que ser modificados si no incluimos la secuencia.
¿Alquien podría dar el dato de cuántos se verían afectados si se quita?

@angelmoya
Copy link
Member

Comento porque me habéis nombrado, pero la verdad que tengo ninguna opinión firme ni a favor ni en contra.

Discontinuar el módulo y usar el estándar lo veo bien.

Si no me he perdido, se comenta que no se tenga la secuencia única almacenada, y ese número único se saque en el informe de diario general.

Pero también es verdad que si el número que te de el diario no queda almacenado en el asiento funcionalmente cumple, pero a nivel usuario no creo que estén muy conformes.

Si por otro lado estamos pensando en crear una secuencia que quede almacenada en el asiento (independiente del diario) y que se renumere, entonces estamos rehaciendo la doble secuencia, y la renumeración de la secuencia estándar ya está en OCA.

@anajuaristi
Copy link
Contributor

anajuaristi commented Feb 24, 2020 via email

@angelmoya
Copy link
Member

Por eso digo @anajuaristi

  • si se crea una secuencia para el asiento, el módulo de renumeración que hay no vale, y hay que crear otro.
  • si se migra el módulo que ya hay y se crea la secuencia de factura, el módulo de renumeración si vale.
  • si no se añade la secuencia hay que sacar ese número único de secuencia de asiento desde la impresión del diario general.

Creo que lo mas correcto es lo último, no crear ninguna secuencia y tirar de la impresión para tener esa secuencia única... pero es lo menos claro desde el punto de vista del usuario.

@misern2
Copy link
Contributor

misern2 commented Feb 24, 2020

Buenas,
Por mi parte yo no migraría el módulo y utilizaría el número único del asiento.
El tema de añadir o no la secuencia al modelo no es el problema. Esto es una tarea sencilla y no requiere mucho esfuerzo. El problema es que si queremos aprovechar todo el motor de informes financieros siempre tendremos que tener en cuenta esta doble secuencia y puede ser un pequeño dolor de cabeza.

Es cierto que desde el punto de vista del usuario lo va a tener menos claro, pero ya hemos echo muchas veces pedagogía para reconducir al usuario a la forma en que trabaja el sistema 😄 . Lo mismo pasó con las cuentas contables de cliente/proveedor y recientemente con el cierre del ejercicio.

@rlizana
Copy link
Contributor

rlizana commented Feb 24, 2020

Lo que está claro es que ahora el número de asiento contable corresponde a la secuencia del diario y eso debe de seguir igual. Lo que estamos debatiendo es como llevar la gestión de la numeración de los asientos contables para realizar el libro diario.

Solo hay dos opciones:

  1. Añadir campo "Número de asiento contable", una secuencia por compañia y un asistente para renumerar.
  2. Sin campo, ni secuencia, ni asistente y calcularlo en la impresión del informe de forma automática.

Yo me decanto por la opción "Sin campo":

  • El número de asiento contable solo es necesario para el libro de diario, ¿alguien conoce otro caso en el que sea necesario?
  • Seguridad. Cuando un contable genere el libro de diario se realizará conforme a la ley sin necesidad de renumerar y sin posibilidad de equivocaciones.
  • No requiere ningún mantenimiento a futuro.
  • No supone un problema en migraciones de 12 a la 13. En la 13 desaparece el dato pero como la contabilidad debe de estar correcta el número coincidirá.
  • Migración más rápida, no es necesario migrar ni l10n_es_account_invoice_sequence ni account_renumber, solo afecta al informe del libro de diario.
  • Tema explicación a los usuarios lo veo fácil:
    • "el número de asiento contable se calcula de forma automática para ahorrarte el proceso de renumerar y para evitar que generes libros de diario no conformes a la ley por equivocación".
    • "para referenciar el asiento a otro compañero lo podrás seguir haciendo, pero de forma mejorada, con la secuencia del diario donde además te da información del diario al que pertenece"

@angelmoya
Copy link
Member

Muy bien explicado @rlizana , a mí me has convencido

@jalzaga
Copy link
Contributor

jalzaga commented Feb 25, 2020

Me parece bien la propuesta de @rlizana , no obstante, yo dejaría la numeración secuencial en el libro diario como opción, pudiendo dejar la secuencia original de Odoo. El problema fundamental de usar una numeración distinta en el diario es que, en caso de requerir la búsqueda de los asientos del libro diario en Odoo por una auditoría, no se referencian directamente.

@rlizana
Copy link
Contributor

rlizana commented Feb 25, 2020

@jalzaga aparezca o no la numeración secuencial siempre debe de aparecer el número del diario, para que se puedan referenciar al asiento.

@alexayllon
Copy link

Si aparecen las dos numeraciones por mi "sin campo" Ok, creo que lo simplificamos

@jalzaga
Copy link
Contributor

jalzaga commented Feb 25, 2020

@rlizana Sí, pero en el libro diario oficial solo hay un número de asiento, no puedes poner dos. El que quiera el número secuencial para el asiento podría seleccionarlo como opción, si no se eligiese esta opción aparecería solo el número de secuencia de cada diario, eso sí, siempre ordenado por fecha.
Creo que si alguien eligiese la opción del número secuencial para el diario, habría que guardarlo en cada asiento para poder buscarlo si se precisase en una auditoría que partiese del libro diario oficial.

@rlizana
Copy link
Contributor

rlizana commented Feb 25, 2020

¿@jalzaga conoces algún enlace oficial o BOE donde se especifique el formato exacto?

@AaronHForgeFlow
Copy link
Contributor

No estoy muy metido en la localización y quizás no estoy entendiendo el problema. Con poner la secuencia "l10n_es_account_invoice_sequence.sequence_spanish_journal" en todos los journal de facturas no sería suficiente?

Con Odoo normal, en caso de cancelar una factura, ésta ya no aparecería en el libro de diario. Con lo cual habría un salto en la secuencia de factura. Pero ésto también pasa si tienes el módulo instalado, porque la secuencia avanza irremediablemente (y tiene sentido porque después de cancelarla se puede reconfirmar). Ésto también pasa en la versión 12.

La idea entonces es renumerar a la hora de generar el informe? Sólo el general ledger? No parece que eso sea más sencillo que migrar el módulo, porque están los OCA financial reports y los mis builder. Cómo se ha hecho hasta ahora?

Gracias anticipadas por las respuestas.

@HaraldPanten
Copy link
Contributor

Hola @AaronHForgeFlow ,

Sobre este aspecto, en el Codesprint en remoto de mayo se llegó a una conclusión con @ValentinVinagre y @pedrobaeza para gestionarlo de otra forma.

Tengo pendiente abrir una issue explicando la metodología que se va a sugerir, ya que finalmente lo que se vio más viable era cambiar algún aspecto del account_financial_report para contemplar los casos de uso de los que hablamos en este PR, etc.

Yo no te sabría decir si la propuesta cubre lo que buscamos. Aún así, puede que tu aportación sea una alternativa válida.

A la espera de opiniones 😉

@JordiBForgeFlow
Copy link
Member

Siempre he visto horrible la opción de renumerar asientos. El principal problema es que pierdes la referencia al asiento. Imagina que estas discutiendo sobre un determinado asiento con un compañero o con Hacienda, y.. zas! Al dia siguiente ese número de asiento ya no es el mismo, y ya no puedes encontrar el original. Esto es un fallo garrafal que no veo que se comente.

En mi opinión, si la ley requiere ordenar el libro diario por fecha, así se está haciendo. Si requiere un número correlativo, se puede extender el 'account_financial_report' en un modulo l10n_es.., para generar, al vuelo, un número correlativo, ahora que los de @ForgeFlow lo hemos dejado bien limpio en v13. En el informe siempre aparecería el número de asiento, por si quieres seguir la referencia a través de otros informes. Y si esto no es del gusto del señor inspector, porque no es cómodo... pues se le dice que la otra opción generaba pérdida de información y es la mejor que se nos ha ocurrido.

@acysos SAP no permite renumerar asientos contables.

En la migración de l10n_es debemos incorporar un script que mueva los números de factura antigo al número de asiento.

@ValentinVinagre @HaraldPanten @pedrobaeza entiendo que compartís la conclusión. Para ir avanzando, @AaronHForgeFlow va a implementar esta migración.

@pedrobaeza
Copy link
Member

Sí, ésa fue la conclusión: la de generar el número en el libro diario al vuelo, y script de migración en OpenUpgrade. Por cierto, voy a cerrar este PR ya.

@pedrobaeza pedrobaeza closed this Aug 6, 2020
@HaraldPanten
Copy link
Contributor

Prometo no tardar en crear issue de debate sobre el tema para llegar a una conclusión y ponernos manos a la obra! 🙏

@AaronHForgeFlow
Copy link
Contributor

script de migración propuesto: OCA/OpenUpgrade#2391

@emagdalenaC2i emagdalenaC2i deleted the 13.0-mig-l10n_es_account_invoice_sequence branch August 6, 2020 21:09
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.