Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Extra Tools
  3. All in One Cancel Sale, Purchase, Picking, Invoice and Payment v 18.0
  4. Sales Conditions FAQ

All in One Cancel Sale, Purchase, Picking, Invoice and Payment

by SprintERP Technologies https://sprinterp.com
Odoo

$ 40.03

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
sprinterp-logo

All in One Cancel Sale, Purchase, Picking, Invoice and Payment

Cancel, Reset to Draft, or Delete records in bulk across Sales, Purchases, Invoices, Payments, and Stock Pickings with interactive server action tools and absolute security management.

Key Module Highlights

3-Way Cancellation Engine
Bulk Action Server Hooks
Global Config Panel Matrix
Anti-Bypass Access Guards
User Form Toggle Controls
Auto Group Synchronization

All in One Cancel Sale, Purchase, Picking, Invoice and Payment

Step 1
Configure Advanced Access Rights on User Profiles

Navigate to **Settings > Users & Companies > Users** and open the targeted user profile (e.g., Mitchell Admin). Scroll down to the custom **Cancel Configuration Rights** section. Here, you can grant explicit cancellation authority by toggling the dedicated boolean switches for **Cancel Account Invoice**, **Cancel Purchase Order**, **Cancel Sale Order**, and **Cancel Stock Picking**. These choices dictate exactly which document reversals the user can process.

Odoo User Security Panel Cancel Configuration Access Rights Management Matrix

Security Synchronization Logic: Activating these toggles runs the underlying _sync_cancel_groups() API method. It automatically appends (or removes) the user inside native IR security groups such as group_cancel_sale_order, establishing an anti-bypass access matrix immediately.

Step 2
Set Global Cancellation Behavior for Sale Orders

Navigate to **Settings > Sales**. Scroll down to find the custom **Cancel Configuration For Sale Order** block. Here, you can define the core behavior of your cancellation engine using the custom radio widget. Choose between three distinct modes: **Cancel Only** (standard document reversal), **Cancel and Set to Draft** (reverts and forces state back to quotation state), or **Cancel and Delete** (cancels and completely unlinks the record). Click **Save** to apply the configuration.

Odoo Sales Settings Cancel Type Radio Widget Configuration Matrix

System Param Mapping: This selection maps directly to the system config parameter key se_cancel_all_orders.sale_cancel_type. When the native cancel method is called, the backend reads this parameter to decide whether to run a simple update, state write, or an automatic database unlink command.

Step 3
Execute Single Document Cancellation inside Sales Order Form View

Navigate to **Sales > Orders > Quotations / Sales Orders** and open an active record (e.g., S00025). Click on the custom-overridden native **Cancel** button located in the top header action panel. The system will instantly check the logged-in user's credentials against the custom security access configuration parameters and initiate the background execution engine.

Odoo Sales Order Form View Active Document Header Cancel Button Action

Security Interception Check: Clicking this triggers the inherited action_cancel() method. If the current user profile lacks the group_cancel_sale_order access right mapping, the system instantly blocks execution and raises an explicit UserError dialog box.

Step 4
Verify Standard 'Cancel Only' Document State Reversal

When the global cancellation type parameter is set to **Cancel Only**, clicking the header cancel action panel instantly processes document state modifications. As visible in the interface layout grid, the lifecycle stage ribbon dynamically updates to **Cancelled**, indicating that the document workflow has been successfully intercepted and stopped according to native parameters.

Odoo Sales Order Form View Document Lifecycle Ribbon Updated to Cancelled State

Backend Pipeline Flow: The core python override invokes the base super(SaleOrder, self).action_cancel() framework logic. Since the configuration matches the default fallback execution parameters, the record state is safely updated to 'cancel' directly inside the database rows.

Step 5
Execute Mass Cancellation Actions via Sales List Dropdown

Navigate to **Sales > Orders > Quotations** list view grid. Select multiple targeted rows (e.g., S00024 and S00023) by ticking the left side checkbox controllers. Once selected, click on the **Actions** dropdown menu button inside the top center command banner. The module dynamically reveals three custom automated server actions: **Cancel Only**, **Cancel and Reset to Draft**, and **Cancel and Delete**. Click on your targeted option to execute bulk adjustments.

Odoo Sales Quotations List View Grid Bulk Server Actions Dropdown Menu Panel

