# December 2025 Release

{% hint style="warning" %}

This is a Custom Release. Feature availability depends on configuration and rollout status. Some features listed above may not be visible in your environment if they are part of a staged or custom deployment. Please contact your support representative to confirm enablement.
{% endhint %}

### **Enhanced Batch Update Functionality for Estimate Centre**

**Overview:**

The **Estimate Centre** serves as a centralized hub for managing all sales estimates, enabling users to efficiently track and update quotation data. To further streamline operations, the **Batch Update functionality** has been enhanced to support bulk updates of custom fields at the **Estimate Header** level.

This enhancement eliminates the need to manually edit individual estimates when updating custom field values.

***

**How It Works:**

**Step 1:** Navigate to **Menu** → **Sales** → **Estimate Centre** and select the estimate record(s) you want to update.

<figure><img src="/files/YMkeEykphyfV13O05mzh" alt=""><figcaption></figcaption></figure>

**Step 2:** Click on the **Header Level Options** button and select **Batch Update**. A popup will appear displaying the batch update options.

<figure><img src="/files/V329v0hADvLJ86rgAYoS" alt=""><figcaption></figcaption></figure>

**Step 3:** In the **Column Name** dropdown, select the required **Estimate Header Custom Field**. Enter the desired value in the **Value** field.

<figure><img src="/files/5kPeE9mfxiV5uszDqgDG" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fHrM7mGQvLA4z6Wk2oz6" alt=""><figcaption></figcaption></figure>

**Step 4:** Click on **Update** to apply the changes to all selected estimate records.

<figure><img src="/files/EZU7ORpDeH5UGf3hjl7c" alt=""><figcaption></figcaption></figure>

***

**Key Enhancements:**

* **Improved Efficiency:** Enables bulk updates of custom fields, reducing manual effort and time spent editing individual estimates.
* **Better Data Consistency:** Ensures uniformity of custom field values across multiple estimates.
* **Scalable Operations:** Supports businesses handling large volumes of estimates by simplifying mass updates.
* **Reduced Errors:** Minimizes the risk of inconsistent or missed updates when managing multiple records.

***

### **Line-Level Enhancement: Master Case Qty and Case Qty Columns Added in Transaction Modules**

**Overview:**

The **Sales Order**, **Estimate**, and **Invoice modules** capture item-level transaction details, including quantities, pricing, and fulfillment status.

With this enhancement, two new columns, **Master Case Qty** and **Case Qty,** have been added to the line-level detail grid across the Sales Order, Estimate, and Invoice modules.

* **Master Case Qty** is derived from the item configuration and indicates the number of units packed in a single master case.
* **Case Qty** is automatically calculated based on the entered item quantity and Master Case Qty, ensuring accurate representation of both full and partial cases required for the transaction.

Furthermore, a **Total Case Qty** has been introduced in the footer section, which aggregates the case quantities of all line items, providing a clear and consolidated view of total cases for better operational and logistical planning.

<figure><img src="/files/E0lwu0PKPt3V7n0BEa6U" alt=""><figcaption></figcaption></figure>

***

**Key Enhancements:**

* **Automated Case Calculation:** Case Qty is system-calculated based on item quantity and Master Case Qty, eliminating manual effort.
* **Accurate Handling of Partial Cases:** Ensures correct calculation even when quantities do not fully fit into complete cases.
* **Improved Packaging Visibility:** Provides clear insight into how ordered quantities translate into case-level packaging.
* **Enhanced Operational Planning:** Helps warehouse, shipping, and logistics teams plan packaging and dispatch more efficiently.

***

### **Cancel Sales Order with One Click and Auto Void Linked Records**

**Overview:**

The **Sales Order module** allows users to manage order lifecycle activities, including cancellation of orders and handling of related transactions such as customer deposits and waves.

With this enhancement, users can cancel a Sales Order and automatically handle associated operational records in a single action. This eliminates the need for manually voiding each linked transaction, simplifying the cancellation process and improving operational efficiency.

***

**Enhancement Added:**

* A new option, **“Cancel Sales Order with One Click,”** has been introduced in the Options dropdown of the Sales Order module.
* When this option is used, the system automatically voids linked records such as **Customer Deposits** (**Open**, **Refunded**, or **Partially Refunded**) and Waves in **UnAllocated**, **Allocated**, **Picked**, or **Closed** status as part of the cancellation process.

<figure><img src="/files/JfFWrOiUjxFYAigYWBsy" alt=""><figcaption></figcaption></figure>

***

**App Configuration Requirement:**

**App Config Name:** Cancel Sales Order with One Click

**Configuration Location:** Menu → App Config → General → **Cancel Sales Order with One Click**

<figure><img src="/files/7Odfonnq1OYcT2OLxtr3" alt=""><figcaption></figcaption></figure>

***

**Functionality:**

**When the App Config is Enabled:**

* Users can cancel a Sales Order and automatically void related operational records, such as Customer Deposits and Waves, in a single action.

***

**When the App Config is Disabled:**

* Users must manually void all linked records before cancelling the Sales Order, following the existing process.

***

**How It Works:**

**Step 1:** Navigate to Menu → Sales → **Sales Order** and open the required Sales Order.

<figure><img src="/files/caMCxMZeQ7kETFDeCcvg" alt=""><figcaption></figcaption></figure>

**Step 2:** Click on the **Options** dropdown and select **Cancel Sales Order with One Click**.

<figure><img src="/files/sy1qdYPfCxYEu932CjFo" alt=""><figcaption></figcaption></figure>

**Step 3:** A confirmation dialog appears informing that all eligible linked records (Customer Deposits and Waves) will be automatically voided. Click **OK** to proceed or **Cancel** to abort the action.

<figure><img src="/files/xPYCEyMt0zTQ1OeVGIS9" alt=""><figcaption></figcaption></figure>

**Step 4:** A **Cancel Reason** dialog is displayed. Select the appropriate **Cancel Reason Code** and enter additional details if required.

<figure><img src="/files/anso1lQiFznDFpUF24o5" alt=""><figcaption></figcaption></figure>

**Step 5:** Once the process is complete, the Sales Order status is updated to **Cancelled,** and the system automatically voids all eligible linked records based on defined validation rules.

<figure><img src="/files/cUK5yMdQ9IDX9G6yUwYT" alt=""><figcaption></figcaption></figure>

***

**Impact:**

* **Single-Click Cancellation:** Enables users to cancel Sales Orders and handle linked transactions in one action.
* **Built-in Validations:** Certain validations are enforced to prevent voiding of deposits or refunds under specific conditions (e.g., processed via credit card, reconciled transactions, or shipped wave lines).
* **Controlled Handling of Linked Records:** If a Customer Deposit or Wave is associated with multiple Sales Orders, only the relevant mappings or line items are affected instead of voiding the entire transaction.&#x20;
* **Access-Controlled Execution:** Feature is available only when the required permission and app configuration are enabled, ensuring controlled usage.

{% hint style="info" %}
The **Cancel Sales Order with One Click** option will be available only when both of the following conditions are met:

* The user has the **“One Click Cancel Sales Order”** permission granted through the Access Manager.
* The **Cancel Sales Order with One Click** App Configuration is enabled in the system.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xorosoft.com/whats-new/release-notes/previous-releases/2025/december-2025-release.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
