Repository
OCA/purchase-workflow · module folder · Try on Runboat
Module version
1.0.0
Category
Purchase Management
Folder size
0.23 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/purchase-workflow
Last tracking update
2026-08-07 08:42:59
Authors
Odoo Community Association (OCA), Ecosoft
Maintainers
Odoo Community Association (OCA), Ecosoft
Committers
Saran440, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
purchase_work_acceptance_evaluation, purchase_work_acceptance_invoice_plan, purchase_work_acceptance_late_fines
Description
This module introduces the ability to define a quantity control point on
Receipts and Vendor Bills by Work Acceptance. Only the products and
services that have been included in a Work Acceptance can be received
and/or invoiced.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
purchase_order_form_inherit purchase.order.form.inherit purchase.order form Inherits purchase.purchase_order_form
purchase_order_view_search purchase.order.select purchase.order search Inherits purchase.purchase_order_view_search
res_config_settings_view_form_purchase res.config.settings.view.form.inherit.purchase res.config.settings form Inherits purchase.res_config_settings_view_form_purchase
view_move_form account.move.form account.move form Inherits purchase.view_move_form_inherit_purchase
view_picking_form stock.picking.form stock.picking form Inherits stock.view_picking_form
view_picking_type_form view.picking.type.form stock.picking.type form Inherits stock.view_picking_type_form
view_purchase_order_filter request.quotation.select purchase.order Inherits purchase.view_purchase_order_filter
view_select_work_acceptance_wizard select_work_acceptance_wizard select.work.acceptance.wizard form New
view_work_acceptance_form work.acceptance.form work.acceptance form New
view_work_acceptance_list work.acceptance.list work.acceptance list New
view_work_acceptance_search work.acceptance.search work.acceptance search New
view_work_accepted_date_wizard view.work.accepted.date.wizard work.accepted.date.wizard form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (10)

