Breaking Changes
- Removes the unused
get_last_interactionCRM endpoint. (#58215) - Adds Net Amount and Base Net Amount to tax rows in Sales Taxes and Charges and Purchase Taxes and Charges, showing the taxable basis used for each tax calculation.
Adds a Not Applicable option to Item Tax Template Detail so marked taxes are excluded from tax calculations and invoice summaries instead of being treated as 0% taxes. (#54687)
Features
- Adds a "Sync Serial No Status" button to the "Stock Qty vs Serial No Count" report, updating the Status and Warehouse of listed Serial No records based on their latest stock movements. The sync runs in the background without changing stock quantities, ledger entries, or valuation. (#57865)
- Updates Accounts Settings with separate sections for the "General Ledger" and AP/AR reports, and adds a Disable "Consider Accounting Dimension" Filter option that hides the Consider Accounting Dimension filter in the "General Ledger" report when enabled. (#58157)
- Adds four Belgian charts of accounts for commercial entities and associations or foundations, available in French and Dutch with account numbers and classifications for company setup. (#58185)
- Adds a check to Purchase Invoice records linked to Purchase Receipt records: when stock items use different exchange rates in the same currency and Set Landed Cost Based on Purchase Invoice Rate is disabled, saving or submitting the invoice is blocked with a message naming the mismatched receipt and available remedies. (#58189)
- Adds a Status filter to the "Supplier Quotation Comparison" report, defaulting to Submitted quotations and allowing users to view Draft quotations or both statuses. (#58209)
- Adds support for custom tax charge types that calculate taxes from alternative values, such as an item's MRP instead of its selling price. (#58160)
Bug Fixes
- Filters the "Available Batch Report" by the selected Company so it shows batches from that company only. (#58076)
- Updates Asset Capitalization to split FIFO/LIFO valuation rates across repeated stock-item rows for the same item and warehouse, so each row receives its corresponding Valuation Rate and Amount. (#58088)
- The app now checks permissions before showing details for Customer and Supplier. (#58111)
- Limits material transfer quantities in Stock Entry to the amount covered by the included raw materials and applies the same calculation when updating Work Order records. Adds a repair for affected Work Order records, treating quantities that match the field’s precision as fully covered. (#58114)
- Adds a confirmation prompt when the quantities entered in the batch selector differ from Qty to Fetch, warning that proceeding changes the item quantity before creating the bundle. (#58124)
- Adds the
crm_dealfield to Customer and Quotation when Enable Frappe CRM Data Synchronization is turned on. During an update, removes these fields when synchronization is off and neither Customer nor Quotation contains data in them. (#58142) - Adds permission checks for scrapping and restoring an Asset, so only users who can edit the asset can perform these actions. (#58144)
- Allows returns in Purchase Invoice and Purchase Receipt against a closed Purchase Order; regular invoices and receipts against closed orders remain blocked. (#58140)
- Allows stock to be issued from a batch when an earlier negative balance has since recovered, while still rejecting issues that would make the batch balance negative at or after the transaction time. (#58150)
- Shows a validation message naming the Account when a Budget includes a balance sheet account, instead of displaying an unexpected error. (#58093)
- Adds validation for Task dates against the linked Project's Expected Start Date, rejecting dates before the project starts; validation against the Expected End Date remains in place. (#58170)
- Prevents an already reversed Journal Entry from being reversed again by hiding the "Reverse Journal Entry" option and rejecting such attempts. Checks access to the source Journal Entry before showing its reversal details, so users without permission receive an access error instead. (#58175)
- Updates the batch selector to use the Pick Serial / Batch Based On setting in Stock Settings for Fetch Based On, instead of defaulting to FIFO. (#58181)
- Fixes an issue that could omit items when creating a Sales Invoice from a Sales Order. (#58187)
- Checks access permissions before showing an Email Digest message, so users without access cannot view its contents. (#58199)
- Removes the obsolete Restaurant reference from the Sales Taxes and Charges Template dashboard, so the form can load without the Hospitality app installed. (#58210)
- Corrects the Item Group name used by the Item Tax Template Connections dashboard, allowing the form to load its linked records. (#58212)
- Adds a permission check before displaying the import status for Bank Statement Import records. (#58218)
- Updates Work Order warehouse selection to use the production item's or item's group default when the applicable finished-goods or component warehouse is blank, while keeping manufacturing settings, item values, and work order values as higher-priority choices. (#58236)
- Keeps submitted Work Order records in Not Started status when only Skip Material Transfer to WIP Warehouse is enabled; the status changes to In Process after material is transferred or production begins. (#58246)
- Corrects rounding for document-level discounts distributed across items, so the recorded item discounts add up to the document discount and match each item’s net amount. When discount accounting is enabled, the adjustment no longer reduces the income amount recorded in the ledger. (#58054)
- Handles special characters in item, warehouse, user, project, and document values used in portal pages, print formats, form grids, dashboards, and client-side templates. This keeps links and displayed content from being rendered incorrectly when those values contain special characters. (#58277)
- Escapes the production-status image shown for Workstation records so its contents are displayed as text rather than interpreted as HTML. (#58280)
- Displays free-text values in portal, partner, support, and desk pages as text rather than webpage markup, including party names, item previews, project and task names, addresses, help articles, and event subjects. Safely embeds Request for Quotation data in its page script. (#58287)
- Updates the privacy configuration for Lead and Opportunity to use the current data-protection settings. Their records use Email Id or Contact Email to identify matching data, while specified personal details can be redacted. (#58282)
- Purchase Invoice now records stock value differences in the company’s Default Expense Account when it is set. If that setting is missing, it falls back to the stock or asset receipt account, or the item’s Expense Account on returns. (#57675)
- Updates Stock Reconciliation so "Fetch Items from Warehouse" displays each item's Stock UOM instead of applying the default Stock UOM to every row. (#58290)
- Blocks disabled or frozen Customer records from being saved as the party on an Opportunity, and disabled or frozen Supplier records from being added to a Request for Quotation. Disabled customers and suppliers are also hidden from their selection lists. (#58034)
- New non-standalone sales documents now refresh item cost rates when created, including when a rate is already present. (#58294)
- Allows users to edit User Remark on reversal Journal Entry records while the other reversal fields remain read-only. (#58308)
- Updates the "Timesheet Billing Summary" report to filter logs by their start date, so logs ending at midnight or continuing into the next day appear under the day they begin. (#58356)
- Updates the "Stock Qty vs Serial No Count" report so selecting a parent Warehouse shows the combined serial number count and stock quantity from its child warehouses. (#58365)
- Adds missing Terms from the selected Terms and Conditions template before printing a document. (#58367)
- Hides the Status indicator for Request for Quotation entries in the supplier portal, so suppliers no longer see the request marked as “Submitted.” (#58371)
- Fixes Italian e-invoice generation when a Sales Invoice item's Price List Rate is empty, preventing an error during submission. (#58369)
- Hides the supplier name from the supplier-facing Request for Quotation page. (#58375)
- Blocks portal suppliers from creating another Supplier Quotation for the same Request for Quotation when one already exists, and hides the "Make Quotation" button in that case. (#58389)
- Applies the selected Supplier Group filter in the "Accounts Payable" report when Party Type is set to Supplier, so suppliers from other groups are not listed. (#58354)
- Displays currency amounts without decimal places when Currency Precision in System Settings is set to 0, while using the configured number format when the setting is blank. (#58398)
- Adds Cost Center and Project filters to the "Customer Ledger Summary" and "Supplier Ledger Summary" reports, with selectable options based on the chosen Company. (#58411)
Other Changes
- Displays formatted content in the Item Description field of Item Price records instead of showing the underlying HTML code. (#58101)
- Fixes return quantity validation on Sales Invoice and Purchase Invoice when UOM differs from Stock UOM, so subsequent partial returns are not incorrectly rejected because quantities are compared in different units. (#58363)
Authors: @Jatin3128, @Sudharsanan11, @ervishnucs, @nishkagosalia, @Shllokkk, @diptanilsaha, @barredterra, @maasanto, @harisansari008, @krishna-254, @khushi8112, @rohitwaghchaure, @akhtarmohsin, @mihir-kandoi, @vorasmit, @Pandiyan5273 For these release notes, we used an LLM (OpenAI gpt-5.6-luna) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
Changes with the following labels were excluded:
Changes with the following types were excluded:
Reviewers: @nabinhait, @ljain112, @barredterra, @Sudharsanan11, @Shllokkk, @diptanilsaha, @khushi8112, @rohitwaghchaure, @mihir-kandoi
AI content