Repository
odoo/odoo · module folder
Module version
0.1
Category
Supply Chain/Manufacturing
Folder size
1.46 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://www.odoo.com/app/manufacturing
Last tracking update
2026-08-20 10:12:46
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Odoo Translation Bot, Aaron Bohy, Jorge Pinna Puissant, Arnold Moyaux, Julien Castiaux, Victor Feyens, William Henrotin, svs-odoo, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Romain Estievenart, JF Aubert, luvi, Djamel Touati, Pieter Claeys (clpi), clesgow, Dylan Kiss (dyki), Paweł Fertyk, lase@odoo.com, Quentin Wolfs, Ethan Vincent, yosa-odoo, kcv-odoo, mega, nihp-odoo, Agustin Castro Bugallo, Stéphane Diez, kawkb, dhha-odoo, Léo Gizard, David Van Droogenbroeck (DROD), Mohammad Abdulmoneim (abdu), djameltouati, Bastien PIERRE, MaximeNoirhomme, Vincent Sevestre, plha-odoo, Krzysztof Magusiak (krma), Omar (OSAH), joseph, temo-odoo, agbr-odoo, Lulu Grimalkin (lugr), Lancelot Semal, Quentin Colla (qucol), ABE-Mark45, Waleed Elgamal, Amr Elkhatieb, sako-odoo, Sanket Tank(stan)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
mrp_subcontracting_account, mrp_subcontracting_dropshipping, mrp_subcontracting_landed_costs, mrp_subcontracting_purchase, mrp_subcontracting_purchase_link, mrp_subcontracting_repair, mrp_subcontracting_skip_no_negative
Description

Code Analysis

Views touched (26)
XML IDNameModelTypeStatus
mrp_bom_form_view mrp.bom.form.view mrp.bom form Inherits mrp.mrp_bom_form_view
mrp_production_subcontracting_filter mrp.production.subcontracting.select mrp.production Inherits mrp.view_mrp_production_filter
mrp_production_subcontracting_form_view mrp.production.subcontracting.form.view mrp.production form Inherits mrp.mrp_production_form_view
mrp_production_subcontracting_portal_form_view mrp.production.subcontracting.portal.form.view mrp.production form Inherits mrp_production_subcontracting_form_view
mrp_production_subcontracting_tree_view mrp.production.subcontracting.list mrp.production list Inherits mrp.mrp_production_tree_view
mrp_subcontracting_move_form_view mrp.subcontracting.move.form.view stock.move form New
mrp_subcontracting_move_tree_view mrp.subcontracting.move.list.view stock.move list New
mrp_subcontracting_portal_move_form_view mrp.subcontracting.portal.move.form.view stock.move form Inherits mrp_subcontracting_move_form_view
mrp_subcontracting_portal_stock_move_line_tree_view mrp.subcontracting.portal.stock.move.line.list.view stock.move.line list Inherits mrp_subcontracting_stock_move_line_tree_view
mrp_subcontracting_stock_move_line_tree_view mrp.subcontracting.stock.move.line.list.view stock.move.line list New
mrp_subcontracting_view_stock_move_line_operation_tree mrp.subcontracting.stock.move.line.operations.list stock.move.line list Inherits stock.view_stock_move_line_operation_tree
mrp_subcontracting_view_stock_move_operations mrp.subcontracting.stock.move.operations.form stock.move form Inherits stock.view_stock_move_operations
portal_my_home_menu_production Portal layout : production menu entries ir.ui.view qweb Inherits portal.portal_breadcrumbs
portal_my_home_productions Productions ir.ui.view qweb Inherits portal.portal_my_home
portal_my_productions My Productions ir.ui.view qweb New
product_supplierinfo_subcontractor_tree_view product.supplierinfo.subcontractor.list.view product.supplierinfo list Inherits product.product_supplierinfo_tree_view
quant_subcontracting_search_view stock.quant.subcontracting.search stock.quant search Inherits stock.quant_search_view
stock_picking_form_view stock.picking.form.view stock.picking form Inherits stock.view_picking_form
subcontracting Subcontracting Portal View ir.ui.view qweb New
subcontracting_portal Subcontracting View in Portal ir.ui.view qweb New
subcontracting_portal_embed Subcontracting Portal ir.ui.view qweb New
subcontracting_portal_production_form_view subcontracting.portal.production.view.form stock.picking form New
view_move_search stock.move.search stock.move search Inherits stock.view_move_search
view_partner_mrp_subcontracting_filter res.partner.select.inherit res.partner Inherits base.view_res_partner_filter
view_partner_mrp_subcontracting_form res.partner.mrp_subcontracting.property.form.inherit res.partner form Inherits stock.view_partner_stock_form
view_warehouse_inherit_mrp_subcontracting Stock Warehouse Inherit Subcontracting stock.warehouse Inherits mrp.view_warehouse_inherit_mrp
HTTP endpoints (3)
Route(s)HandlerAuthTypeMethodsFlags
/my/productions/<int:picking_id> CustomerPortal.portal_my_production user http GET website
/my/productions, /my/productions/page/<int:page> CustomerPortal.portal_my_productions user http ALL website
/my/productions/<int:picking_id>/subcontracting_portal CustomerPortal.render_production_backend_view user http GET
Models touched (19)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • subcontractor_ids Many2many → res.partner
    check_company=True string='Subcontractors' args: 'res.partner', 'mrp_bom_subcontractor'
  • type Selection
    ondelete={'subcontract': <expr>} selection_add=[('subcontract', 'Subcontracting')]
