Procurements

procurement
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/procurement
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Julien Legros, Richard Mathot, qdp-odoo, Jeremy Kersten, Yannick Tivisse, amoyaux
WEBSITE
WEBSITEhttps://www.odoo.com/page/manufacturing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - product
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This is the module for computing Procurements.
==============================================

This procurement module only depends on the product module and is not useful
on itself.  Procurements represent needs that need to be solved by a procurement
rule.  When a procurement is created, it is confirmed.  When a rule is found,
it will be put in running state.  After, it will check if what needed to be done
for the rule has been executed.  Then it will go to the done state.  A procurement
can also go into exception, for example when it can not find a rule and it can be cancelled.

The mechanism will be extended by several modules.  The procurement rule of stock will
create a move and the procurement will be fulfilled when the move is done.
The procurement rule of sale_service will create a task.  Those of purchase or
mrp will create a purchase order or a manufacturing order.

The scheduler will check if it can assign a rule to confirmed procurements and if
it can put running procurements to done.

Procurements in exception should be checked manually and can be re-run.
    

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
procurement_form_view procurement.order.form procurement.order form New
procurement_group_form_view procurement.group.form procurement.group form New
procurement_tree_view procurement.order.tree procurement.order tree New
product_product_view_form_procurement_button product.product.procurement.stat.button product.product xpath Inherits product.product_normal_form_view
product_template_view_form_procurement_button product.template.procurement.stat.button product.template xpath Inherits product.product_template_only_form_view
view_compute_schedulers_wizard Run Schedulers procurement.order.compute.all form New
view_procurement_filter procurement.order.select procurement.order search New
view_procurement_rule_filter procurement.rule.select procurement.rule search New
view_procurement_rule_form procurement.rule.form procurement.rule form New
view_procurement_rule_tree procurement.rule.tree procurement.rule tree New
Models touched (4)

New fields (3)
  • move_type Selection
    default='direct' required=True string='Delivery Type' args: [('direct', 'Partial'), ('one', 'All at once')]
  • name Char
    default=<expr> required=True args: 'Reference'
  • procurement_ids One2many → procurement.order
    args: 'procurement.order', 'group_id', 'Procurements'
Public methods (0)

No public methods.

New fields (11)
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company', 'Company'
  • date_planned Datetime
    default=fields.Datetime.now index=True required=True track_visibility='onchange' args: 'Scheduled Date'
  • group_id Many2one → procurement.group
    args: 'procurement.group', 'Procurement Group'
  • name Text
    required=True args: 'Description'
  • origin Char
    help='Reference of the document that created this Procurement. This is automatically completed by Odoo.' args: 'Source Document'
  • priority Selection
    default='1' index=True required=True string='Priority' track_visibility='onchange' args: PROCUREMENT_PRIORITIES
  • product_id Many2one → product.product
    readonly=True required=True states={'confirmed': [('readonly', False)]} args: 'product.product', 'Product'
  • product_qty Float
    digits=dp.get_precision('Product Unit of Measure') readonly=True required=True states={'confirmed': [('readonly', False)]} args: 'Quantity'
  • product_uom Many2one → product.uom
    readonly=True required=True states={'confirmed': [('readonly', False)]} args: 'product.uom', 'Product Unit of Measure'
  • rule_id Many2one → procurement.rule
    help='Chosen rule for the procurement resolution. Usually chosen by the system but can be manually set by the procurement manager to force an unusual behavior.' track_visibility='onchange' args: 'procurement.rule', 'Rule'
  • state Selection
    copy=False default='confirmed' required=True string='Status' track_visibility='onchange' args: [('cancel', 'Cancelled'), ('confirmed', 'Confirmed'), ('exception', 'Exception'), ('running', 'Running'), ('done', 'Done')]
