Repository
OCA/purchase-workflow · module folder · Try on Runboat
Module version
1.0.1
Category
Purchase Management
Folder size
0.15 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/purchase-workflow
Last tracking update
2026-08-07 07:47:41
Authors
Odoo Community Association (OCA), Cetmix, Ooops
Maintainers
Odoo Community Association (OCA), Cetmix, Ooops
Committers
Weblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, geomer198
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
purchase_stock_vendor_bill_breakdown
Description

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_supplierinfo_component_form_view product.supplierinfo.component.form.view product.supplierinfo form Inherits purchase_supplierinfo_product_breakdown.product_supplierinfo_component_form_view
product_supplierinfo_tree_view4 product.spplierinfo.inherit.tree.view product.supplierinfo tree Inherits purchase_supplierinfo_product_breakdown.product_supplierinfo_tree_view3
purchase_order_form purchase.order.form.inherit purchase.order form Inherits purchase.purchase_order_form
purchase_order_line_components_form_view purchase.order.line.components.form.view purchase.order.line form New
view_product_supplier_inherit product.template.supplier.form.inherit product.template form Inherits purchase_supplierinfo_product_breakdown.view_product_supplier_inherit
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • component_qty Float
    default=0.0
Public methods (0)

No public methods.

New fields (2)
  • price Float
    compute='_compute_price' inverse='_inverse_price' store=True
  • price_manual Float
    copy=False digits='Product Price' string='Price'
Public methods (0)

No public methods.

New fields (2)
  • current_price Float
    compute='_compute_current_price' store=True string='Current price'
  • price_total Float
    compute='_compute_price_total' store=True
Public methods (1)
  • get_supplier_by_args(self, product_id, partner_id)
    @api.model
    Get first supplier by product and vendor name

New fields (1)
  • use_product_components Boolean
Public methods (2)
  • set_partner_use_product_components(self)
    @api.onchange('partner_id')
    Set 'Use Product Components' based on product settings
  • write(self, vals)

New fields (5)
  • component_ids One2many → purchase.order.line.component
    comodel_name='purchase.order.line.component' inverse_name='line_id'
  • last_qty_invoiced Float
    compute='_compute_last_qty_invoiced' store=True string='Billed Qty'
  • show_breakdown Boolean
    compute='_compute_show_breakdown'
  • supplier_id Many2one → product.supplierinfo
    comodel_name='product.supplierinfo' compute='_compute_supplier_id' store=True
  • use_product_components Boolean
    related='order_id.use_product_components'
Public methods (4)
  • action_open_component_view(self)
    Open view with product components
  • check_component_ids(self)
    @api.constrains('component_ids')
    Checking a component for uniqueness
  • create(self, vals)
    @api.model
  • write(self, vals)

New fields (14)
  • component_id Many2one → product.product
    comodel_name='product.product' required=True string='Component'
  • component_uom_category_id Many2one
    related='component_id.uom_id.category_id'
  • currency_id Many2one
    readonly=True related='line_id.order_id.currency_id' store=True string='Currency'
  • line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line' required=True string='Purchase Order Line'
  • partner_id Many2one
    related='line_id.order_id.partner_id'
  • price_subtotal Monetary
    compute='_compute_price_subtotal' store=True string='Subtotal'
  • price_unit Float
    compute='_compute_price_unit' default=0.0 digits='Unit Price' required=True store=True string='Unit Price'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', component_uom_category_id)]" required=True string='Unit of Measure' args: 'uom.uom'
  • product_uom_qty Float
    default=1.0 required=True string='Quantity per Unit'
  • qty_invoiced Float
    compute='_compute_qty_invoiced' readonly=1 store=True string='Billed'
  • qty_to_invoice Float
    compute='_compute_qty_invoiced' digits='Component Unit of Measure' readonly=True store=True string='To Invoice Quantity'
  • supplier_id Many2one
    related='line_id.supplier_id'
  • total Float
    compute='_compute_total' string='Quantity'
  • total_qty Float
    default=0.0 readonly=True required=True string='Received'
Public methods (1)
  • onchange_component_id(self)
    @api.onchange('component_id')
    Set default value at component onchange