Contextual Bulk Execution: These options invoke custom `ir.actions.server` code blocks. The code forcefully injects a unique context dictionary key from_bulk_select=True into the pipeline loop. This instructs the base model overrides to process multiple chosen row IDs synchronously without throwing context execution blockages.

Step 6
Verify Successful Mass Document Cancellation Results

After executing the bulk cancellation operation from the list dropdown panel, the system dynamically reloads the current workspace. As highlighted in the data rows grid, both targeted records (**S00024** and **S00023**) have had their status parameters updated to **Cancelled** simultaneously, proving the effective processing power of the mass execution workflow engine.

Odoo Sales Quotations List View Displaying Multiple Simultaneously Cancelled Records Grid

Loop Processing Validation: The custom server action iterates over the browse collection using an optimized for r in records: loop structure. By passing from_bulk_select=True via context fields, it overrides standard constraints to execute secure transaction commits directly across the database layers.

Step 7
Configure 'Cancel and Set to Draft' Behavior for Sale Orders

Navigate to **Settings > Sales** and locate the custom **Cancel Configuration For Sale Order** container. Change the current parameter value by selecting the second radio option: **Cancel and Set to Draft**. This advanced mode instructs the cancellation engine to automatically transition documents directly back into modification-ready states instead of locking them down as cancelled records. Click **Save** to apply the configuration.

Odoo Sales Settings Cancel and Set to Draft Radio Configuration Workspace

State Logic Redirection: By switching this flag, the backend workflow condition checks evaluate cancel_type == 'draft' as true. Instead of stopping after the standard super call, the inherited pipeline triggers an automatic self.write({'state': 'draft'}) row update execution parameters instantly.

Step 8
Execute Single Document Cancellation Under 'Draft' Redirection Mode

Navigate back to **Sales > Orders > Quotations** and open an active record (e.g., S00014) that needs structural revision. Click on the native **Cancel** button inside the top header workflow status bar. With the newly updated global configurations active, the engine will intercept the standard termination hook and dynamically force a state reset.

Odoo Sales Order Form View Header Cancel Trigger Operation Screen

Advanced Process Interception: The execution pipeline validates security parameters before calling the super script layer. Since the system parameter context verifies single document handling (absence of from_bulk_select), it prepares the document rows for automated workflow state transitions.

Step 9
Verify Automated Automatic State Reset to Quotation (Draft)

Once the header cancellation tool is executed, the advanced processing engine intercepts the native lifecycle block. Instead of leaving the record in a locked state, it instantly forces a dynamic write operation. As shown on the top-right status ribbon tracking bar, the document transitions directly back to the **Quotation** (Draft) phase, instantly re-enabling editing, line adjustments, and confirmation flows.

Odoo Sales Order Form View Workflow Ribbon Safely Reset Back to Quotation Draft State

Post-Cancellation Automation: The overridden method validates that the backend system parameter value equals draft. It seamlessly executes the database instruction self.write({'state': 'draft'}) immediately after completing native unlinking protocols, ensuring a clean automated loop.

Step 10
Verify Grid Refresh Results for Form View Single Resets

Navigate to the **Sales > Orders > Quotations** backend data dashboard list. As highlighted on the real-time layout grid tracker rows, record item **S00014** accurately maintains its status stage tag highlighted as a dynamic blue **Quotation** badge. This proves that individual record adjustments on form headers process workflow parameters perfectly without leaving orphaned logs.

Odoo Sales Quotations Tree Grid Dashboard Displaying Form View Single Redirection Outcomes

Workflow Thread Isolation: The background database transaction confirms that the script correctly processes separate logic threads. Because it handles a standalone active row id rather than an iterative multi-select bulk context collection array, the framework safely saves transaction states directly into the system layers.

Step 11
Execute Mass 'Cancel and Reset to Draft' via Server Actions Dropdown

Navigate to **Sales > Orders > Quotations** list view. Select multiple targeted rows simultaneously (e.g., S00013, S00012, and S00010) by ticking the left side checkbox controllers. Open the top center **Actions** dropdown menu and select the custom integrated server option: **Cancel and Reset to Draft**. This triggers a rapid mass conversion sequence directly across all selected record sets at once.

Odoo Sales List View Dashboard Bulk Cancel and Reset to Draft Action Selection

Mass Server Action Execution: This action invokes the automated code block action_sale_order_cancel_draft_bulk. It checks permissions for each selected ID, passes the data matrix via a rapid context pipeline, intercepts native stage blocks, and forcefully applies draft state overrides across the selected records.