Public methods (9)
  • cancel(self)
    @api.multi
  • check(self, autocommit=False)
    @api.multi@api.returns('self', <expr>)
  • create(self, vals)
    @api.model
  • do_view_procurements(self)
    @api.multi
    This function returns an action that display existing procurement orders of same procurement group of given ids.
  • onchange_product_id(self)
    @api.onchange('product_id')
    Finds UoM of changed product.
  • reset_to_confirmed(self)
    @api.multi
  • run(self, autocommit=False)
    @api.multi
  • run_scheduler(self, use_new_cursor=False, company_id=False)
    @api.model
    Call the scheduler to check the procurement order. This is intented to be done for all existing companies at the same time, so we're running all the methods as SUPERUSER to avoid intercompany and access rights issues. @param use_new_cursor: if set, use a dedicated cursor and auto-commit after processing each procurement. This is appropriate for batch jobs only. @return: Dictionary of values
  • unlink(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • procure_calculation(self)
    @api.multi

New fields (7)
  • action Selection
    required=True selection='_get_action' string='Action'
  • active Boolean
    default=True help='If unchecked, it will allow you to hide the rule without removing it.' args: 'Active'
  • company_id Many2one → res.company
    args: 'res.company', 'Company'
  • group_id Many2one → procurement.group
    args: 'procurement.group', 'Fixed Procurement Group'
  • group_propagation_option Selection
    default='propagate' string='Propagation of Procurement Group' args: [('none', 'Leave Empty'), ('propagate', 'Propagate'), ('fixed', 'Fixed')]
  • name Char
    help='This field will fill the packing origin and the name of its moves' required=True translate=True args: 'Name'
  • sequence Integer
    default=20 args: 'Sequence'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/procurement
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Josse Colpaert, Denis Ledoux, Christophe Simonis, David Monjoie, Nicolas Martinelli, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Damien Bouvy, Yannick Tivisse
WEBSITE
WEBSITEhttps://www.odoo.com/page/manufacturing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - product
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This is the module for computing Procurements.
==============================================

This procurement module only depends on the product module and is not useful
on itself.  Procurements represent needs that need to be solved by a procurement
rule.  When a procurement is created, it is confirmed.  When a rule is found,
it will be put in running state.  After, it will check if what needed to be done
for the rule has been executed.  Then it will go to the done state.  A procurement
can also go into exception, for example when it can not find a rule and it can be cancelled.

The mechanism will be extended by several modules.  The procurement rule of stock will
create a move and the procurement will be fulfilled when the move is done.
The procurement rule of sale_service will create a task.  Those of purchase or
mrp will create a purchase order or a manufacturing order.

The scheduler will check if it can assign a rule to confirmed procurements and if
it can put running procurements to done.

Procurements in exception should be checked manually and can be re-run.
    

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
mrp_company res.company.mrp.config res.company xpath Inherits base.view_company_form
procurement_form_view procurement.order.form procurement.order form New
procurement_group_form_view procurement.group.form procurement.group form New
procurement_tree_view procurement.order.tree procurement.order tree New
product_product_view_form_procurement_button product.product.procurement.stat.button product.product xpath Inherits product.product_normal_form_view
product_template_view_form_procurement_button product.template.procurement.stat.button product.template xpath Inherits product.product_template_only_form_view
view_compute_schedulers_wizard Run Schedulers procurement.order.compute.all form New
view_procurement_filter procurement.order.select procurement.order search New
view_procurement_rule_filter procurement.rule.select procurement.rule search New
view_procurement_rule_form procurement.rule.form procurement.rule form New
view_procurement_rule_tree procurement.rule.tree procurement.rule tree New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/procurement
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Ajay Chauhan (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Tejas Tank, Thibault Delavallée, Vo Minh Thu, Josse Colpaert, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Cedric Snauwaert, Nicolas Martinelli, Amit Bhavsar (Open ERP), Richard Mathot, Holger Brunn, jke-openerp, Aaron Bohy, Richard Mathot (OpenERP), Randhir Mayatra rma-openerp, Darshan Kalola (OpenERP), Darshan Kalola, Sunil Sharma (OpenERP)
WEBSITE
WEBSITEhttps://www.odoo.com/page/manufacturing
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - product
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This is the module for computing Procurements.
==============================================

This procurement module only depends on the product module and is not useful
on itself.  Procurements represent needs that need to be solved by a procurement
rule.  When a procurement is created, it is confirmed.  When a rule is found,
it will be put in running state.  After, it will check if what needed to be done
for the rule has been executed.  Then it will go to the done state.  A procurement
can also go into exception, for example when it can not find a rule and it can be cancelled.

The mechanism will be extended by several modules.  The procurement rule of stock will
create a move and the procurement will be fulfilled when the move is done.
The procurement rule of sale_service will create a task.  Those of purchase or
mrp will create a purchase order or a manufacturing order.

The scheduler will check if it can assign a rule to confirmed procurements and if
it can put running procurements to done.

Procurements in exception should be checked manually and can be re-run.
    

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
mrp_company res.company.mrp.config res.company xpath Inherits base.view_company_form
procurement_form_view procurement.order.form procurement.order form New
procurement_group_form_view procurement.group.form procurement.group form New
procurement_tree_view procurement.order.tree procurement.order tree New
view_compute_schedulers_wizard Run Schedulers procurement.order.compute.all form New
view_procurement_filter procurement.order.select procurement.order search New
view_procurement_rule_form procurement.rule.form procurement.rule form New
view_procurement_rule_tree procurement.rule.tree procurement.rule tree New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/procurement
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Rucha (Open ERP), Atul Patel (OpenERP), Randhir Mayatra (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Christophe Matthieu, Pinakin Nayi (OpenERP), DBR (OpenERP), Harry (OpenERP), Antonin Bourguignon, Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Purnendu Singh (OpenERP), Saurang Suthar (OpenERP), Fabien Pinckaers, Antony Lesuisse, Meera Trambadia (OpenERP), Olivier Dony, Twinkle (OpenERP), Divyesh Makwana (Open ERP), Tejas Tank, Thibault Delavallée, Vo Minh Thu, Hardik, Josse Colpaert, Arnaud Pineux, pso (OpenERP), Sbh (Openerp), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, vta vta@openerp.com, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Denis Ledoux, Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, Sanjay Gohel (Open ERP), Alexis de Lattre, Xavier ALT, Christophe Simonis, Priyesh solanki (OpenERP), Ravi Gohil (OpenERP), Jiten (OpenERP), Dharti Ratani (OpenERP), Bhumi Thakkar (Open ERP), Ravish Murari (OpenERP), Amit Patel, Frédéric van der Essen, Vijaykumar Baladaniya, Jigar Amin, Ravish (Open ERP), csn-openerp, RGA(OpenERP), Amit Dodiya, Mohammad Alhashash, Quentin THEURET
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - process
    - web
    - product
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - stock
    - account
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This is the module for computing Procurements.
==============================================

In the MRP process, procurements orders are created to launch manufacturing
orders, purchase orders, stock allocations. Procurement orders are
generated automatically by the system and unless there is a problem, the
user will not be notified. In case of problems, the system will raise some
procurement exceptions to inform the user about blocking problems that need
to be resolved manually (like, missing BoM structure or missing supplier).

The procurement order will schedule a proposal for automatic procurement
for the product which needs replenishment. This procurement will start a
task, either a purchase order form for the supplier, or a production order
depending on the product's configuration.
    

Code Analysis

Views touched (16)
XML IDNameModelTypeStatus
board_mrp_procurement_form board.mrp.procurement.form board.board xpath Inherits stock.board_warehouse_form
mrp_company res.company.mrp.config res.company xpath Inherits base.view_company_form
procurement_form_view procurement.order.form procurement.order form New
procurement_tree_view procurement.order.tree procurement.order tree New
procurement_tree_view_board procurement.order.tree.board procurement.order tree New
product_form_view_procurement_button product.product.procurement product.product xpath Inherits product.product_normal_form_view
product_search_form_view_procurment product.search.procurment.form product.product filter Inherits product.product_search_form_view
product_template_form_view_procurement product.template.procurement product.template xpath Inherits product.product_template_form_view
view_compute_procurment_wizard Compute Procurements procurement.order.compute form New
view_compute_schedulers_wizard Run Schedulers procurement.order.compute.all form New
view_make_procurment_wizard Procurement Request make.procurement form New
view_procurement_compute_wizard Compute Stock Minimum Rules Only procurement.orderpoint.compute form New
view_procurement_filter procurement.order.select procurement.order search New
view_warehouse_orderpoint_form stock.warehouse.orderpoint.form stock.warehouse.orderpoint form New
view_warehouse_orderpoint_tree stock.warehouse.orderpoint.tree stock.warehouse.orderpoint tree New
warehouse_orderpoint_search stock.warehouse.orderpoint.search stock.warehouse.orderpoint search New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/6.1/procurement
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Rucha (Open ERP), Stephane Wirtel, Numerigraphe - Lionel Sausin, DBR (OpenERP), Harry (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Mayur Maheshwari (OpenERP), vro, niv-openerp, Xavier ALT, Ujjvala Collins (OpenERP), Xavier Morel, Thibault Francois, , Carlos Vásquez, Bogdan Stanciu, ksa (Open ERP), Husen Daudi, Els Van Vossel, Israel Fermin Montilla, Hardik Ansodariy (OpenERP), ssu, aag (OpenERP), ron@tinyerp.com, fp, rpa (Open ERP)
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:41:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - process
    - product
    - decimal_precision
    - stock
    - account
    - base_setup
    - analytic
    - board
    - edi
    - email_template
    - mail
    - base_tools
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This is the module for computing Procurements.
==============================================

In the MRP process, procurements orders are created to launch manufacturing
orders, purchase orders, stock allocations, etc. Procurement orders are
generated automatically by the system and unless there is a problem, the
user will not be notified. In case of problems, the system will raise some
procurement exceptions to inform the user about blocking problems that need
to be resolved manually (like, missing BoM structure or missing supplier).

The procurement order will schedule a proposal for automatic procurement
for the product which needs replenishment. This procurement will start a
task, either a purchase order form for the supplier, or a production order
depending on the product's configuration.
    

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
board_mrp_procurement_form board.mrp.procurement.form board.board xpath Inherits stock.board_warehouse_form
mrp_company res.company.mrp.config res.company page Inherits base.view_company_form
procurement_form_view procurement.order.form procurement.order form New
procurement_tree_view procurement.order.tree procurement.order tree New
procurement_tree_view_board procurement.order.tree.board procurement.order tree New
product_normal_form_view product.normal.form.orderpoint.inherit product.product group Inherits product.product_normal_form_view
view_compute_procurment_wizard Compute Procurements procurement.order.compute form New
view_compute_schedulers_wizard Compute Schedulers procurement.order.compute.all form New
view_make_procurment_wizard Procurement Request make.procurement form New
view_procurement_compute_wizard Compute Stock Minimum Rules Only procurement.orderpoint.compute form New
view_procurement_filter procurement.order.select procurement.order search New
view_warehouse_orderpoint_form stock.warehouse.orderpoint.form stock.warehouse.orderpoint form New
view_warehouse_orderpoint_tree stock.warehouse.orderpoint.tree stock.warehouse.orderpoint tree New
warehouse_orderpoint_search stock.warehouse.orderpoint.search stock.warehouse.orderpoint search New
Models touched (0)

No models found for this module.