OdooWiki OCA HUB

Stock Account Product Run FIFO Hook

stock_account_product_run_fifo_hook folder_open OCA/stock-logistics-workflow open_in_new
Warehouse Management Licencia: LGPL-3

Este módulo añade puntos de enganche en el proceso de valoración FIFO para aportar más flexibilidad a la información que se almacena y procesa durante los cálculos de candidatos FIFO.

En Odoo 19, la lógica de valoración ha pasado de stock.valuation.layer a stock.move. Este módulo proporciona puntos de extensión para que los módulos personalizados puedan:

  • Acceder a la información de los movimientos candidatos FIFO durante la valoración
  • Enriquecer los movimientos de stock con datos personalizados de los candidatos
  • Controlar la lógica de actualización del precio estándar durante las operaciones FIFO

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Añade puntos de extensión al proceso de valoración de existencias FIFO para que otros módulos puedan enriquecer los datos almacenados en los movimientos de existencias durante la valoración. No añade ninguna pantalla ni menú por sí mismo.

Este es un módulo de base técnica para la valoración de inventario FIFO (primero en entrar, primero en salir) de Odoo. No añade menús, botones, informes ni ajustes que un usuario pueda pulsar; en su lugar, cambia cómo se ejecuta el cálculo del coste FIFO entre bastidores.

Cuando Odoo valora un movimiento de stock de salida usando FIFO, recorre los movimientos de entrada más antiguos (la pila FIFO) y toma valor de ellos. Este módulo envuelve ese cálculo y, para cada movimiento candidato que consume, llama a un paso de preparación (_run_fifo_prepare_candidate_update) en product.product. En el módulo base ese paso no hace nada, pero otros módulos pueden sobrescribirlo para registrar información adicional en el movimiento de stock que se está valorando, como datos personalizados del candidato.

El módulo también mantiene disponible el método FIFO original como _run_fifo_original, de modo que el comportamiento estándar se conserva cuando no hay ninguna extensión instalada. Gestiona cantidades negativas devolviendo la cantidad multiplicada por el precio estándar (o el precio en una fecha dada), y trata cantidades parciales, lotes y valoración en una fecha específica.

En resumen: toca product.product y el flujo de valoración de movimientos de stock desde stock_account, y ofrece a los desarrolladores un hook seguro para personalizar la valoración FIFO sin reescribir todo el método. Los usuarios finales no ven nuevas pantallas; el efecto solo aparece a través de los módulos que usan este hook.

Depende de

stock_account

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.

Fuentes · Odoo 13.0

Confirmado el 2026-11-03 en la rama 13.0 de OCA/stock-logistics-workflow.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0
  • Añade la dependencia de este módulo a tu módulo personalizado:
"depends": ["stock_account_product_run_fifo_hook"],
  • Hereda de product.product en tu módulo personalizado
  • Sobrescribe los métodos hook para añadir lógica personalizada:
  • _run_fifo_prepare_candidate_update(candidate_move, qty_taken, value_taken, valued_move=None) — Se llama para cada candidato FIFO cuando se consume.
  • candidate_move: El movimiento de origen FIFO que se está consumiendo
  • qty_taken: Cantidad consumida de este candidato
  • value_taken: Valor consumido de este candidato
  • valued_move: (obtenido mediante el contexto) El stock move que se está valorando y que consume este candidato Úsalo para capturar la cantidad/valor exactos tomados, crear registros de uso o rastrear relaciones de valoración entre movimientos.

Cuando valued_move se pasa al contexto

El valued_move se pasa al contexto cuando un stock move de salida llama a _set_value() para el costeo FIFO:

# In stock.move._set_value() for FIFO moves:
for move in fifo_moves:
    super(StockMove, move.with_context(valued_move=move))._set_value(
        correction_quantity=correction_quantity
    )

Esto ocurre cuando:

  • Se está valorando un stock move de salida (entrega a cliente, transferencia interna, etc.)
  • El producto utiliza el método de costeo FIFO
  • El sistema necesita consumir candidatos FIFO para determinar la valoración del movimiento

Durante este proceso:

  • Se llama a _run_fifo() para calcular el coste unitario
  • Para cada candidato FIFO consumido, se llama al hook _run_fifo_prepare_candidate_update()
  • El valued_move (el movimiento que se está valorando) está disponible en el contexto
  • Puedes usarlo para vincular el candidato con el movimiento que se está valorando

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.