Purchase and Subcontracting Management

mrp_subcontracting_purchase
REPOSITORY
REPOSITORYOCA/manufacture
GIT
GIThttps://github.com/OCA/manufacture.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/manufacture/tree/14.0/mrp_subcontracting_purchase
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYManufacturing/Purchase
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo Community Association (OCA), Cetmix, Odoo S.A., Ooops
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Cetmix, Odoo S.A., Ooops
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, dessanhemrayev, geomer198
WEBSITE
WEBSITEhttps://github.com/OCA/manufacture
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 18:50:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mrp_subcontracting
    - mrp
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - stock
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - purchase_mrp
    - purchase_stock
    - stock_account
    - account
    - analytic
    - purchase
    - stock_dropshipping
    - sale_purchase_stock
    - sale_stock
    - sale
    - sales_team
    - payment
    - utm
    - sale_purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This bridge module adds some smart buttons between Purchase and Subcontracting

**DISCLAIMER:** This module is a backport from Odoo SA and as such, it is not included
in the OCA CLA.

That means we do not have a copy of the copyright on it like all other OCA modules.

This is a backporting of features from mrp_subcontracting modules from v15 allowing to
setup a flow addressing the following use case:

Vendor 1 manufactures and sells “Finished Product”

Vendor 2 manufactures and sells “Component Product” (used to manufacture “Finished
Product”)

Vendor 3 sells “Element Product” (used to manufacture “Component Product”)

As an example, in the case where there is no available qty for each of these three
products, creating a PO purchasing “Finished product” for Vendor 1 generates:

- The standard receipt picking from Vendor 1 to our warehouse
- A PO for Vendor 2 for product “Component Product”
- A subcontracting order for Vendor 1 for “Finished Product”, with component location:
  Vendor 1 subcontracting location

Once this PO is confirmed, this generates:

- A dropship picking for Vendor 1 from Vendor 2 for “Component Product”
- A subcontracting order for Vendor 2 for “Component Product”, with component location:
  Vendor 2 subcontracting location
- A PO for Vendor 3 for product “Element Product”

Once this PO is confirmed, this generates:

- A dropship picking for Vendor 2 from Vendor 3 for “Element Product”

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
po_form_mrp_subcontracting_purchase purchase.order.inherited.form.mrp.subcontracting.purchase purchase.order button Inherits purchase.purchase_order_form
stock_picking_form_mrp_subcontracting stock.picking.inherited.form.mrp.subcontracting stock.picking xpath Inherits stock.view_picking_form
Models touched (9)

New fields (1)
  • subcontracting_has_been_recorded Boolean
    copy=False args: 'Has been recorded'
Public methods (1)
  • subcontracting_record_component(self)
    Returns subcontracting issues Since we don't have a subcontracting_has_been_recorded field in version 14.0, we need to add functionality related to this field

New fields (1)
  • subcontracting_resupply_picking_count Integer
    compute='_compute_subcontracting_resupply_picking_count' help='Count of Subcontracting Resupply for component' args: 'Count of Subcontracting Resupply'
Public methods (2)
  • action_view_picking(self)
  • action_view_subcontracting_resupply(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create_missing_subcontracting_dropshipping_rules(self)
    @api.model
    Adds new stock rules for missing subcontracting dropshipping

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • subcontracting_source_purchase_count Integer
    compute='_compute_subcontracting_source_purchase_count' help='Number of subcontracting Purchase Order Source' args: 'Number of subcontracting PO Source'
Public methods (1)
  • action_view_subcontracting_source_purchase(self)
    Returns action for subcontracting source purchase

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • subcontracting_dropshipping_pull_id Many2one → stock.rule
    args: 'stock.rule', 'Subcontracting-Dropshipping MTS Rule'
  • subcontracting_dropshipping_to_resupply Boolean
    default=True help='Dropship subcontractors with components' args: 'Dropship Subcontractors'
Public methods (0)

No public methods.