New fields (2)
  • require_wa Boolean
    compute='_compute_require_wa'
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' copy=False domain=<expr> help='To control quantity and unit price of the vendor bill, to be according to the quantity and unit price of the work acceptance.' readonly=True string='WA Reference'
Public methods (2)
  • action_post(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (4)
  • wa_accepted Boolean
    compute='_compute_wa_accepted' search='_search_wa_accepted' string='WA Accepted'
  • wa_count Integer
    compute='_compute_wa_ids' default=0 string='WA count'
  • wa_ids One2many → work.acceptance
    comodel_name='work.acceptance' compute='_compute_wa_ids' string='Work Acceptances'
  • wa_line_ids One2many → work.acceptance.line
    comodel_name='work.acceptance.line' inverse_name='purchase_line_id' readonly=True string='WA Lines'
Public methods (2)
  • action_create_invoice(self)
  • action_view_wa(self)

New fields (3)
  • qty_accepted Float
    compute='_compute_qty_accepted' digits='Product Unit of Measure' readonly=True store=True string='Accepted Qty.'
  • qty_to_accept Float
    compute='_compute_qty_accepted' digits='Product Unit of Measure' readonly=True store=True string='To Accept Qty.'
  • wa_line_ids One2many → work.acceptance.line
    comodel_name='work.acceptance.line' inverse_name='purchase_line_id' readonly=True string='WA Lines'
Public methods (0)

No public methods.

New fields (5)
  • group_enable_wa_on_in Boolean
    implied_group='purchase_work_acceptance.group_enable_wa_on_in' string='Enable WA on Goods Receipt'
  • group_enable_wa_on_invoice Boolean
    implied_group='purchase_work_acceptance.group_enable_wa_on_invoice' string='Enable WA on Vendor Bill'
  • group_enable_wa_on_po Boolean
    implied_group='purchase_work_acceptance.group_enable_wa_on_po' string='Enable WA on Purchase Order'
  • group_enforce_wa_on_in Boolean
    implied_group='purchase_work_acceptance.group_enforce_wa_on_in' string='Enforce WA on Goods Receipt'
  • group_enforce_wa_on_invoice Boolean
    implied_group='purchase_work_acceptance.group_enforce_wa_on_invoice' string='Enforce WA on Vendor Bill'
Public methods (0)

No public methods.

New fields (3)
  • require_wa Boolean
    default=<expr>
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' domain="[('id', 'in', wa_ids)]" string='Work Acceptance'
  • wa_ids Many2many → work.acceptance
    comodel_name='work.acceptance' compute='_compute_wa_ids'
Public methods (1)
  • button_create_vendor_bill(self)

New fields (3)
  • require_wa Boolean
    compute='_compute_require_wa'
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' copy=False domain="[('id', 'in', wa_ids)]" string='WA Reference'
  • wa_ids Many2many → work.acceptance
    comodel_name='work.acceptance' compute='_compute_wa_ids'
Public methods (1)
  • button_validate(self)

New fields (1)
  • bypass_wa Boolean
    help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it" string='WA not required'
Public methods (0)

No public methods.

New fields (15)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> index=True required=True string='Company'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' default=<expr> readonly=True required=True string='Currency'
  • date_accept Datetime
    readonly=True string='Accepted Date'
  • date_due Datetime
    required=True string='Due Date'
  • date_receive Datetime
    default=fields.Datetime.now required=True string='Received Date'
  • invoice_ref Char
    copy=False string='Invoice Reference'
  • name Char
    copy=False default='New' index=True required=True
  • notes Text
  • partner_id Many2one → res.partner
    change_default=True comodel_name='res.partner' required=True string='Vendor' tracking=True
  • product_id Many2one → product.product
    comodel_name='product.product' readonly=False related='wa_line_ids.product_id' string='Product'
  • purchase_id Many2one → purchase.order
    comodel_name='purchase.order' readonly=True string='Purchase Order'
  • responsible_id Many2one → res.users
    change_default=True comodel_name='res.users' default=<expr> required=True string='Responsible Person' tracking=True
  • state Selection
    copy=False default='draft' index=True readonly=True selection=[('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')] string='Status' tracking=True
  • user_id Many2one → res.users
    comodel_name='res.users' default=<expr> index=True string='Work Acceptance Representative' tracking=True
  • wa_line_ids One2many → work.acceptance.line
    comodel_name='work.acceptance.line' inverse_name='wa_id' string='Work Acceptance Lines'
Public methods (4)
  • button_accept(self, force=False)
  • button_cancel(self)
  • button_draft(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (14)
  • currency_id Many2one
    readonly=True related='wa_id.currency_id' string='Currency'
  • date_accept Datetime
    readonly=True related='wa_id.date_accept' string='Accepted Date'
  • date_due Datetime
    readonly=True related='wa_id.date_due' string='Due Date'
  • date_receive Datetime
    readonly=True related='wa_id.date_receive' string='Received Date'
  • name Text
    required=True string='Description'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' readonly=True related='wa_id.partner_id' string='Partner'
  • price_subtotal Monetary
    compute='_compute_amount' string='Subtotal'
  • price_unit Float
    required=True string='Unit Price'
  • product_id Many2one → product.product
    comodel_name='product.product' required=True string='Product'
  • product_qty Float
    digits='Product Unit of Measure' required=True string='Quantity'
  • product_uom Many2one → uom.uom
    comodel_name='uom.uom' required=True string='Product Unit of Measure'
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line' index=True ondelete='set null' readonly=False string='Purchase Order Line'
  • responsible_id Many2one → res.users
    comodel_name='res.users' readonly=True related='wa_id.responsible_id' string='Responsible Person'
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' index=True ondelete='cascade' required=True string='WA Reference'
Public methods (0)

No public methods.

New fields (1)
  • date_accept Datetime
    required=True string='Accepted Date'
Public methods (1)
  • button_accept(self)

Loading…

Loading…

Loading…

Loading…

Loading…