Purchase Request Exception

purchase_request_exception
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_request_exception
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Purchase
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 OCA/purchase-workflow:
    - purchase_request
OCA/server-tools:
    - base_exception
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 allows you attach several customizable exceptions to your
purchase request in a way that you can filter requests by exceptions
type and fix them.

This is especially useful in an scenario for mass purchases requests
import, because it's likely some orders have errors when you import them
(like product not found in Odoo, wrong line format etc.)

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_purchase_request_form purchase_request_exception.view_purchase_request_form purchase.request sheet Inherits purchase_request.view_purchase_request_form
view_purchase_request_search purchase_request_exception.view_purchase_request_search purchase.request field Inherits purchase_request.view_purchase_request_search
view_purchase_request_tree purchase_request_exception.view_purchase_request_tree purchase.request field Inherits purchase_request.view_purchase_request_tree
Models touched (4)

New fields (2)
  • model Selection
    ondelete={'purchase.request': 'cascade', 'purchase.request.line': 'cascade'} selection_add=[('purchase.request', 'Purchase request'), ('purchase.request.line', 'Purchase request line')]
  • purchase_request_ids Many2many → purchase.request
    comodel_name='purchase.request' string='Purchase Requests'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • button_draft(self)
  • button_to_approve(self)
  • detect_exceptions(self)
  • onchange_ignore_exception(self)
    @api.onchange('line_ids')
  • purchase_request_check_exception(self)
    @api.constrains('ignore_exception', 'line_ids', 'state')
  • test_all_draft_requests(self)
    @api.model

New fields (1)
  • related_model_id Many2one → purchase.request
    args: 'purchase.request', 'Purchase request'
Public methods (1)
  • action_confirm(self)

New fields (1)
  • ignore_exception Boolean
    related='request_id.ignore_exception' store=True string='Ignore Exceptions'
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/16.0/purchase_request_exception
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Purchase
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 00:53:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/purchase-workflow:
    - purchase_request
OCA/server-tools:
    - base_exception
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 (3)
XML IDNameModelTypeStatus
view_purchase_request_form purchase_request_exception.view_purchase_request_form purchase.request sheet Inherits purchase_request.view_purchase_request_form
view_purchase_request_search purchase_request_exception.view_purchase_request_search purchase.request field Inherits purchase_request.view_purchase_request_search
view_purchase_request_tree purchase_request_exception.view_purchase_request_tree purchase.request field Inherits purchase_request.view_purchase_request_tree
Models touched (4)

New fields (2)
  • model Selection
    ondelete={'purchase.request': 'cascade', 'purchase.request.line': 'cascade'} selection_add=[('purchase.request', 'Purchase request'), ('purchase.request.line', 'Purchase request line')]
  • purchase_request_ids Many2many → purchase.request
    comodel_name='purchase.request' string='Purchase Requests'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • button_draft(self)
  • button_to_approve(self)
  • detect_exceptions(self)
  • onchange_ignore_exception(self)
    @api.onchange('line_ids')
  • purchase_request_check_exception(self)
    @api.constrains('ignore_exception', 'line_ids', 'state')
  • test_all_draft_requests(self)
    @api.model

New fields (1)
  • related_model_id Many2one → purchase.request
    args: 'purchase.request', 'Purchase request'
Public methods (1)
  • action_confirm(self)

New fields (1)
  • ignore_exception Boolean
    related='request_id.ignore_exception' store=True string='Ignore Exceptions'
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/15.0/purchase_request_exception
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Purchase
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 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/purchase-workflow:
    - purchase_request
OCA/server-tools:
    - base_exception
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - purchase_stock
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_purchase_request_form purchase_request_exception.view_purchase_request_form purchase.request sheet Inherits purchase_request.view_purchase_request_form
view_purchase_request_search purchase_request_exception.view_purchase_request_search purchase.request field Inherits purchase_request.view_purchase_request_search
view_purchase_request_tree purchase_request_exception.view_purchase_request_tree purchase.request field Inherits purchase_request.view_purchase_request_tree
Models touched (4)

New fields (2)
  • model Selection
    ondelete={'purchase.request': 'cascade', 'purchase.request.line': 'cascade'} selection_add=[('purchase.request', 'Purchase request'), ('purchase.request.line', 'Purchase request line')]
  • purchase_request_ids Many2many → purchase.request
    comodel_name='purchase.request' string='Purchase Requests'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • button_draft(self)
  • button_to_approve(self)
  • detect_exceptions(self)
  • onchange_ignore_exception(self)
    @api.onchange('line_ids')
  • purchase_request_check_exception(self)
    @api.constrains('ignore_exception', 'line_ids', 'state')
  • test_all_draft_requests(self)
    @api.model

New fields (1)
  • related_model_id Many2one → purchase.request
    args: 'purchase.request', 'Purchase request'
Public methods (1)
  • action_confirm(self)

New fields (1)
  • ignore_exception Boolean
    related='request_id.ignore_exception' store=True string='Ignore Exceptions'
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/14.0/purchase_request_exception
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules/Purchase
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, Kitti U
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/purchase-workflow:
    - purchase_request
OCA/server-tools:
    - base_exception
odoo/odoo:
    - purchase
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - purchase_stock
    - stock_account
    - stock
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_purchase_request_form purchase_request_exception.view_purchase_request_form purchase.request sheet Inherits purchase_request.view_purchase_request_form
view_purchase_request_search purchase_request_exception.view_purchase_request_search purchase.request field Inherits purchase_request.view_purchase_request_search
view_purchase_request_tree purchase_request_exception.view_purchase_request_tree purchase.request field Inherits purchase_request.view_purchase_request_tree
Models touched (4)

New fields (2)
  • model Selection
    ondelete={'purchase.request': 'cascade', 'purchase.request.line': 'cascade'} selection_add=[('purchase.request', 'Purchase request'), ('purchase.request.line', 'Purchase request line')]
  • purchase_request_ids Many2many → purchase.request
    comodel_name='purchase.request' string='Purchase Requests'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • button_draft(self)
  • button_to_approve(self)
  • detect_exceptions(self)
  • onchange_ignore_exception(self)
    @api.onchange('line_ids')
  • purchase_request_check_exception(self)
    @api.constrains('ignore_exception', 'line_ids', 'state')
  • test_all_draft_requests(self)
    @api.model

New fields (1)
  • related_model_id Many2one → purchase.request
    args: 'purchase.request', 'Purchase request'
Public methods (1)
  • action_confirm(self)

New fields (1)
  • ignore_exception Boolean
    related='request_id.ignore_exception' store=True string='Ignore Exceptions'
Public methods (0)

No public methods.