Stock en mano y virtual en Odoo

19 de julio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Odoo maneja dos conceptos de stock en sus productos almacenables:

  • Stock en mano: es el stock físico, el real. El que se puede contar. Cuando uno hace un conteo de inventario, es el resultado del mismo. Nunca debe ser negativo porque en la realidad en un almacen o un depósito uno nunca ve un stock negativo (no tenemos menos diez placas en un bin). El stock en mano se incrementa con las operaciones de ingreso o de fabricación; y se decrementa cuando uno realiza operaciones de delivery o scrap
  • Stock virtual: (en Estados Unidos llaman esto creative accounting). es el stock real menos egresos previstos (por ventas) mas ingresos previstos (por orden de fabricación a futuro o por medio de ordenes de compra). Uno puede extender esta funcionalidad para el cálculo del stock virtual, lo que no es recomendable.


El stock virtual es un concepto muy usado en Odoo en las operaciones de venta y por sobre todo de planificación de producción. Es una predicción muy informada sobre el futuro de un producto. Pero para la ejecución, Odoo utiliza siempre el stock real (por eso, imaginense empezar una orden de producción con stock negativo. Que se va a consumir?). Tengan en cuenta que estos conceptos no se aplican por razones más que obvias ni para los números de serie ni para los lotes.


No permitir el stock negativo


Este último punto es fundamental para la administración del inventario. Alguna mente con espíritu entrepeneur en las filas de Odoo pensó que era una buena (y revolucionaria) idea permitir el stock negativo en Odoo (por suerte cuando hacen los ajustes de inventario no se permite). Esto lleva a varios problemas, por ejemplo tener valores de stock negativo (lo que no es muy divertido para un usuario de un depósito). 

El tener stock negativo es demasiado problemático cuando uno trabaja con números de serie, ya que permite que un mismo número de serie esté duplicado en dos ubicaciones diferentes (debido a la falta de control que existe sobre los movimientos). Es más, el no permitir stock negativo es el primer paso a tener un mecanismo de reservación de lotes en Odoo. Para evitar esta situación por suerte hay módulos que lo impíden (hablamos de eso en este post).

Hay usuarios que piensan que deben hacer ajustes para tener stock negativo, y hay algo que estan haciendo mal para pensar eso. El stock virtual puede ser negativo, pero porque el stock virtual es basicamente una proyección no certera sobre el futuro. Si uno necesita un valor negativo en stock, uno tiene que trabajar con stock virtual. No con el stock real.

Anexo técnico


En la variante de producto (el modelo product.product), tenemos dos campos: qty_available (para el stock en mano) y virtual_available (para el stock virtual).  Estos campos se definen en el módulo stock. 

Si necesitan redefinir estos campos, deben reescribir el método _compute_quantities_dict que es donde se leen los quants (modelo stock.quant) para conocer el stock disponible, y los movimientos de ingreso y egreso (modelo stock.move) para conocer el stock virtual. Si miran hacia el fin del método; veremos la definición del stock virtual:



res[product_id]['virtual_available'] = float_round(
qty_available + res[product_id]['incoming_qty'] - res[product_id]['outgoing_qty'],
precision_rounding=rounding)
Gustavo Orrillo 19 de julio de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario