Purchase Work Acceptance

purchase_work_acceptance
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/18.0/purchase_work_acceptance
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Saran440
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - 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.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
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
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)
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/16.0/purchase_work_acceptance
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, oca-ci, Saran440
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - 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

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
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
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 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'
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)
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/15.0/purchase_work_acceptance
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci, Saran440
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - 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

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
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
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)
    @api.model

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 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'
Public methods (4)
  • button_accept(self, force=False)
  • button_cancel(self)
  • button_draft(self)
  • create(self, vals)
    @api.model

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)
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_work_acceptance
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSSé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
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - 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

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
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
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)
    @api.model

New fields (4)
  • 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'
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 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'
Public methods (4)
  • button_accept(self, force=False)
  • button_cancel(self)
  • button_draft(self)
  • create(self, vals)
    @api.model

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)
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/13.0/purchase_work_acceptance
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSps-tubtim
COMMITTERS
COMMITTERSoca-travis, OCA-git-bot, Kitti U, Saran440, CarlosRoca13, Alba Riera, ps-tubtim
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - 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

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
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
Models touched (8)

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 (1)
  • action_post(self)

New fields (3)
  • 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_view_invoice(self)
  • action_view_wa(self)

New fields (1)
  • 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 (2)
  • require_wa Boolean
    default=<expr>
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' domain=<expr> string='Work Acceptance'
Public methods (1)
  • button_create_vendor_bill(self)

New fields (2)
  • require_wa Boolean
    compute='_compute_require_wa'
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' copy=False domain=<expr> string='WA Reference'
Public methods (1)
  • button_validate(self)

New fields (15)
  • 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'
Public methods (4)
  • button_accept(self, force=False)
  • button_cancel(self)
  • button_draft(self)
  • create(self, vals)
    @api.model

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
    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.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/12.0/purchase_work_acceptance
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYPurchase Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSps-tubtim
COMMITTERS
COMMITTERSPedro M. Baeza, oca-travis, Weblate, OCA-git-bot, Kitti U, Marcel Savegnago, ps-tubtim
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - 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

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
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
Models touched (8)

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_invoice_open(self)
    @api.multi
  • purchase_order_change(self)
    @api.onchange('purchase_id')

New fields (3)
  • 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_view_invoice(self)
    @api.multi
  • action_view_wa(self)
    @api.multi

New fields (1)
  • 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 (2)
  • require_wa Boolean
    default=<expr>
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' domain=<expr> string='Work Acceptance'
Public methods (1)
  • button_create_vendor_bill(self)
    @api.multi

New fields (2)
  • require_wa Boolean
    compute='_compute_require_wa'
  • wa_id Many2one → work.acceptance
    comodel_name='work.acceptance' copy=False domain=<expr> string='WA Reference'
Public methods (1)
  • button_validate(self)
    @api.multi

New fields (15)
  • 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'
Public methods (4)
  • button_accept(self, force=False)
    @api.multi
  • button_cancel(self)
    @api.multi
  • button_draft(self)
    @api.multi
  • create(self, vals)
    @api.model

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
    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.