Como se administran los números de serie y lote

Gustavo Orrillo
- 20/06/2022 - 2 min. de lectura

Odoo permite administrar lotes y números de serie en su inventario. Los lotes se aplican en los procesos de producción, para identificar de forma única varias unidades producidas con una orden de producción. Los números de serie permiten identificar en forma única una unidad de inventario. Esta funcionalidad se habilita por medio de la opción "Lotes y números de serie" en la sección Trazabilidad de la aplicación de Inventarios.



En un producto (tanto en la variante como en el producto mismo), podemos ver en el tab Inventario que hay un campo llamado tracking donde se habilita que seguimiento se le hace al producto; ya sea por número de serie o lotes (o ninguno).


Esto habilita también en las vistas de inventarios (stock.quant) y movimientos de producto (stock.move.line) el campo lot_id




Creación de números de lote

Odoo provee un muy básico (pero no por ello menos efectivo) formulario para la creación de números de serie:


Alcance del número de serie (y donde se debe customizar por parte del integrador)

Odoo brinda las herramientas básicas, la infraestructura para lidiar con números de serie. En pocas palabras, crea el modelo y lo relaciona con el inventario y los movimientos de producto. Por ejemplo, brinda una forma muy elemental de asignar el número de serie.  Este número de serie es generado por default tomando el siguiente valor de la secuencia stock.lot.serial

name = fields.Char(
    'Lot/Serial Number', default=lambda self: self.env['ir.sequence'].next_by_code('stock.lot.serial'),
    required=True, help="Unique Lot/Serial Number", index=True)

Lo cual tiene el siguiente limitante. Muchas veces queremos que cada producto (o categoría de producto) tengan su propia secuencia para la asignación del número de lote.

Las principales limitaciones tienen que ver con automatización. Muchas veces encontramos muchos escenarios en los que se crean números de serie en forma masiva, y dichos números de serie estan relacionados con movimientos de inventario. Por ejemplo un proveedor envía un archivo con cientos de líneas con números de serie pertenecientes a un envío de mercadería (cuando llega el momento de procesar el envío, en forma automática se deben generar dichos números de serie).  Otro ejemplo es una orden de producción que puede generar múltiples números de serie en forma automática (por ejemplo, 100 componentes electrónicos cada uno con su número de serie). Hay muchos escenarios de automatización que Odoo no cubre (porque, como podría anticiparlos?), los cuales requieren de customización. Lo mismo se aplica para el lector de código de barras, el formulario para procesar transferencias en Odoo no es precisamente user-friendly y el ingreso de decenas de números de serie debe realizarse por medio de una aplicación (para ello hay aplicaciones especializadas).

Por último, hay una gran limitante a nivel performance para la generación de números de inventario. Muchas veces se deben crear cientos de números de inventario en una sola pasada. Esto puede ser muy costoso para el ORM de Odoo, es por ello que dicha creación debe realizarse por medio de SQL.

Ahora, como dijimos en párrafos anteriores. Es imposible para Odoo anticipar todos los escenarios donde utilizamos números de serie, es por ello que Odoo brinda la infraestructura necesaria, y es nuestro trabajo entenderla y customizarla para poder resolver nuestras necesidades de inventario. 


Acerca de:

Gustavo Orrillo

Apasionado de la programación, implementa Odoo para distintos tipos de negocios desde el año 2010. En Moldeo Interactive es Socio fundador y Programador; además de escribir en el Blog sobre distintos temas relacionados a los desarrollos que realiza.