| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/18.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Saran440 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - onboarding - analytic - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
purchase_order_view_search |
purchase.order.select | purchase.order | xpath | Inherits purchase.purchase_order_view_search |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_move_form |
account.move.form | account.move | group | Inherits purchase.view_move_form_inherit_purchase |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_type_form |
view.picking.type.form | stock.picking.type | xpath | Inherits stock.view_picking_type_form |
view_purchase_order_filter |
request.quotation.select | purchase.order | xpath | 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 |
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'
action_post(self)
create(self, vals_list)
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'
action_create_invoice(self)
action_view_wa(self)
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'
No public methods.
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'
No public methods.
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'
button_create_vendor_bill(self)
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'
button_validate(self)
bypass_wa
Boolean
help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it"
string='WA not required'
No public methods.
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'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals_list)
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'
No public methods.
date_accept
Datetime
required=True
string='Accepted Date'
button_accept(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/16.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Weblate, oca-ci, Saran440 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
purchase_order_view_search |
purchase.order.select | purchase.order | xpath | Inherits purchase.purchase_order_view_search |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_move_form |
account.move.form | account.move | group | Inherits purchase.view_move_form_inherit_purchase |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_type_form |
view.picking.type.form | stock.picking.type | field | Inherits stock.view_picking_type_form |
view_purchase_order_filter |
request.quotation.select | purchase.order | xpath | 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_search |
work.acceptance.search | work.acceptance | search | New |
view_work_acceptance_tree |
work.acceptance.tree | work.acceptance | tree | New |
view_work_accepted_date_wizard |
view.work.accepted.date.wizard | work.accepted.date.wizard | form | New |
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'
action_post(self)
create(self, vals_list)
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'
action_create_invoice(self)
action_view_wa(self)
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'
No public methods.
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'
No public methods.
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'
button_create_vendor_bill(self)
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'
button_validate(self)
bypass_wa
Boolean
help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it"
string='WA not required'
No public methods.
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
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
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_receive
Datetime
default=fields.Datetime.now
readonly=True
required=True
states={'draft': [('readonly', False)]}
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'
readonly=True
required=True
states={'draft': [('readonly', False)]}
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>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Responsible Person'
tracking=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
tracking=True
args: [('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')]
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'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals_list)
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'
No public methods.
date_accept
Datetime
required=True
string='Accepted Date'
button_accept(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/15.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci, Saran440 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
purchase_order_view_search |
purchase.order.select | purchase.order | xpath | Inherits purchase.purchase_order_view_search |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_move_form |
account.move.form | account.move | group | Inherits purchase.view_move_form_inherit_purchase |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_type_form |
view.picking.type.form | stock.picking.type | field | Inherits stock.view_picking_type_form |
view_purchase_order_filter |
request.quotation.select | purchase.order | xpath | 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_search |
work.acceptance.search | work.acceptance | search | New |
view_work_acceptance_tree |
work.acceptance.tree | work.acceptance | tree | New |
view_work_accepted_date_wizard |
view.work.accepted.date.wizard | work.accepted.date.wizard | form | New |
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'
action_post(self)
create(self, vals)
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'
action_create_invoice(self)
action_view_wa(self)
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'
No public methods.
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'
No public methods.
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'
button_create_vendor_bill(self)
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'
button_validate(self)
bypass_wa
Boolean
help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it"
string='WA not required'
No public methods.
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
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
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_receive
Datetime
default=fields.Datetime.now
readonly=True
required=True
states={'draft': [('readonly', False)]}
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'
readonly=True
required=True
states={'draft': [('readonly', False)]}
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>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Responsible Person'
tracking=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
tracking=True
args: [('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')]
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'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals)
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'
No public methods.
date_accept
Datetime
required=True
string='Accepted Date'
button_accept(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/14.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.3.1 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Sébastien Alix, oca-travis, Weblate, OCA-git-bot, Kitti U, newtratip, Héctor Villarreal Ortega, Saran440, Alessandro Uffreduzzi, Alba Riera, ps-tubtim, Prapassorn Sornkaew, oca-git-bot, Surachet Saejueng |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_move_form |
account.move.form | account.move | group | Inherits purchase.view_move_form_inherit_purchase |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_type_form |
view.picking.type.form | stock.picking.type | field | Inherits stock.view_picking_type_form |
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_search |
work.acceptance.search | work.acceptance | search | New |
view_work_acceptance_tree |
work.acceptance.tree | work.acceptance | tree | New |
view_work_accepted_date_wizard |
view.work.accepted.date.wizard | work.accepted.date.wizard | form | New |
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'
action_post(self)
create(self, vals)
wa_accepted
Boolean
compute='_compute_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'
action_create_invoice(self)
action_view_wa(self)
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'
No public methods.
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'
No public methods.
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'
button_create_vendor_bill(self)
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'
button_validate(self)
bypass_wa
Boolean
help="When 'Enforce WA on Goods Receipt' is set, this option type can by pass it"
string='WA not required'
No public methods.
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
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
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_receive
Datetime
default=fields.Datetime.now
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Received Date'
invoice_ref
Char
copy=False
string='Invoice Reference'
name
Char
copy=False
default='New'
index=True
required=True
notes
Text
string='Notes'
partner_id
Many2one → res.partner
change_default=True
comodel_name='res.partner'
readonly=True
required=True
states={'draft': [('readonly', False)]}
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>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Responsible Person'
tracking=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
tracking=True
args: [('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')]
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'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals)
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'
No public methods.
date_accept
Datetime
required=True
string='Accepted Date'
button_accept(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/13.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | ps-tubtim |
| COMMITTERS | |
| COMMITTERS | oca-travis, OCA-git-bot, Kitti U, Saran440, CarlosRoca13, Alba Riera, ps-tubtim |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:18 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_move_form |
account.move.form | account.move | xpath | Inherits purchase.view_move_form_inherit_purchase |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
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_search |
work.acceptance.search | work.acceptance | search | New |
view_work_acceptance_tree |
work.acceptance.tree | work.acceptance | tree | New |
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'
action_post(self)
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'
action_view_invoice(self)
action_view_wa(self)
wa_line_ids
One2many → work.acceptance.line
comodel_name='work.acceptance.line'
inverse_name='purchase_line_id'
readonly=True
string='WA Lines'
No public methods.
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'
No public methods.
require_wa
Boolean
default=<expr>
wa_id
Many2one → work.acceptance
comodel_name='work.acceptance'
domain=<expr>
string='Work Acceptance'
button_create_vendor_bill(self)
require_wa
Boolean
compute='_compute_require_wa'
wa_id
Many2one → work.acceptance
comodel_name='work.acceptance'
copy=False
domain=<expr>
string='WA Reference'
button_validate(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
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
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_receive
Datetime
default=fields.Datetime.now
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Received Date'
invoice_ref
Char
copy=False
string='Invoice Reference'
name
Char
copy=False
default='New'
index=True
required=True
notes
Text
string='Notes'
partner_id
Many2one → res.partner
change_default=True
comodel_name='res.partner'
readonly=True
required=True
states={'draft': [('readonly', False)]}
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>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Responsible Person'
tracking=True
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
tracking=True
args: [('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')]
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'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals)
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
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/purchase-workflow |
| GIT | |
| GIT | https://github.com/OCA/purchase-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/purchase-workflow/tree/12.0/purchase_work_acceptance |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Purchase Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | ps-tubtim |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, oca-travis, Weblate, OCA-git-bot, Kitti U, Marcel Savegnago, ps-tubtim |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/purchase-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:23 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - purchase_stock - stock_account - stock - product - base - decimal_precision - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - http_routing - digest - purchase |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form_inherit |
purchase.order.form.inherit | purchase.order | xpath | Inherits purchase.purchase_order_form |
res_config_settings_view_form_purchase |
res.config.settings.view.form.inherit.purchase | res.config.settings | xpath | Inherits purchase.res_config_settings_view_form_purchase |
view_invoice_asset_category |
account.invoice.supplier.form | account.invoice | xpath | Inherits account.invoice_supplier_form |
view_picking_form |
stock.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
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_search |
work.acceptance.search | work.acceptance | search | New |
view_work_acceptance_tree |
work.acceptance.tree | work.acceptance | tree | New |
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'
action_invoice_open(self)
purchase_order_change(self)
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'
action_view_invoice(self)
action_view_wa(self)
wa_line_ids
One2many → work.acceptance.line
comodel_name='work.acceptance.line'
inverse_name='purchase_line_id'
readonly=True
string='WA Lines'
No public methods.
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'
No public methods.
require_wa
Boolean
default=<expr>
wa_id
Many2one → work.acceptance
comodel_name='work.acceptance'
domain=<expr>
string='Work Acceptance'
button_create_vendor_bill(self)
require_wa
Boolean
compute='_compute_require_wa'
wa_id
Many2one → work.acceptance
comodel_name='work.acceptance'
copy=False
domain=<expr>
string='WA Reference'
button_validate(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
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
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Due Date'
date_receive
Datetime
default=fields.Datetime.now
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Received Date'
invoice_ref
Char
copy=False
string='Invoice Reference'
name
Char
copy=False
default='New'
index=True
required=True
notes
Text
string='Notes'
partner_id
Many2one → res.partner
change_default=True
comodel_name='res.partner'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Vendor'
track_visibility='always'
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>
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Responsible Person'
track_visibility='always'
state
Selection
copy=False
default='draft'
index=True
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Draft'), ('accept', 'Accepted'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
comodel_name='res.users'
default=<expr>
index=True
string='Work Acceptance Representative'
track_visibility='onchange'
wa_line_ids
One2many → work.acceptance.line
comodel_name='work.acceptance.line'
inverse_name='wa_id'
string='Work Acceptance Lines'
button_accept(self, force=False)
button_cancel(self)
button_draft(self)
create(self, vals)
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
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'
No public methods.