OdooWiki OCA HUB

MRP BoM Line formula for quantity

mrp_bom_line_formula_quantity folder_open OCA/manufacture open_in_new
Manufacturing Licencia: AGPL-3

Calcular la cantidad de una línea de producción utilizando una fórmula definida en la línea de la BoM.

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 18.0

Añade un campo de fórmula a las líneas de la lista de materiales para que la cantidad de componente en una orden de fabricación se calcule automáticamente en lugar de ser fija.

Este módulo añade un nuevo campo de texto "quantity formula" a cada línea de componente de una lista de materiales (BoM). En lugar de usar siempre la cantidad fija escrita en la línea de la BoM, puedes escribir un pequeño cálculo que Odoo ejecuta cuando se crea una orden de fabricación, y el resultado se convierte en la cantidad del componente a consumir.

La fórmula puede usar la propia línea de la BoM, la operación donde se consume el componente, el producto del componente, su unidad de medida, la cantidad de la línea de la orden de producción y la orden de producción que se está creando. El resultado debe almacenarse en una variable llamada quantity. Están disponibles ayudas básicas de redondeo (ceil y floor).

Dónde aparece: - En el formulario de la línea de la BoM, justo después del campo de cantidad. - En la lista de componentes dentro del formulario de la BoM.

Reglas de negocio y comportamiento automático: - Cuando guardas una fórmula, Odoo comprueba que sea Python válido y que se ejecute sin errores; de lo contrario, muestra un mensaje de validación y se niega a guardar. - Cuando se genera una orden de fabricación, la cantidad del componente se sustituye por el resultado de la fórmula si se ha establecido una fórmula; si el campo está vacío, se usa la cantidad normal de la BoM.

Afecta a los modelos de la línea de la BoM, la BoM y la orden de fabricación.

Depende de

mrp
Modelos y campos (2)
  • mrp.bom.line · amplía un modelo existentequantity_formula
  • mrp.production · amplía un modelo existente

Texto generado por IA (DeepSeek) al leer el código de la versión 18.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: 2 confirmadas, 7 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/manufacture.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

En cualquier línea de la BoM, rellene el campo Quantity Formula.

Los siguientes valores están disponibles:

  • bom_line: la línea de BoM actual,
  • production: la orden de producción que se está creando,
  • product: el Product de la línea de BoM actual,
  • product_uom_qty: la cantidad de la línea de la orden de producción,
  • product_uom: la UdM del Product de la línea de BoM actual,
  • operation: la operación donde se consumen los componentes para la línea de BoM actual,

La cantidad calculada debe asignarse a la variable quantity.

Este módulo se puede utilizar para personalizar la cantidad de un componente en función de un valor de atributo personalizado seleccionado en el producto. La siguiente configuración funciona cuando el módulo website_sale está instalado.

Para ello, configure de la siguiente manera:

  • Cree un atributo "Component quantity" con un valor personalizado
  • Cree y publique un Producto que tenga el valor personalizado configurado y la ruta MTO (archivada por defecto)
  • Añada una BoM al producto, donde un Componente tenga la siguiente fórmula para la cantidad:
sale_lines = production.move_dest_ids.sale_line_id
produced_template = production.product_tmpl_id
produced_template_sale_line = sale_lines.filtered(lambda l: l.product_template_id == produced_template)
custom_attributes_values = produced_template_sale_line.product_custom_attribute_value_ids.with_context(lang=None)
component_quantity_attribute_value = custom_attributes_values.filtered(
    lambda av: av.custom_product_template_attribute_value_id.attribute_id.name == "Component quantity"
)
component_quantity = component_quantity_attribute_value.custom_value
quantity = int(component_quantity)
  • En el comercio electrónico, seleccione una cantidad para el valor personalizado y compre el producto
  • Confirme la orden de venta

se creará una orden de Producción con el valor seleccionado de Componente

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.

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.