Step 12
Verify Mass Reset Results inside Sales Grid View Dashboard

After executing the bulk cancel and reset action, the workspace automatically updates the view. As highlighted in the selection block, rows **S00013**, **S00012**, and **S00010** have successfully bypassed locked cancellation states. Their lifecycle status parameters have simultaneously shifted back to the active blue **Quotation** stage tag.

Odoo Sales Dashboard Tree Grid Displaying Multiple Synchronously Reset Quotation Badges

Mass Database Updates: The background database transaction executes the server action code blocks iteratively. By safely invoking r.with_context(from_bulk_select=True).action_cancel() followed immediately by a rapid r.write({'state': 'draft'}) pipeline, the framework alters massive datasets instantly without causing memory registry leaks.

Step 13
Configure 'Cancel and Delete' Permanent Purge Behavior for Sale Orders

Navigate to **Settings > Sales** and find the custom **Cancel Configuration For Sale Order** container panel. Update the operational configuration by selecting the third radio option parameter: **Cancel and Delete**. This robust enterprise-grade utility instructs the engine to not only process termination hooks but to immediately wipe the document completely out of database views. Click **Save** to apply.

Odoo Sales Settings Cancel and Delete Custom Engine Configuration Dashboard Row

Database Deletion Logic: When this configuration evaluates to true, the model override invokes standard super cancellation steps first, executes a direct cursor save point command (self.env.cr.commit()), and immediately runs the destructive database pipeline command self.unlink() to clear data blocks safely.

Step 14
Execute Single Document Permanent Purge via Form View Header

Navigate to **Sales > Orders > Quotations** and select the targeted record items (e.g., S00001) from your dashboard container list rows. Click on the header action panel **Cancel** button. With the system configuration flags matching the permanent delete parameters, the framework triggers an automatic post-cancel cleanup protocol inside database tables instantly.

Odoo Sales Order Form View Header Permanent Delete Cancel Click Trigger

Transactional Purge Interception: The core backend code validates the context values loop. Because cancel_type == 'delete' is evaluated, the server code overrides native system lifecycle parameters by setting the row to cancel state first, firing database synchronization commits, and instantly unlinking data rows.

Step 15
Verify Record Purge via Native UI Exception Alerts

Immediately after executing the form view header cancellation on a record configured for deletion, the backend engine processes the database wipe. Since the active view tries to read a record that no longer exists, Odoo displays a native validation alert toast at the top-right corner: *"It seems the records with IDs 1 cannot be found. They might have been deleted."* This confirms that the data has been purged successfully.

Odoo Form View Validation Notification Toast for Missing or Purged SQL Database ID

Unlink Sync Verification: The module utilizes self.env.cr.commit() right before running self.unlink(). This ensures that the state changes are fully locked into the active transaction before Odoo's web client triggers its view synchronization protocols, avoiding system page freeze errors.

Step 16
Execute Mass 'Cancel and Delete' Permanent Purge via Server Actions

Navigate to **Sales > Orders > Quotations** list view dashboard. Select multiple or all targeted transaction records at once by ticking the master checkbox controller on the top grid header (e.g., 16 items selected). Click on the central **Actions** dropdown menu button inside the command banner, and choose the third custom integrated options panel: **Cancel and Delete** to trigger an automated batch removal sequence instantly.

Odoo Sales List Grid View Dashboard Batch Selection for Mass Cancel and Delete Action Panel

Batch Deletion Framework: This action fires the automated code block action_sale_order_cancel_delete_bulk. The script processes each selected row ID through an optimized loop context, updates their state values to cancel, applies direct database transaction commits, and instantly unlinks massive blocks of selected datasets safely.

Step 17
Verify Complete Database Reset and Empty List View Parameters

After executing the mass batch purge sequence, the backend server updates view states and forces a layout refresh. As visible in the active panel, the entire quotations data grid has been wiped clean, displaying Odoo's native empty dashboard onboarding banner placeholder. This completely confirms that all targeted entries were successfully purged directly out of database tables without leaving stale or corrupt relational hooks behind.

Odoo Sales Quotations Empty List Grid View Banner Onboarding After Successful Mass Deletion

Complete Purge Execution: The automated process successfully targeted every record ID passed in the active collection. By executing native model validations inside the batch loop, the framework purges all row entries and related internal dependencies, providing a clean database environment for testing cycles.

