MRP Components Operations

mrp_component_operation
REPOSITORY
REPOSITORYOCA/manufacture
GIT
GIThttps://github.com/OCA/manufacture.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/manufacture/tree/17.0/mrp_component_operation
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYManufacturing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, ThiagoMForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/manufacture
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_restrict_lot
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 operate the components from a MO, being able to
move it to another location or making an scrap and take another from a
desired location and link it to the current MO.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
mrp_production_form_view mrp.production.form mrp.production button Inherits mrp.mrp_production_form_view
stock_location_route_form_view_inherit_mrp_component stock.route.form - mrp.component stock.route xpath Inherits stock.stock_location_route_form_view
view_mrp_component_operate_form view_mrp_component_operate_form mrp.component.operate form New
view_mrp_component_operation_form view_mrp_component_operation_form mrp.component.operation form New
view_mrp_component_operation_search mrp.component.operation.search mrp.component.operation search New
view_mrp_component_operation_tree view_mrp_component_operation_tree mrp.component.operation tree New
Models touched (4)

New fields (9)
  • incoming_operation Selection
    related='operation_id.incoming_operation' required=True
  • lot_id Many2one → stock.lot
    args: 'stock.lot'
  • mo_id Many2one → mrp.production
    ondelete='cascade' required=True args: 'mrp.production'
  • operation_id Many2one → mrp.component.operation
    domain="['|',('picking_type_id', '=', picking_type_id), ('picking_type_id', '=', False)]" required=True args: 'mrp.component.operation'
  • outgoing_operation Selection
    related='operation_id.outgoing_operation' required=True
  • picking_type_id Many2one → stock.picking.type
    args: 'stock.picking.type', 'Operation Type'
  • product_id Many2one → product.product
    required=True args: 'product.product'
  • product_qty Float
    default=1.0 digits='Product Unit of Measure' required=True args: 'Quantity'
  • tracking Selection
    readonly=True related='product_id.tracking' string='Product Tracking'
Public methods (1)
  • action_operate_component(self)

New fields (11)
  • active Boolean
    default=True
  • destination_location_id Many2one → stock.location
    help='The Location where the components are going to be transferred.' args: 'stock.location', 'Destination Location'
  • destination_route_id Many2one → stock.route
    comodel_name='stock.route' domain=[('mo_component_selectable', '=', True)] help='The Route used to transfer the components to the destination location.' string='Destination Route'
  • incoming_operation Selection
    default='no' required=True selection=[('no', 'No'), ('replace', 'Pick Component from Source Route')]
  • manufacture_location_id Many2one → stock.location
    help='The Location where the components are.' args: 'stock.location', 'Manufacture Location'
  • name Char
    help='Component Operation Reference' required=True
  • outgoing_operation Selection
    default='no' required=True selection=[('no', 'No'), ('move', 'Move to Destination Location'), ('scrap', 'Make a Scrap')]
  • picking_type_id Many2one → stock.picking.type
    domain="[('code', '=', 'mrp_operation')]" args: 'stock.picking.type', 'Operation Type'
  • scrap_location_id Many2one → stock.location
    args: 'stock.location', 'Scrap Location'
  • sequence Integer
    help='Gives the sequence order when displaying the list of component operations'
  • source_route_id Many2one → stock.route
    comodel_name='stock.route' domain=[('mo_component_selectable', '=', True)] help='The Route used to pick the components.' string='Source Route'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_operate_components(self)

New fields (1)
  • mo_component_selectable Boolean
    string='Selectable on MO Components'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/manufacture
GIT
GIThttps://github.com/OCA/manufacture.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/manufacture/tree/14.0/mrp_component_operation
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYManufacturing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow
COMMITTERS
COMMITTERSLois Rilo, Weblate, OCA-git-bot, oca-ci, DavidJForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/manufacture
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_move_forced_lot
odoo/odoo:
    - mrp
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - stock
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
mrp_production_form_view mrp.production.form mrp.production button Inherits mrp.mrp_production_form_view
stock_location_route_form_view_inherit_mrp_component stock.location.route.form - mrp.component stock.location.route xpath Inherits stock.stock_location_route_form_view
view_mrp_component_operate_form view_mrp_component_operate_form mrp.component.operate form New
view_mrp_component_operation_form view_mrp_component_operation_form mrp.component.operation form New
view_mrp_component_operation_search mrp.component.operation.search mrp.component.operation search New
view_mrp_component_operation_tree view_mrp_component_operation_tree mrp.component.operation tree New
Models touched (4)

New fields (9)
  • incoming_operation Selection
    related='operation_id.incoming_operation' required=True
  • lot_id Many2one → stock.production.lot
    args: 'stock.production.lot'
  • mo_id Many2one → mrp.production
    ondelete='cascade' required=True args: 'mrp.production'
  • operation_id Many2one → mrp.component.operation
    domain="['|',('picking_type_id', '=', picking_type_id), ('picking_type_id', '=', False)]" required=True args: 'mrp.component.operation'
  • outgoing_operation Selection
    related='operation_id.outgoing_operation' required=True
  • picking_type_id Many2one → stock.picking.type
    args: 'stock.picking.type', 'Operation Type'
  • product_id Many2one → product.product
    required=True args: 'product.product'
  • product_qty Float
    default=1.0 digits='Product Unit of Measure' required=True args: 'Quantity'
  • tracking Selection
    readonly=True related='product_id.tracking' string='Product Tracking'
Public methods (1)
  • action_operate_component(self)

New fields (11)
  • active Boolean
    default=True
  • destination_location_id Many2one → stock.location
    help='The Location where the components are going to be transferred.' args: 'stock.location', 'Destination Location'
  • destination_route_id Many2one → stock.location.route
    comodel_name='stock.location.route' domain=[('mo_component_selectable', '=', True)] help='The Route used to transfer the components to the destination location.' string='Destination Route'
  • incoming_operation Selection
    default='no' required=True selection=[('no', 'No'), ('replace', 'Pick Component from Source Route')]
  • name Char
    help='Component Operation Reference' required=True
  • outgoing_operation Selection
    default='no' required=True selection=[('no', 'No'), ('move', 'Move to Destination Location'), ('scrap', 'Make a Scrap')]
  • picking_type_id Many2one → stock.picking.type
    domain="[('code', '=', 'mrp_operation')]" args: 'stock.picking.type', 'Operation Type'
  • scrap_location_id Many2one → stock.location
    args: 'stock.location', 'Scrap Location'
  • sequence Integer
    help='Gives the sequence order when displaying the list of component operations' string='Sequence'
  • source_location_id Many2one → stock.location
    help='The Location where the components are.' args: 'stock.location', 'Source Location'
  • source_route_id Many2one → stock.location.route
    comodel_name='stock.location.route' domain=[('mo_component_selectable', '=', True)] help='The Route used to pick the components.' string='Source Route'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • button_operate_components(self)

New fields (1)
  • mo_component_selectable Boolean
    string='Selectable on MO Components'
Public methods (0)

No public methods.