Repository
OCA/purchase-workflow · module folder · Try on Runboat
Module version
1.0.0
Category
Purchase Management
Folder size
0.08 MB
License
AGPL-3
Application
No
Auto-installable
Yes
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
None
Description
This module add ability to create Work Acceptance based on the
predefined invoice plan, one by one.

**Note:**

Because WA is now based on invoice plan, the option "Create Bill by
Plan" will be removed.

User will be left with only option "Create Bill" (and to choose WA), the
chosen WA is now used to control the quantity in invoice instead of the
invoice plan.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
purchase_order_form purchase.order.form.invoice.plan purchase.order form Inherits purchase_invoice_plan.purchase_order_form
purchase_order_form_inherit purchase.order.form.invoice.plan purchase.order form Inherits purchase_work_acceptance.purchase_order_form_inherit
view_purchase_invoice_plan_form view_purchase_invoice_plan_form purchase.invoice.plan form Inherits purchase_invoice_plan.view_purchase_invoice_plan_form
view_purchase_invoice_plan_tree view_purchase_invoice_plan_tree purchase.invoice.plan tree Inherits purchase_invoice_plan.view_purchase_invoice_plan_tree
view_purchase_invoice_plan_tree_readonly view_purchase_invoice_plan_tree_readonly purchase.invoice.plan tree Inherits purchase_invoice_plan.view_purchase_invoice_plan_tree_readonly
view_select_work_acceptance_invoice_plan_wizard select_work_acceptance_invoice_plan_wizard select.work.acceptance.invoice.plan.wizard form New
view_work_acceptance_form work.acceptance.form work.acceptance form Inherits purchase_work_acceptance.view_work_acceptance_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (6)

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 (8)
  • amount Monetary
    compute='_compute_amount' inverse='_inverse_amount'
  • analytic_distribution Json
    related='order_line_id.analytic_distribution'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' related='wizard_id.order_id.currency_id'
  • order_id Many2one
    related='wizard_id.order_id'
  • order_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line' domain="[('order_id', '=', order_id)]" index=True required=True string='Product Line'
  • qty_not_accepted Float
    digits='Product Unit of Measure' related='order_line_id.qty_to_accept' string='Not Accepted'
  • quantity Float
    digits='Product Unit of Measure' string='To Accept'
  • wizard_id Many2one → select.work.acceptance.invoice.plan.wizard
    comodel_name='select.work.acceptance.invoice.plan.wizard' ondelete='cascade'
Public methods (0)

No public methods.

New fields (7)
  • active_installment_ids Many2many → purchase.invoice.plan
    comodel_name='purchase.invoice.plan' compute='_compute_active_installment_ids'
  • apply_method_id Many2one → ir.actions.server
    comodel_name='ir.actions.server' domain=[('usage', '=', 'ir_actions_server'), ('model_id.model', '=', 'select.work.acceptance.invoice.plan.wizard')] help='Choose the method to find matcing product line for this installment' string='Base On'
  • installment_id Many2one → purchase.invoice.plan
    comodel_name='purchase.invoice.plan' domain="[('id', 'in', active_installment_ids), ('installment', '>', 0)]" help='List only installment that has not been used in WA (draft, accepted)' required=True string='Invoice Plan'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr>
  • order_line_ids Many2many → purchase.order.line
    column1='wizard_id' column2='order_line_id' comodel_name='purchase.order.line' compute='_compute_order_line_ids' domain="[('order_id', '=', order_id)]" help='List of product lines used to create WA. Blank means all' readonly=False relation='select_wa_invoice_plan_order_line_rel' store=True string='Product Filter'
  • valid_amount Boolean
    compute='_compute_valid_amount'
  • wa_qty_line_ids One2many → select.work.acceptance.invoice.plan.qty
    comodel_name='select.work.acceptance.invoice.plan.qty' compute='_compute_wa_qty_line_ids' inverse_name='wizard_id' readonly=False store=True
Public methods (2)
  • button_create_wa(self)
  • default_get(self, field_list)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • installment_id Many2one → purchase.invoice.plan
    comodel_name='purchase.invoice.plan' copy=False ondelete='restrict' readonly=True string='Invoice Plan'
Public methods (0)

No public methods.

Loading…

Loading…