Step 18
Configure Global Cancellation Behavior for Purchase Orders

Navigate to **Settings > Purchase**. Scroll down to find the custom **Cancel Configuration For Purchase Order** block section. Here, you can define the core behavior of your procurement cancellation workflows using the custom radio widget. Select the first mode: **Cancel Only** to enforce standard document reversal that flags items as cancelled without extra manipulation. Click **Save** to apply the configuration.

Odoo Purchase Settings Cancel Type Radio Widget Configuration Matrix Row

System Param Mapping: This selection maps directly to the system config parameter key se_cancel_all_orders.purchase_cancel_type. When the native purchase cancel method is invoked, the inherited python override reads this parameter to decide whether to execute a standard super update or advance further down custom workflow loops.

Step 19
Execute Single Document Cancellation inside Purchase Order Form View

Navigate to **Purchase > Orders > Requests for Quotation / Purchase Orders** and open an active procurement record (e.g., P00008). Click on the custom-overridden native **Cancel** button located in the top header action status bar panel. The framework will instantly check the logged-in user's credentials against the custom security group mapping matrix and initiate the backend execution engine loop.

Odoo Purchase Order Form View Active Document Header Cancel Button Action Panel

Security Interception Check: Clicking this button triggers the inherited python override method button_cancel() inside the purchase order model extensions. If the current user lacks the group_cancel_purchase_order access rights, the system blocks the execution and instantly raises a structured UserError dialog box.

Step 20
Verify Single Purchase Document 'Cancel Only' Grid Outcomes

Navigate to the **Purchase > Orders > Requests for Quotation** backend data dashboard list. As highlighted on the real-time layout grid rows tracker, the record item **P00008** accurately reflects its updated state parameter via a clear grey **Cancelled** status badge. This ensures the document workflow has been safely terminated without extra database adjustments.

Odoo Purchase RFQ List Grid Displaying Successful Cancel Only Status Tag Outcome

Backend Pipeline Flow: The core python override invokes the base super(PurchaseOrder, self).button_cancel() framework logic. Since the configuration matches the default fallback execution parameters, the record state is safely updated to 'cancel' directly inside the database rows.

Step 21
Execute Mass Cancellation via Purchase List Dropdown

Navigate to the **Purchase > Orders > Requests for Quotation** list view grid. Select multiple targeted rows simultaneously (e.g., P00007 and P00006) by ticking the left side checkbox controllers. Once selected, click on the **Actions** dropdown menu button inside the top center command banner. The module dynamically reveals three custom automated server options. Select the first mass option: **Cancel Only** to process simultaneous status changes.

Odoo Purchase RFQ List View Grid Mass Action Dropdown Panel

Contextual Bulk Execution: This calls the custom server action action_purchase_order_cancel_only_bulk. It checks permissions for the selected records and injects the context variable from_bulk_select=True into the pipeline, executing the cancellation logic across all targeted IDs in a secure transaction loop.

Step 22
Verify Successful Mass Purchase Document Cancellation Results

After executing the batch cancellation operation from the list dropdown panel, the workspace automatically refreshes. As highlighted inside the data rows dashboard section, both targeted records (**P00007** and **P00006**) have had their status configurations updated to **Cancelled** simultaneously, verifying the robust speed and capability of the bulk processing engine.

Odoo Purchase RFQ Dashboard Grid Displaying Multiple Simultaneously Cancelled Records

Loop Processing Validation: The underlying server action script iterates over the browse data collection matrix using an optimized loop. Because from_bulk_select=True is safely injected inside the context pool, the backend system circumvents individual document parameters to push clean transaction updates to the SQL layer.

Step 23
Configure Global Cancellation Behavior for Stock Pickings

Navigate to **Settings > Inventory**. Scroll down to find the custom **Cancel Configuration For Stock Picking** block section. Here, you can define the precise operational behavior of your warehouse inventory transfer reversals using the custom radio widget. Select the first option: **Cancel Only** to enforce standard log termination that marks shipments as cancelled without structural deletion. Click **Save** to apply the configuration.

Odoo Inventory Settings Stock Picking Cancel Type Radio Configuration Matrix Row

System Param Mapping: This selection maps directly to the system config parameter key se_cancel_all_orders.picking_cancel_type. When a stock picking cancel request runs, the overridden python logic scans this key value to decide whether to stop at base execution or advance into automated draft rollback loops.