Public methods (0)

No public methods.

New fields (5)
  • bom_product_ids Many2many → product.product
    compute='_compute_bom_product_ids' help='List of Products used in the BoM, used to filter the list of products in the subcontracting portal view' args: 'product.product'
  • incoming_picking Many2one
    related='move_finished_ids.move_dest_ids.picking_id'
  • move_line_raw_ids One2many → stock.move.line
    compute='_compute_move_line_raw_ids' inverse='_inverse_move_line_raw_ids' readonly=False string='Detail Component' args: 'stock.move.line'
  • subcontracting_has_been_recorded Boolean
    copy=False args: 'Has been recorded?'
  • subcontractor_id Many2one → res.partner
    help='Used to restrict access to the portal user through Record Rules' string='Subcontractor' args: 'res.partner'
Public methods (4)
  • action_merge(self)
  • action_split_subcontracting(self)
  • pre_button_mark_done(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • button_unbuild(self)

New fields (0)

No new fields.

Public methods (1)
  • action_apply(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • is_subcontractor Boolean
    compute='_compute_is_subcontractor' help='Choose a vendor of type subcontractor if you want to subcontract the product' args: 'Subcontracted'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • subcontracting_location_id Many2one → stock.location
    args: 'stock.location'
Public methods (0)

No public methods.

New fields (5)
  • bom_ids Many2many → mrp.bom
    compute='_compute_bom_ids' string='BoMs for which the Partner is one of the subcontractors' args: 'mrp.bom'
  • is_subcontractor Boolean
    compute='_compute_is_subcontractor' search='_search_is_subcontractor' store=False string='Subcontractor'
  • picking_ids Many2many → stock.picking
    compute='_compute_picking_ids' string='Stock Pickings for which the Partner is the subcontractor' args: 'stock.picking'
  • production_ids Many2many → mrp.production
    compute='_compute_production_ids' string='MRP Productions for which the Partner is the subcontractor' args: 'mrp.production'
  • property_stock_subcontractor Many2one → stock.location
    company_dependent=True help='The stock location used as source and destination when sending goods to this contact during a subcontracting process.' string='Subcontractor Location' args: 'stock.location'
Public methods (0)

No public methods.

New fields (1)
  • subcontractor_ids One2many → res.partner
    args: 'res.partner', 'property_stock_subcontractor'
Public methods (1)
  • is_subcontract(self)

New fields (2)
  • is_subcontract Boolean
    args: 'The move is a subcontract receipt'
  • show_subcontracting_details_visible Boolean
    compute='_compute_show_subcontracting_details_visible'
Public methods (5)
  • action_show_details(self)
    Open the produce wizard in order to register tracked components for subcontracted product. Otherwise use standard behavior.
  • action_show_subcontract_details(self, lot_id=None)
    Display moves raw for subcontracted product self.
  • copy_data(self, default=None)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
    If the initial demand is updated then also update the linked subcontract order to the new quantity.

New fields (0)

No new fields.

Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (1)
  • show_subcontracting_details_visible Boolean
    compute='_compute_show_subcontracting_details_visible'
Public methods (1)
  • action_show_subcontract_details(self)

New fields (1)
  • is_subcontract Boolean
    search='_search_is_subcontract' store=False
Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • subcontracting_mto_pull_id Many2one → stock.rule
    copy=False args: 'stock.rule', 'Subcontracting MTO Rule'
  • subcontracting_pull_id Many2one → stock.rule
    copy=False args: 'stock.rule', 'Subcontracting MTS Rule'
  • subcontracting_resupply_type_id Many2one → stock.picking.type
    copy=False domain=[('code', '=', 'internal')] args: 'stock.picking.type', 'Subcontracting Resupply Operation Type'
  • subcontracting_route_id Many2one → stock.route
    copy=False ondelete='restrict' args: 'stock.route', 'Resupply Subcontractor'
  • subcontracting_to_resupply Boolean
    default=True args: 'Resupply Subcontractors'
  • subcontracting_type_id Many2one → stock.picking.type
    copy=False domain=[('code', '=', 'mrp_operation')] args: 'stock.picking.type', 'Subcontracting Operation Type'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • get_rules_dict(self)
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…