Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
1.0.1
Category
Generic Modules/Sale
Folder size
0.65 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-07 09:06:23
Authors
Camptocamp, Akretion, Odoo Community Association (OCA), Sodexis
Maintainers
Camptocamp, Akretion, Odoo Community Association (OCA), Sodexis
Committers
PaoloYam, Weblate, Franco Leyes, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_order_approval_block
Description
This module allows you attach several customizable exceptions to your
sale order in a way that you can filter orders by exceptions type and
fix them.

This is especially useful in an scenario for mass sales order 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 (6)
XML IDNameModelTypeStatus
res_config_settings_view_form_sale_exception res.config.settings form Inherits sale.res_config_settings_view_form
view_order_form sale_exception.view_order_form sale.order form Inherits sale.view_order_form
view_order_tree sale_exception.view_order_tree sale.order tree Inherits sale.view_order_tree
view_quotation_tree sale_exception.view_order_tree sale.order tree Inherits sale.view_quotation_tree
view_sale_exception_confirm Sale Exceptions sale.exception.confirm form New
view_sales_order_filter sale_exception.view_sales_order_filter sale.order Inherits sale.view_sales_order_filter
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (6)

New fields (2)
  • model Selection
    ondelete={'sale.order': 'cascade', 'sale.order.line': 'cascade'} selection_add=[('sale.order', 'Sale order'), ('sale.order.line', 'Sale order line')]
  • sale_ids Many2many → sale.order
    string='Sales' args: 'sale.order'
Public methods (0)

No public methods.

New fields (1)
  • sale_exception_show_popup Boolean
    default=True string='Sale Exception Popup'
Public methods (0)

No public methods.

New fields (1)
  • sale_exception_show_popup Boolean
    readonly=False related='company_id.sale_exception_show_popup'
Public methods (0)

No public methods.

New fields (1)
  • related_model_id Many2one → sale.order
    args: 'sale.order', 'Sale'
Public methods (1)
  • action_confirm(self)

New fields (0)

No new fields.

Public methods (6)
  • action_confirm(self)
  • action_draft(self)
  • detect_exceptions(self)
  • sale_check_exception(self)
  • test_all_draft_orders(self)
    @api.model
  • write(self, vals)

New fields (4)
  • exception_ids Many2many → exception.rule
    copy=False readonly=True string='Exceptions' args: 'exception.rule'
  • exceptions_summary Html
    compute='_compute_exceptions_summary' readonly=True
  • ignore_exception Boolean
    related='order_id.ignore_exception' store=True string='Ignore Exceptions'
  • is_exception_danger Boolean
    compute='_compute_is_exception_danger'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…