Step 24
Execute Single Inventory Transfer Cancellation via Form View Header

Navigate to **Inventory > Operations > Transfers** (or click through Delivery Orders) and open an active stock picking record (e.g., WH/OUT/00006). Click on the custom-overridden native **Cancel** button located in the top header action status bar panel. The framework will instantly check the logged-in user's privileges against the custom security access configuration parameters and initiate the background execution engine loop.

Odoo Inventory Stock Picking Form View Active Delivery Order Cancel Button Trigger

Security Interception Check: Clicking this button triggers the inherited python override method action_cancel() inside the stock.picking model extensions. If the current user profile lacks the group_cancel_stock_picking access right mapping, the system instantly blocks execution and raises an explicit UserError dialog box.

Step 25
Verify Inventory Transfer 'Cancel Only' Workflow Lifecycle Ribbon

When the global configuration parameters for warehouse movements are left on the standard **Cancel Only** behavior flags, clicking the action control panel instantly intercepts current lifecycle paths. As visible on the top-right tracker status bar tracking nodes, the document's state dynamically switches to **Cancelled**, successfully restricting any further product packaging or outbound delivery staging operations.

Odoo Delivery Order Form View Workflow Lifecycle Ribbon Updated to Cancelled State

Backend Pipeline Flow: The core backend python script invokes the base super(StockPicking, self).action_cancel() framework parameters. Since the configuration parameters dictate standard termination hooks without extra structural triggers, the row updates its selection keys cleanly inside the warehouse management registries.

Step 26
Verify Grid Refresh Results for Single Inventory Transfer Cancellations

Navigate to the **Inventory > Operations > Transfers** list view dashboard. As highlighted on the real-time operational data grid dashboard tracking rows, the record item **WH/OUT/00006** accurately reflects its updated state parameter via a clear red **Cancelled** status badge. This ensures total workflow transparency across warehouse tracking registers.

Odoo Inventory Transfers List Grid Displaying Successful Single Cancel Only Status Tag Outcome

Workflow Thread Isolation: The background database transaction confirms that the script correctly processes separate logic threads. Because it handles a standalone active row id rather than an iterative multi-select bulk context collection array, the framework safely saves transaction states directly into the stock log layers.

Step 27
Execute Mass Cancellation via Inventory Transfers List Dropdown

Navigate to the **Inventory > Operations > Transfers** list view dashboard grid. Select multiple targeted delivery transfers simultaneously (e.g., WH/OUT/00002 and WH/OUT/00007) by ticking the left side checkbox controllers. Click on the central **Actions** dropdown menu button inside the top center command banner. The module dynamically reveals the custom server actions panel. Select the first option: **Cancel Only** to trigger batch status modification hooks.

Odoo Inventory Delivery Orders List Grid View Mass Action Dropdown Panel

Contextual Bulk Transfer Interception: This calls the custom server action action_stock_picking_cancel_only_bulk. The script validates permissions across the dataset array, iterates over each stock picking ID, forces all linked move lines inside move_ids_without_package to a cancelled status, and updates the main record state cleanly.

Step 28
Verify Mass Inventory Transfer Cancellation Outcomes

After executing the mass cancel action from the list view action panel dropdown, the workspace instantly reloads the data grid. As highlighted in the tracker outline box rows, both warehouse documents (**WH/OUT/00002** and **WH/OUT/00007**) have had their operational statuses updated to a distinct red **Cancelled** tag synchronously, confirming successful batch intercept processing.

Odoo Inventory Delivery Orders Tree Grid Displaying Successful Mass Cancel Status Tags

Transactional Stock Log Processing: The server action executes a clean iterative background commit sequence. It directly writes cancellation keys across the targeted datasets, forcing structural updates simultaneously to both the primary parent transfers and their underlying stock moves lines without breaking relational ledger balances.

Step 29
Configure Global Cancellation Behavior for Invoices and Payments

Navigate to **Settings > Invoicing**. Scroll down to find the custom **Cancel Configuration For Invoice and Payment** container panel block. Here, you can control the dynamic rollback structures for both your financial models independently using the separate radio widgets. Select the first radio option **Cancel Only** for both **Invoice Cancel type** and **Payment Cancel type** properties. Click **Save** to apply.

Odoo Invoicing Settings Invoice and Payment Cancel Type Radio Configuration Layout Matrix

