Saltar al contenido

Uso y creación de secuencias

Cada secuencia en Odoo tiene:

✓ Prefijo/Sufijo

Ej: “INV/” + “/2023”.

📌 📘 ARTÍCULO TÉCNICO
Relleno (

📘 ARTÍCULO TÉCNICO
Relleno (padding): Número de dígitos (ej: 0001 usa padding=4).

💡 Incremento

Paso (por defecto 1).

Las secuencias pueden ser creadas por código o manuales, para crearlas manuales se debe ingresar al menú Ajustes -> Técnico -> Secuencias -> Secuencias.

Los atributos de las secuencias funcionan de la siguiente forma:

  • Código de la secuencia: Identificador único para referenciar la secuencia desde código Python u otros modelos. Debe ser único en la base de datos y se utiliza para llamar a la secuencia con el método next_by_code().
  • Prefijo: Texto estático o dinámico que se añade al inicio del número generado. Ejemplo: PER o PER/%(year)s/.
  • Sufijo: Texto estático o dinámico que se añade al final del número. Ejemplo: /%(month)s (mes actual en formato 01-12).
  • Tamaño de la secuencia: Número de dígitos que se rellena con ceros a la izquierda. Por ejemplo, si el tamaño es 4, el número obtenido sería 0004.
  • Paso: Incremento entre dos números consecutivos. Por defecto, se usa 1 para obtener números consecutivos, pero puede configurarse para generar secuencias separadas por 2 números o más. Si el paso es 2, la secuencia sería: 0001, 0003, 0005.
  • Uso de subsecuencias por date_range: Crea sub-secuencias independientes por período (año, mes, etc.). Ideal para reiniciar conteos anuales. Por ejemplo:

    • Secuencia del año 2023: INV/2023/0001, INV/2023/0002.

    • Al cambiar al año 2024: INV/2024/0001.
  • Implementación: Existen dos métodos de implementación:

    • Estándar: Almacena el contador en la base de datos y se utiliza en modelos con poca actividad. Odoo incrementa el valor de number_next sin bloqueos estrictos, lo que podría ocasionar que, si dos procesos solicitan un número simultáneamente, se generen duplicados o saltos en la secuencia.

    • Sin espacios (no_gap): Garantiza que no haya saltos entre números, usando bloqueos de base de datos hasta que se complete la transacción.

Ejemplo para crear secuencias:

Para obtener la secuencia dentro de un modelo en Odoo, se usa el siguiente código:

Para crear una secuencia con rango de fechas, el XML debe ser definido con date_range_ids.

Si tiene dudas, no dude en ponerse en contacto con nosotros a través del correo: info@exdoo.mx.

¿Te gustaría implementar Odoo en tu empresa?

12 años de experiencia · +60 implementaciones exitosas · Partner Gold de Odoo en México

Hablemos por WhatsApp