Purchase Vendor Bill Breakdown

purchase_vendor_bill_breakdown
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/14.0/purchase_vendor_bill_breakdown
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Cetmix, Ooops
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Cetmix, Ooops
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Alessandro Uffreduzzi, geomer198
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/purchase-workflow:
    - purchase_supplierinfo_product_breakdown
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_supplierinfo_component_form_view product.supplierinfo.component.form.view product.supplierinfo field Inherits purchase_supplierinfo_product_breakdown.product_supplierinfo_component_form_view
product_supplierinfo_tree_view4 product.spplierinfo.inherit.tree.view product.supplierinfo field Inherits purchase_supplierinfo_product_breakdown.product_supplierinfo_tree_view3
purchase_order_form purchase.order.form.inherit purchase.order group 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 field Inherits purchase_supplierinfo_product_breakdown.view_product_supplier_inherit
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