Dual Param Mapping Rules: These selections write parameters directly into distinct keys: se_cancel_all_orders.invoice_cancel_type and se_cancel_all_orders.payment_cancel_type. The financial code engine reads these individual parameters synchronously whenever reversal sequences are initiated in either model.

Step 30
Execute Single Document Cancellation inside Customer Invoice Form View

Navigate to **Invoicing > Customers > Invoices** and open an active invoice or draft bill record. Click on the custom-overridden native **Cancel** button located in the top header action status bar panel. The system will instantly check the logged-in user's financial cancellation privileges against the security database and initiate the background processing loops.

Odoo Customer Invoice Form View Active Document Header Cancel Button Action

Financial Security Validation: Clicking this triggers the inherited button_cancel() override inside the account.move model extensions. If the active user profile lacks the group_cancel_account_invoice access right mapping, the system instantly blocks execution and raises an explicit UserError dialog box.

Step 31
Verify Invoice 'Cancel Only' Document Status Ribbon Reversal

When the global configuration parameters for financial accounting operations are set to the standard **Cancel Only** behavior flags, clicking the action panel instantly processes document state modifications. As visible on the top-right tracking bar status nodes, the document's state dynamically shifts to **Cancelled**, indicating that the journal entries have been safely reversed and blocked without purging underlying transaction rows.

Odoo Customer Invoice Form View Workflow Lifecycle Ribbon Updated to Cancelled State

Backend Pipeline Flow: The core backend python script invokes the base super(AccountMove, self).button_cancel() framework parameters. Since the configuration matches the default fallback execution settings, the record state updates directly within the active accounting register tables cleanly.

Step 32
Verify Grid Refresh Results for Single Customer Invoice Cancellations

Navigate to the **Invoicing > Customers > Invoices** data dashboard grid. As highlighted on the real-time operational data grid dashboard tracking rows, the targeted invoice record accurately reflects its updated parameter via a distinct **Cancelled** status badge. This ensures total ledger audit trail transparency across financial registers.

Odoo Invoices List Grid Displaying Successful Single Cancel Only Status Tag Outcome

Workflow Thread Isolation: The background database transaction confirms that the script correctly processes separate logic threads. Because it handles a standalone active account move record row rather than an iterative multi-select bulk collection array, the framework safely saves transaction states directly into the system layers.

Step 33
Execute Mass Cancellation via Invoices List Actions Dropdown

Navigate to the **Invoicing > Customers > Invoices** list grid panel view. Select multiple targeted invoice rows simultaneously by ticking the left side checkbox controllers. Once selected, click on the **Actions** dropdown menu button inside the top center command banner. The framework dynamically reveals the custom automated server options. Select the first option: **Cancel Only** to trigger mass status modifications.

Odoo Customer Invoices tree grid Dashboard Batch Selection for Mass Cancel Action Menu Panel

Contextual Bulk Invoice Interception: This triggers the custom server action action_invoice_cancel_only_bulk. The script loops over the selected account moves collection array, injects from_bulk_select=True to prevent configuration parameters loop bypasses, and safely executes native cancellation parameters across the database array rows.

Step 34
Verify Mass Customer Invoice Cancellation Outcomes

After processing the batch cancellation command from the list dropdown panel, the layout automatically updates. As highlighted inside the data rows dashboard section, both targeted journal entry records have had their status markers instantly updated to the grey **Cancelled** badge simultaneously, confirming that the accounting moves are successfully halted.

Odoo Invoices Tree Grid Dashboard Displaying Multiple Simultaneously Cancelled Records

Batch Ledger Sync Operations: The server script iterates over the account move collection array loop. Because from_bulk_select=True overrides individual constraints inside the model layer, the engine runs secure adjustments across the active datasets without causing balance sheet sequence out-of-sync blockages.

Step 35
Verify Payment Cancellation Core System Rule Settings

Before executing reversals on transactional payments, double-check your parameter rules under **Settings > Invoicing**. In the **Cancel Configuration For Invoice and Payment** block panel, notice how the **Payment Cancel type** radio options let you define the exact database outcomes for customer or vendor payment registries separately from standard invoice configurations.

Odoo Invoicing Configuration Parameters for Payment Model Cancel Types

System Parameter Sync Check: The engine isolates payment logic via se_cancel_all_orders.payment_cancel_type. This prevents customer cash collection registry modifications from forcing unexpected states on parent invoices, keeping your ledger reports accurately aligned.

