MRP Mass Production Order

mrp_mass_production_order
REPOSITORY
REPOSITORYOCA/manufacture
GIT
GIThttps://github.com/OCA/manufacture.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/manufacture/tree/18.0/mrp_mass_production_order
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYManufacturing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), APSL-Nagarro, Antoni Marroig
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), APSL-Nagarro, Antoni Marroig
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/manufacture
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/manufacture:
    - mrp_tag
odoo/odoo:
    - mrp
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create multiple manufacturing orders through a wizard. The wizard have the possiblity to put all manufacturing orders in state done or confirmed.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
wizard_mass_mrp_production_order Mass MRP Production Order mrp.mass.production.order.wizard form New
Models touched (2)

New fields (9)
  • bom_id Many2one → mrp.bom
    compute='_compute_bom_id' domain="[\n '&',\n '|',\n ('product_tmpl_id','=',product_id),\n '&',\n ('product_id.product_tmpl_id.product_variant_ids','=',product_id),\n ('product_id','=',False),\n ('type', '=', 'normal')]" help='Bills of Materials, also called recipes, are used to autocomplete components and work order instructions.' precompute=True readonly=False store=True args: 'mrp.bom', 'Bill of Material'
  • mrp_production_order_entry_id Many2one → mrp.mass.production.order.wizard
    args: 'mrp.mass.production.order.wizard', 'MRP production order entry'
  • product_consumed_id Many2one → product.product
    domain="[('type', 'in', ['consu']), ('id', '!=', product_id)]" args: 'product.product', 'Consumed Product'
  • product_id Many2one → product.product
    domain="[('type', 'in', ['consu'])]" required=True args: 'product.product', 'Manufactured Product'
  • product_qty Float
    default=1 digits='Product Unit of Measure' required=True args: 'Manufactured Quantity'
  • product_uom_category_id Many2one
    related='product_id.uom_id.category_id'
  • product_uom_id Many2one → uom.uom
    compute='_compute_uom_id' domain="[('category_id', '=', product_uom_category_id)]" precompute=True readonly=False required=True store=True args: 'uom.uom', 'Product Unit of Measure'
  • quantity Float
    default=1 digits='Product Unit of Measure' args: 'Consumed Quantity'
  • tag_ids Many2many → mrp.tag
    compute='_compute_tag_ids' precompute=True readonly=False store=True string='Tags' args: 'mrp.tag'
Public methods (0)

No public methods.

New fields (8)
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • location_dest_id Many2one → stock.location
    compute='_compute_locations' domain="[('usage','=','internal')]" help='Location where the system will stock the finished products.' precompute=True readonly=False required=True store=True args: 'stock.location', 'Finished Products Location'
  • location_src_id Many2one → stock.location
    compute='_compute_locations' domain="[('usage','=','internal')]" help='Location where the system will look for components.' precompute=True readonly=False required=True store=True args: 'stock.location', 'Components Location'
  • mrp_production_order_entries One2many → mrp.mass.production.order.entry.wizard
    change_default=True args: 'mrp.mass.production.order.entry.wizard', 'mrp_production_order_entry_id', 'MRP production order entries'
  • picking_type_id Many2one → stock.picking.type
    default=_get_default_picking_type_id domain="[('code', '=', 'mrp_operation')]" required=True args: 'stock.picking.type', 'Operation Type'
  • produce_all Boolean
    default=True help='Check it if all orders have been produced otherwise they will be confirmed'
  • tag_ids Many2many → mrp.tag
    string='Tags' args: 'mrp.tag'
  • with_bom Boolean
    default=True help='Check this if you want to assign a bill of materials, otherwise products by line.'
Public methods (3)
  • action_create(self)
  • get_production_location(self, product_id)
  • onchange_tag_ids(self)
    @api.onchange('tag_ids')
REPOSITORY
REPOSITORYOCA/manufacture
GIT
GIThttps://github.com/OCA/manufacture.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/manufacture/tree/17.0/mrp_mass_production_order
VERSION
VERSION 2.3.0
CATEGORY
CATEGORYManufacturing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), APSL-Nagarro, Antoni Marroig
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), APSL-Nagarro, Antoni Marroig
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, oca-ci, Antoni Marroig Campomar
WEBSITE
WEBSITEhttps://github.com/OCA/manufacture
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/manufacture:
    - mrp_tag
odoo/odoo:
    - mrp
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows to create multiple manufacturing orders through a wizard. The wizard have the possiblity to put all manufacturing orders in state done or confirmed.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
wizard_mass_mrp_production_order Mass MRP Production Order mrp.mass.production.order.wizard form New
Models touched (2)

New fields (9)
  • bom_id Many2one → mrp.bom
    compute='_compute_bom_id' domain="[\n '&',\n '|',\n ('product_tmpl_id','=',product_id),\n '&',\n ('product_id.product_tmpl_id.product_variant_ids','=',product_id),\n ('product_id','=',False),\n ('type', '=', 'normal')]" help='Bills of Materials, also called recipes, are used to autocomplete components and work order instructions.' precompute=True readonly=False store=True args: 'mrp.bom', 'Bill of Material'
  • mrp_production_order_entry_id Many2one → mrp.mass.production.order.wizard
    args: 'mrp.mass.production.order.wizard', 'MRP production order entry'
  • product_consumed_id Many2one → product.product
    domain="[('type', 'in', ['product', 'consu']), ('id', '!=', product_id)]" args: 'product.product', 'Consumed Product'
  • product_id Many2one → product.product
    domain="[('type', 'in', ['product', 'consu'])]" required=True args: 'product.product', 'Manufactured Product'
  • product_qty Float
    default=1 digits='Product Unit of Measure' required=True args: 'Manufactured Quantity'
  • product_uom_category_id Many2one
    related='product_id.uom_id.category_id'
  • product_uom_id Many2one → uom.uom
    compute='_compute_uom_id' domain="[('category_id', '=', product_uom_category_id)]" precompute=True readonly=False required=True store=True args: 'uom.uom', 'Product Unit of Measure'
  • quantity Float
    default=1 digits='Product Unit of Measure' args: 'Consumed Quantity'
  • tag_ids Many2many → mrp.tag
    compute='_compute_tag_ids' precompute=True readonly=False store=True string='Tags' args: 'mrp.tag'
Public methods (0)

No public methods.

New fields (8)
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • location_dest_id Many2one → stock.location
    compute='_compute_locations' domain="[('usage','=','internal')]" help='Location where the system will stock the finished products.' precompute=True readonly=False required=True store=True args: 'stock.location', 'Finished Products Location'
  • location_src_id Many2one → stock.location
    compute='_compute_locations' domain="[('usage','=','internal')]" help='Location where the system will look for components.' precompute=True readonly=False required=True store=True args: 'stock.location', 'Components Location'
  • mrp_production_order_entries One2many → mrp.mass.production.order.entry.wizard
    change_default=True args: 'mrp.mass.production.order.entry.wizard', 'mrp_production_order_entry_id', 'MRP production order entries'
  • picking_type_id Many2one → stock.picking.type
    default=_get_default_picking_type_id domain="[('code', '=', 'mrp_operation')]" required=True args: 'stock.picking.type', 'Operation Type'
  • produce_all Boolean
    default=True help='Check it if all orders have been produced otherwise they will be confirmed'
  • tag_ids Many2many → mrp.tag
    string='Tags' args: 'mrp.tag'
  • with_bom Boolean
    default=True help='Check this if you want to assign a bill of materials, otherwise products by line.'
Public methods (3)
  • action_create(self)
  • get_production_location(self, product_id)
  • onchange_tag_ids(self)
    @api.onchange('tag_ids')