TIP: You can type at any time to perform a new search.
Sale Cancel Reason
sale_cancel_reason · OCA/sale-workflow
- Repository
- OCA/sale-workflow · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Sale
- Folder size
- 0.32 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, Odoo Community Association (OCA)
- Maintainers
- Camptocamp, Odoo Community Association (OCA)
- Committers
- OCA-git-bot, oca-ci, Nacho Ales Lopez
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
When a sale order is canceled, a reason must be given, it is chosen from a configured list.
Code Analysis ⓘ
Views touched (5)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mass_cancel_orders_view_form |
sale.mass.cancel.orders.form | sale.mass.cancel.orders | form | Inherits sale.mass_cancel_orders_view_form |
sale_order_cancel_wizard_view_form |
sale.order.cancel.wizard.view.form | sale.order.cancel.wizard | form | New |
view_order_form |
sale.order.form | sale.order | form | Inherits sale.view_order_form |
view_sale_order_cancel_reason_form |
Sale Order Cancel Reason | sale.order.cancel.reason | form | New |
view_sale_order_cancel_reason_tree |
Sale Order Cancel Reason | sale.order.cancel.reason | list | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (1)
-
reason_idMany2one → sale.order.cancel.reasonrequired=Truestring='Reason' args: 'sale.order.cancel.reason'
-
action_mass_cancel(self)
New fields (1)
-
cancel_reason_idMany2one → sale.order.cancel.reasoncopy=Falseondelete='restrict'readonly=Truestring='Reason for cancellation'tracking=True args: 'sale.order.cancel.reason'
-
action_cancel_wizard(self) -
action_draft(self)
New fields (1)
-
nameCharrequired=Truetranslate=True args: 'Reason'
No public methods.
New fields (2)
-
order_idMany2one → sale.ordercomodel_name='sale.order'ondelete='cascade'required=Truestring='Order' -
reason_idMany2one → sale.order.cancel.reasonrequired=Truestring='Reason' args: 'sale.order.cancel.reason'
-
action_cancel(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…