Step 36
Execute Single Document Cancellation inside Payment Form View

Navigate to **Invoicing > Customers > Payments** (or Vendors > Payments) and open an active ledger transaction record (e.g., PBNK1/2026/00001). Click on the custom-overridden native **Cancel** button located in the top header action status bar panel. The system will instantly check the logged-in user's privileges against the custom security setup and initiate the background rollback engine.

Odoo Payment Form View Active Document Header Cancel Button Action Trigger

Payment Interception Validation: Clicking this button triggers the inherited python override method action_cancel() inside the account.payment model extensions. If the active user profile lacks the group_cancel_account_invoice access right mapping, the execution blocks instantly and raises an explicit UserError.

Step 37
Verify Payment 'Cancel Only' Lifecycle Status Bar Reversal

When the system config parameter for accounting transactions is matching the standard **Cancel Only** behavior flags, triggering the cancel tool updates the payment ledger. As visible on the top-right status ribbon nodes tracker, the document's state dynamically switches to **Canceled**, ensuring that cash collection or bank liquidity registers are successfully closed out.

Odoo Payments Form View Workflow Lifecycle Status Bar Updated to Canceled State

Backend State Mapping Rules: The custom payment model override triggers super(AccountPayment, self).action_cancel() directly. If single select parameters are found, it executes a clean write instruction to set the record state key value directly to 'canceled' in the underlying database tables.

Step 38
Verify Grid Refresh Results for Single Payment Cancellations

Navigate to the **Invoicing > Vendors > Payments** (or Customers > Payments) data dashboard grid. As highlighted on the real-time operational data grid dashboard tracking rows, the payment record item **PBNK1/2026/00001** accurately reflects its updated parameter via a distinct grey **Canceled** status badge, ensuring full operational visibility.

Odoo Payments List Grid Displaying Successful Single Cancel Only Status Tag Outcome

Workflow Thread Isolation: The background database transaction confirms that the script correctly processes separate logic threads. Because it handles a standalone active record row rather than an iterative multi-select bulk context collection array, the framework safely saves transaction states directly into the system layers.

Step 39
Execute Mass Cancellation via Payments List Actions Dropdown

Navigate to the **Invoicing > Vendors > Payments** (or Customers > Payments) list grid view panel. Select multiple targeted payment records simultaneously by ticking the left side checkbox controllers (e.g., 2 selected). Click on the central **Actions** dropdown menu button inside the top center command banner. The framework dynamically reveals the custom automated server options. Select the first option: **Cancel Only** to trigger mass status modifications.

Odoo Payments Tree Grid Dashboard Batch Selection for Mass Cancel Action Menu Panel

Contextual Bulk Payment Interception: This triggers the custom server action action_payment_cancel_only_bulk. The script loops over the selected account payments collection array, injects from_bulk_select=True to prevent configuration parameters loop bypasses, and safely executes native cancellation parameters across the database array rows.

Step 40
Verify Mass Payment Cancellation Outcomes inside List Dashboard

After executing the mass batch cancellation command from the list dropdown panel, the system dynamically reloads the current workspace views. As highlighted in the data rows grid dashboard section, both targeted ledger records have had their operational statuses instantly updated to the grey **Canceled** status tag simultaneously, confirming successful batch intercept processing.

Odoo Payments Tree Grid Dashboard Displaying Multiple Simultaneously Canceled Status Badges

Batch Payment Process Sync: The server script iterates over the account payment collection array loop. Because from_bulk_select=True overrides individual single form criteria, the framework safely applies cancellation updates across massive sets of collection registries without throwing unexpected balance errors.

Step 41
Execute Single Document Cancellation inside Customer Payments Form View

Navigate to **Invoicing > Customers > Payments** and open a newly created transaction record that is currently in **Draft** status. Click on the custom-overridden native **Cancel** button located inside the top header action status bar panel to test the interception rules of your payment cancellation matrix.

Odoo Customer Payments Form View Header Cancel Action Panel Trigger

Access Rights Validation Rules: Clicking this button immediately routes the system query through the action_cancel() extension block in the account.payment model. If the active profile lacks group access, the transaction layer blocks further operations and fires a clear exception dialogue alert instantly.

Step 42
Verify Single Customer Payment 'Cancel Only' Lifecycle Status Bar Reversal

