Cuando un número de serie se encuentra reservado?
Un pequeño issue que encontré es no saber cuando un número de serie se encuentra reservado por algún movimiento de stock (algo primordial si uno quiere listar los quants que se pueden transferir de una ubicación a otra). Es por eso que hice el módulo stock_production_lot_reserved. Al instalar el módulo, podremos ver que a la vista lista del modelo stock.production.lot dos campos: is_reserved y reservation_move:
La idea es utilizar este módulo con otros módulos para mover inventario de una ubicación a otra. En futuras modificaciones vamos a agregarle al módulo la información de las transferencias a la que pertenece el movimiento de producto de la reserva, y el soporte de lotes (en este momento el módulo esta pensado para números de serie).
Notas técnicas
Es un módulo sencillo que solo agrega dos campos computados. Ahora con el fin de acelerar el cálculo (y debido a que no quiero extender los movimientos de producto para almacenar la información de la reserva en el número de serie), se busca el número de lote en la tabla de los movimientos de producto (stock_move_line)
def _compute_reservation(self):
for rec in self:
query = """
SELECT id,move_id
FROM stock_move_line
WHERE lot_id = %s
and state not in ('cancel','done')
LIMIT 1
"""
self.env.cr.execute(query, (rec.id,))
result = self.env.cr.dictfetchall()
if result != [] and result[0].get('move_id'):
rec.is_reserved = True
rec.reservation_move = result[0].get('move_id')
else:
rec.is_reserved = False
rec.reservation_move = None
Aca primero definimos el query para que busque el número de serie en la tabla stock_move_line para aquellos movimientos de producto que no esten ni cancelados ni finalizados. Si el query devuelve algún resultado, significa que el número de serie esta reservado. Es por eso que actualizamos el campo is_reserved con el valor verdadero, y actualizamos el campo del movimiento de stock.
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.