| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/13.0/mrp_production_request |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, mreficent, Lois Rilo, Yann Papouin, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Chandresh Thakkar |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - base_setup - web - bus - web_tour - uom - stock - barcodes - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | xpath | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
domain=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom_id.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date_planned_finished
Datetime
copy=False
default=fields.Datetime.now
index=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline End'
date_planned_start
Datetime
copy=False
default=fields.Datetime.now
index=True
required=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline Start'
description
Text
done_qty
Float
compute='_compute_manufactured_qty'
digits='Product Unit of Measure'
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute='_compute_manufactured_qty'
digits='Product Unit of Measure'
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
move_dest_ids
One2many → stock.move
comodel_name='stock.move'
inverse_name='created_mrp_production_request_id'
string='Stock Movements of Produced Goods'
mrp_production_count
Integer
compute='_compute_mrp_production_count'
string="MO's Count"
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
readonly=True
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
orderpoint_id
Many2one → stock.warehouse.orderpoint
comodel_name='stock.warehouse.orderpoint'
string='Orderpoint'
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute='_compute_manufactured_qty'
digits='Product Unit of Measure'
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Picking Type'
procurement_group_id
Many2one → procurement.group
comodel_name='procurement.group'
copy=False
string='Procurement Group'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
default=1.0
digits='Product Unit of Measure'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
propagate
Boolean
help='If checked, when the previous move of the move (which was generated by a next procurement) is cancelled or split, the move generated by this move will too'
args: 'Propagate cancel and split'
requested_by
Many2one → res.users
comodel_name='res.users'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
action_view_mrp_productions(self)
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
date_planned_finished
Datetime
required=True
string='Deadline End'
date_planned_start
Datetime
required=True
string='Deadline Start'
mo_qty
Float
digits='Product Unit of Measure'
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits='Product Unit of Measure'
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom_id
Many2one
related='mrp_production_request_id.product_uom_id'
compute_product_line_ids(self)
create_mo(self)
default_get(self, fields)
available_qty
Float
compute='_compute_available_qty'
digits='Product Unit of Measure'
string='Quantity Available'
bottle_neck_factor
Float
compute='_compute_bottle_neck_factor'
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits='Product Unit of Measure'
required=True
string='Quantity Required'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
required=True
string='UoM'
No public methods.
mrp_production_request
Boolean
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
created_mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
string='Created Production Request'
create(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/12.0/mrp_production_request |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Lois Rilo, Yann Papouin, OCA Transbot, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - decimal_precision - base_setup - web - bus - web_tour - uom - stock - barcodes - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | field | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
domain=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom_id.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date_planned_finished
Datetime
copy=False
default=fields.Datetime.now
index=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline End'
date_planned_start
Datetime
copy=False
default=fields.Datetime.now
index=True
oldname='date_planned'
required=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline Start'
description
Text
done_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
move_dest_ids
One2many → stock.move
comodel_name='stock.move'
inverse_name='created_mrp_production_request_id'
string='Stock Movements of Produced Goods'
mrp_production_count
Integer
compute='_compute_mrp_production_count'
string="MO's Count"
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
readonly=True
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
orderpoint_id
Many2one → stock.warehouse.orderpoint
comodel_name='stock.warehouse.orderpoint'
string='Orderpoint'
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Picking Type'
procurement_group_id
Many2one → procurement.group
comodel_name='procurement.group'
copy=False
string='Procurement Group'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
default=1.0
digits=dp.get_precision('Product Unit of Measure')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
propagate
Boolean
help='If checked, when the previous move of the move (which was generated by a next procurement) is cancelled or split, the move generated by this move will too'
args: 'Propagate cancel and split'
requested_by
Many2one → res.users
comodel_name='res.users'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
action_view_mrp_productions(self)
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
date_planned_finished
Datetime
required=True
string='Deadline End'
date_planned_start
Datetime
required=True
string='Deadline Start'
mo_qty
Float
digits=dp.get_precision('Product Unit of Measure')
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits=dp.get_precision('Product Unit of Measure')
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom_id
Many2one
related='mrp_production_request_id.product_uom_id'
compute_product_line_ids(self)
create_mo(self)
default_get(self, fields)
available_qty
Float
compute='_compute_available_qty'
digits=dp.get_precision('Product Unit of Measure')
string='Quantity Available'
bottle_neck_factor
Float
compute='_compute_bottle_neck_factor'
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity Required'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
required=True
string='UoM'
No public methods.
mrp_production_request
Boolean
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
created_mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
string='Created Production Request'
create(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/11.0/mrp_production_request |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Lois Rilo, OCA Transbot, oca-travis, Weblate, OCA-git-bot, hveficent |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - decimal_precision - base_setup - web - bus - web_tour - stock - barcodes - web_planner - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | field | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
domain=<expr>
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom_id.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=_company_get
required=True
string='Company'
date_planned_finished
Datetime
copy=False
default=fields.Datetime.now
index=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline End'
date_planned_start
Datetime
copy=False
default=fields.Datetime.now
index=True
oldname='date_planned'
required=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline Start'
description
Text
done_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
move_dest_ids
One2many → stock.move
comodel_name='stock.move'
inverse_name='created_mrp_production_request_id'
string='Stock Movements of Produced Goods'
mrp_production_count
Integer
compute='_compute_mrp_production_count'
string="MO's Count"
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
readonly=True
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
orderpoint_id
Many2one → stock.warehouse.orderpoint
comodel_name='stock.warehouse.orderpoint'
string='Orderpoint'
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute='_compute_manufactured_qty'
digits=dp.get_precision('Product Unit of Measure')
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Picking Type'
procurement_group_id
Many2one → procurement.group
comodel_name='procurement.group'
copy=False
string='Procurement Group'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
default=1.0
digits=dp.get_precision('Product Unit of Measure')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom_id
Many2one → product.uom
comodel_name='product.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
propagate
Boolean
help='If checked, when the previous move of the move (which was generated by a next procurement) is cancelled or split, the move generated by this move will too'
args: 'Propagate cancel and split'
requested_by
Many2one → res.users
comodel_name='res.users'
default=_get_default_requested_by
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
action_view_mrp_productions(self)
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
mo_qty
Float
digits=dp.get_precision('Product Unit of Measure')
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits=dp.get_precision('Product Unit of Measure')
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom_id
Many2one
related='mrp_production_request_id.product_uom_id'
compute_product_line_ids(self)
create_mo(self)
default_get(self, fields)
available_qty
Float
compute=_compute_available_qty
digits=dp.get_precision('Product Unit of Measure')
string='Quantity Available'
bottle_neck_factor
Float
compute=_compute_bottle_neck_factor
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity Required'
product_uom_id
Many2one → product.uom
comodel_name='product.uom'
required=True
string='UoM'
No public methods.
No new fields.
Public methods (0)No public methods.
mrp_production_request
Boolean
default=False
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
created_mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
string='Created Production Request'
create(self, vals)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/10.0/mrp_production_request |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | Lois Rilo, Jordi Ballester Alomar, OCA Transbot, Florian da Costa, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - decimal_precision - base_setup - web_kanban - web - bus - web_tour - report - stock - procurement - barcodes - web_planner - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | field | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
procurement_form_view |
procurement.order.form - mrp_production_request | procurement.order | xpath | Inherits procurement.procurement_form_view |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom_id.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=_company_get
required=True
string='Company'
date_planned_finished
Datetime
copy=False
default=fields.Datetime.now
index=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline End'
date_planned_start
Datetime
copy=False
default=fields.Datetime.now
index=True
oldname='date_planned'
required=True
states={'confirmed': [('readonly', False)]}
args: 'Deadline Start'
description
Text
done_qty
Float
compute=_compute_manufactured_qty
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute=_compute_manufactured_qty
digits=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
readonly=True
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute=_compute_manufactured_qty
digits=dp.get_precision('Product Unit of Measure')
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Picking Type'
procurement_group_id
Many2one → procurement.group
comodel_name='procurement.group'
copy=False
string='Procurement Group'
procurement_id
Many2one → procurement.order
comodel_name='procurement.order'
readonly=True
string='Procurement Order'
procurement_ids
One2many → procurement.order
comodel_name='procurement.order'
inverse_name='mrp_production_request_id'
string='Related Procurements'
procurement_state
Selection
readonly=True
related='procurement_id.state'
store=True
string='Procurement State'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
digits=dp.get_precision('Product Unit of Measure')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom_id
Many2one → product.uom
comodel_name='product.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
propagate
Boolean
help='If checked, when the previous move of the move (which was generated by a next procurement) is cancelled or split, the move generated by this move will too'
args: 'Propagate cancel and split'
requested_by
Many2one → res.users
comodel_name='res.users'
default=_get_default_requested_by
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
mo_qty
Float
digits=dp.get_precision('Product Unit of Measure')
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits=dp.get_precision('Product Unit of Measure')
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom_id
Many2one
related='mrp_production_request_id.product_uom_id'
compute_product_line_ids(self)
create_mo(self)
default_get(self, fields)
available_qty
Float
compute=_compute_available_qty
digits=dp.get_precision('Product Unit of Measure')
string='Quantity Available'
bottle_neck_factor
Float
compute=_compute_bottle_neck_factor
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity Required'
product_uom_id
Many2one → product.uom
comodel_name='product.uom'
required=True
string='UoM'
No public methods.
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
string='Manufacturing Request'
propagate_cancels(self)
mrp_production_request
Boolean
default=False
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
No new fields.
Public methods (1)create(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/9.0/mrp_production_request |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, oca-travis, Weblate, lreficent |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - decimal_precision - base_setup - web_kanban - web - bus - report - procurement - stock_account - stock - barcodes - web_planner - account - analytic - web_tip - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | field | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
procurement_form_view |
procurement.order.form - mrp_production_request | procurement.order | xpath | Inherits procurement.procurement_form_view |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=_company_get
required=True
string='Company'
date_planned
Date
default=fields.Date.context_today
required=True
string='Planned Date'
track_visibility='onchange'
description
Text
done_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
procurement_id
Many2one → procurement.order
comodel_name='procurement.order'
readonly=True
string='Procurement Order'
procurement_state
Selection
readonly=True
related='procurement_id.state'
store=True
string='Procurement State'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom
Many2one → product.uom
comodel_name='product.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
requested_by
Many2one → res.users
comodel_name='res.users'
default=_get_default_requested_by
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
mo_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom
Many2one
related='mrp_production_request_id.product_uom'
compute_product_line_ids(self)
create_mo(self)
available_qty
Float
compute=_compute_available_qty
digits_compute=dp.get_precision('Product Unit of Measure')
string='Quantity Available'
bottle_neck_factor
Float
compute=_compute_bottle_neck_factor
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity Required'
product_uom
Many2one → product.uom
comodel_name='product.uom'
required=True
string='UoM'
No public methods.
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
string='Manufacturing Request'
propagate_cancels(self)
mrp_production_request
Boolean
default=False
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
No new fields.
Public methods (1)create(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/manufacture |
| GIT | |
| GIT | https://github.com/OCA/manufacture.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/manufacture/tree/8.0/mrp_production_request |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Manufacturing |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Eficent |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Eficent |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, Andhitia Rama, mike |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/manufacture |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:24 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/manufacture: - mrp_hook OCA/stock-logistics-warehouse: - stock_available_unreserved odoo/odoo: - mrp - product - base - decimal_precision - base_setup - web_kanban - web - report - procurement - stock_account - stock - board - web_kanban_gauge - web_kanban_sparkline - account - analytic - edi - email_template - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mrp_production_form_view |
mrp.production.form - mrp_production_request | mrp.production | field | Inherits mrp.mrp_production_form_view |
mrp_production_request_create_mo_view |
mrp.production.request.create.mo.form | mrp.production.request.create.mo | form | New |
procurement_form_view |
procurement.order.form - mrp_production_request | procurement.order | xpath | Inherits procurement.procurement_form_view |
view_mrp_production_request_form |
mrp.production.request.form | mrp.production.request | form | New |
view_mrp_production_request_search |
mrp.production.request.search | mrp.production.request | search | New |
view_mrp_production_request_tree |
mrp.production.request.tree | mrp.production.request | tree | New |
view_template_property_form |
product.template.form - mrp_production_request | product.template | field | Inherits stock.view_template_property_form |
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
readonly=True
string='Manufacturing Request'
No public methods.
assigned_to
Many2one → res.users
comodel_name='res.users'
readonly=True
states={'draft': [('readonly', False)]}
string='Approver'
track_visibility='onchange'
bom_id
Many2one → mrp.bom
comodel_name='mrp.bom'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Bill of Materials'
category_uom_id
Many2one
related='product_uom.category_id'
company_id
Many2one → res.company
comodel_name='res.company'
default=_company_get
required=True
string='Company'
date_planned
Date
default=fields.Date.context_today
required=True
string='Planned Date'
track_visibility='onchange'
description
Text
done_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in all done Manufacturing Orders.'
readonly=True
store=True
string='Quantity Done'
location_dest_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Finished Products Location'
location_src_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Raw Materials Location'
manufactured_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Sum of the quantities in Manufacturing Orders (in any state).'
readonly=True
store=True
string='Quantity in Manufacturing Orders'
mrp_production_ids
One2many → mrp.production
comodel_name='mrp.production'
inverse_name='mrp_production_request_id'
string='Manufacturing Orders'
name
Char
default='/'
readonly=True
required=True
states={'draft': [('readonly', False)]}
origin
Char
readonly=True
states={'draft': [('readonly', False)]}
string='Source Document'
pending_qty
Float
compute=_compute_manufactured_qty
digits_compute=dp.get_precision('Product Unit of Measure')
help='Quantity pending to add to Manufacturing Orders to fulfill the Manufacturing Request requirement.'
readonly=True
store=True
string='Pending Quantity'
procurement_id
Many2one → procurement.order
comodel_name='procurement.order'
readonly=True
string='Procurement Order'
procurement_state
Selection
readonly=True
related='procurement_id.state'
store=True
string='Procurement State'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', 'in', ['product', 'consu'])]
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Product'
track_visibility='onchange'
product_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Required Quantity'
track_visibility='onchange'
product_tmpl_id
Many2one → product.template
comodel_name='product.template'
related='product_id.product_tmpl_id'
string='Product Template'
product_uom
Many2one → product.uom
comodel_name='product.uom'
domain="[('category_id', '=', category_uom_id)]"
readonly=True
states={'draft': [('readonly', False)]}
string='Unit of Measure'
requested_by
Many2one → res.users
comodel_name='res.users'
default=_get_default_requested_by
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Requested by'
track_visibility='onchange'
routing_id
Many2one → mrp.routing
comodel_name='mrp.routing'
help='The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification.'
on_delete='setnull'
readonly=True
states={'draft': [('readonly', False)]}
string='Routing'
state
Selection
copy=False
default='draft'
index=True
required=True
selection=[('draft', 'Draft'), ('to_approve', 'To Be Approved'), ('approved', 'Approved'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
button_approved(self)
button_cancel(self)
button_done(self)
button_draft(self)
button_to_approve(self)
create(self, vals)
write(self, vals)
bom_id
Many2one
readonly=True
related='mrp_production_request_id.bom_id'
mo_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
string='Quantity'
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
readonly=True
pending_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
related='mrp_production_request_id.pending_qty'
product_line_ids
One2many → mrp.production.request.create.mo.line
comodel_name='mrp.production.request.create.mo.line'
inverse_name='mrp_production_request_create_mo_id'
readonly=True
string='Products needed'
product_uom
Many2one
related='mrp_production_request_id.product_uom'
compute_product_line_ids(self)
create_mo(self)
available_qty
Float
compute=_compute_available_qty
digits_compute=dp.get_precision('Product Unit of Measure')
string='Quantity Available'
bottle_neck_factor
Float
compute=_compute_bottle_neck_factor
location_id
Many2one → stock.location
comodel_name='stock.location'
required=True
mrp_production_request_create_mo_id
Many2one → mrp.production.request.create.mo
comodel_name='mrp.production.request.create.mo'
product_id
Many2one → product.product
comodel_name='product.product'
required=True
string='Product'
product_qty
Float
digits_compute=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity Required'
product_uom
Many2one → product.uom
comodel_name='product.uom'
required=True
string='UoM'
No public methods.
mrp_production_request_id
Many2one → mrp.production.request
comodel_name='mrp.production.request'
copy=False
string='Manufacturing Request'
propagate_cancel(self, procurement)
mrp_production_request
Boolean
default=False
help='Check this box to generate manufacturing request instead of generating manufacturing orders from procurement.'
string='Manufacturing Request'
No public methods.
No new fields.
Public methods (1)create(self, vals)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/manufacture |
| PULL REQUEST | |
| PULL REQUEST | [18.0][MIG] mrp_production_request (#1552) |