Once the header cancellation tool is executed, the advanced processing engine intercepts the native payment lifecycle block. As visible on the top-right status ribbon tracking bar, the customer ledger transaction successfully switches directly to the **Canceled** state node, ensuring that all financial entries are cleanly locked and stopped from processing down the pipeline.

Odoo Customer Payments Form View Lifecycle Tracker Node Updated to Canceled State

Backend State Mapping Rules: The custom payment model override triggers super(AccountPayment, self).action_cancel() directly. If single select parameters are found, it executes a clean write instruction to set the record state key value directly to 'canceled' in the underlying database tables.

Step 43
Verify Grid Refresh Results for Single Customer Payment Cancellations

Navigate to the **Invoicing > Customers > Payments** dashboard grid. As highlighted on the real-time operational data grid dashboard tracking rows, the processed customer payment transaction row accurately displays its state parameter via a clear grey **Canceled** badge, ensuring complete financial trail tracking.

Odoo Customer Payments List Grid Displaying Successful Single Cancel Only Status Tag Outcome

Workflow Thread Isolation: The background database transaction confirms that the script correctly processes separate logic threads. Because it handles a standalone active record row rather than an iterative multi-select bulk context collection array, the framework safely saves transaction states directly into the customer payment logs.

Step 44
Execute Mass Cancellation via Customer Payments List Actions Dropdown

Navigate to the **Invoicing > Customers > Payments** list grid layout. Select multiple targeted draft records simultaneously by ticking the left-side checkbox controllers (e.g., 3 selected). Click on the central **Actions** dropdown menu button inside the top command bar dashboard banner. The module dynamically reveals the custom automated server options. Select **Cancel Only** to trigger rapid simultaneous status changes.

Odoo Customer Payments Tree Grid Dashboard Batch Selection for Mass Cancel Action Menu Panel

Contextual Bulk Payment Interception: This triggers the custom server action action_payment_cancel_only_bulk. The script loops over the selected customer cash collection registry dataset, injects from_bulk_select=True to bypass standalone single configuration limits, and safely updates states across the database matrix cleanly.

Step 45
Verify Mass Customer Payment Cancellation Outcomes inside List Dashboard

After executing the mass batch cancellation command from the list dropdown panel, the system dynamically reloads the current workspace views. As highlighted in the data rows grid dashboard section, all three targeted customer cash registries have had their operational statuses instantly updated to the grey **Canceled** status tag simultaneously, confirming successful batch execution.

Odoo Customer Payments Tree Grid Dashboard Displaying Multiple Simultaneously Canceled Status Badges

Batch Payment Process Sync: The server script iterates over the account payment collection array loop. Because from_bulk_select=True overrides individual single form criteria, the framework safely applies cancellation updates across massive sets of collection registries without throwing unexpected balance errors.

Key Features & Capabilities

Take full control over operational mistakes. Configure custom cancellation logic across different departments seamlessly without disrupting transaction workflows.

Sales Order Cancellation

Intercept standard sale flows. Choose whether cancelled quotations stay cancelled, jump straight back into Draft status, or purge instantly from the database view.

Purchase Flow Controls

Revert historical purchase orders or RFQs with ease. Trigger `button_draft()` workflows instantly or safely drop entries under strict access permissions.

Invoice Reversal Manager

Manage customer invoices and vendor bills state adjustments effortlessly. Safely run multi-record account move deletions without manual data breaks.

Stock Picking Operations

Automated warehouse stock moves clean-ups. Changes both delivery transfers and individual move lines to draft state dynamically to restore parameters.

Mass Action List Engine

Select hundreds of items instantly within list grid views. Trigger mass action options (`Cancel`, `Reset to Draft`, `Delete`) with a single click dropdown method.

Payment Cancellation

Handle wrong payment logs seamlessly. Direct interaction rules reset linked parameters back into cancelled or draft states keeping accounting registers aligned.

Need Any Help?

Free 90 Days Support

Installation, Configuration & Bug Fixing support from our experts.

Email Support sales.sprinterp@gmail.com
Microsoft Teams abulkasim7214

© 2017 SprintERP Technologies. All Rights Reserved.

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Inventory (stock)
• Invoicing (account)
• Purchase (purchase)
• Sales (sale_management)
Lines of code 583
Technical Name se_cancel_all_orders
LicenseLGPL-3
Websitehttps://sprinterp.com

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with