v16.31.0
Features
- The Work Order Gantt view now shows each bar in a color that matches its status instead of the default color. (#57636)
- On the Subscription form, choosing a plan automatically fills in Cost Center and other accounting fields from the plan. When a field is missing from the plan, it comes from the linked Item, and any values you already entered stay in place. (#57622)
- When a Material Request has items from different suppliers, creating a Purchase Order now lets you choose the Supplier for each item. The system creates one Purchase Order per supplier. (#57698)
Bug Fixes
- The system skips electronic invoicing for opening Sales Invoice documents in Italy. (#57590)
- Makes Purchase Receipt cancellation use the same linked-document check as other forms, so a submitted Purchase Invoice blocks a direct cancel. The "Cancel All Documents" action still cancels the invoice first and then the receipt. (#57597)
- Allows users with edit access to remove items from "Update Items" in Sales Order without needing cancel or delete access on the order. Item lines with ordered, received, delivered, or billed quantities still cannot be removed. (#57601)
- Adds a new Accrued Manufacturing Expenses account group to the Australian standard chart of accounts and marks the 115 account group as a bank account. (#57608)
- Items produced from materials that cost nothing stay at zero cost instead of using the item's own cost or the cost from the Bill of Materials. This keeps the finished item at zero cost in those cases. (#57513)
- When you create an Asset from a purchase document, the Net Purchase Amount now comes from the item’s Valuation Rate and quantity instead of the purchase line total. (#57620)
- Uses the existing Item Group root when ERPNext is set up, so the built-in item groups stay under one main group instead of splitting into two top-level groups. Merges any duplicate "All Item Groups" entry into that root on update. (#57630)
- Uses the correct inventory account instead of picking one at random when more than one is set up. (#57632)
- Prevents Period Closing Voucher from being submitted or cancelled for a frozen accounting date. (#57641)
- In Stock Entry with purpose Receive from Customer, adding an item row now leaves Target Warehouse blank when no matching row is available to copy from. When a matching row exists, the field is copied into the new row. (#57638)
- Projects marked
On holdno longer appear when choosing a project in Task and Timesheet. The "Project Summary" report now includesOn holdin the status filter. (#57243) - The "Stock and Account Value Comparison" report now includes only child warehouses whose account matches the parent warehouse. Warehouses with a different account are no longer grouped under the parent account. (#57557)
- Filtering "Accounts Receivable" and "Accounts Receivable Summary" by Sales Partner uses the partner set on each Sales Invoice, so invoices assigned directly to a partner appear in the results. The Sales Partner column shows the partner from the invoice, and returns are grouped with the original invoice. (#57648)
- Return documents in Delivery Note and Sales Invoice now use the original item linked in Packed Item when the direct item link is missing. Those returns use the original rate instead of zero. (#57511)
- Adds multi-select to the Territory filter in the "Accounts Receivable" report, so you can view receivables for several territories at once. (#57346)
- The Payment Entry form now fills Received Amount using the exchange rate for its own Posting Date instead of the date from the document it comes from. This reduces cases where a Difference Amount appears as soon as the form opens. (#57663)
- Updates Stock Entry validation for material transfers to use the item’s quantity precision. This avoids blocking a transfer when only a tiny rounding difference remains. (#57658)
- Updates Stock Reconciliation to skip batch-related stock balance checks when a row is missing, avoiding an error in some batch-tracked item lookups. (#57655)
- Adds permission checks to the stock summary in Plant Floor so users only see stock data for Warehouse, Item, and Item Group records they can access. (#57670)
- Carries over the conversation history from the linked Opportunity to a new Quotation as soon as it is created, instead of only after submission. (#57643)
- 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. (#57656)
- Updates the Stock Reservation Entry warning to omit the row number when it is not available, instead of showing "Row #None". The message still lists the item and warehouse that cannot be reserved. (#57672)
- The Item Inventory dashboard now excludes transferred and consumed quantities from reserved stock totals. (#57683)
- Users now need permission to view stock and warehouse details in the Asset Capitalization form and to create multiple variants for an Item.
"Resend Payment Email" in the Payment Request form now works only for submitted inward payment requests that can still receive a payment link, and it ignores repeat clicks while the email is being sent. (#57692) - When only part of the stock is available, the reservation now keeps the full requested amount, so it shows as Partially Reserved instead of Reserved. (#57694)
- Keeps unit conversions exact on line items. This reduces quantity changes when an item is bought in one unit and stored in another. (#57697)
- Fixes Shipping Rule so applying or saving one without a Cost Center does not add duplicate shipping charges. Existing Cost Center values remain unchanged. (#57701)
- The Quality Inspection form now reads numeric readings using the number format shown to the user. Values that do not match that format now show an error instead of being read as a different number. (#57726)
- Returns in Purchase Invoice, Purchase Receipt, and Subcontracting Receipt now require at least one item with a negative quantity. Returns where every item has a quantity of zero can't be submitted. (#57722)
- The setting in Stock Settings that allows extra delivery or receipt quantities now applies only to delivery and receipt documents. Other order documents still use their own quantity limits. (#57728)
- Returns from Sales Invoice, Delivery Note, and POS Invoice now require at least one item with a negative quantity, so returns where every item quantity is zero are rejected. (#57730)
- The company list now shows only the companies you can access instead of all companies. If the list cannot be loaded, it shows an error message. (#57739)
- Updates POS Profile to use the selected Item Group names directly when filtering items. This avoids an empty item list when a profile limits which item groups are available. (#57673)
- Existing variants can still be saved after an Item Attribute is disabled, as long as the Attribute Value stays unchanged. Changing that Attribute Value still shows an error. (#57750)
- Updates Stock Entry so secondary item costs follow the share set in the Bill of Materials instead of using their own rate in some cases. It also stops stock entries that do not create secondary items from skipping Quality Inspection. (#57755)
- The Repost Accounting Ledger form skips deferred invoice checks when no sales or purchase invoices are selected, so saving does not time out. (#57753)
- Special characters in Workstation and Item names, along with image links, now display correctly across the plant floor, item selector, and stock summary views. This keeps names and image links from changing how the page appears. (#57770)
- The toolbar in BOM Configurator now keeps all of its actions available, so you can add and convert items again. (#57779)
- Skips loading the invoice dashboard on Customer and Supplier records when the user does not have access to the related Sales Invoice or Purchase Invoice documents, so the record opens without a permission error. (#57785)
- Prevents saving an Opportunity when any item Quantity is zero or less. (#57789)
- Corrects exchange gain/loss entries in Payment Reconciliation for supplier Payment Entry records in foreign currency, so the adjustment posts in the right direction. (#57798)
Other Changes
- Reversal Journal Entry forms keep Remark and Custom Remark editable. This lets you add your own note when you reverse an entry. (#57767)
Authors: @Jatin3128, @diptanilsaha, @Pandiyan5273, @Shllokkk, @Henil666, @mihir-kandoi, @krishna-254, @nikkothari22, @kaulith, @rohitwaghchaure, @Sudharsanan11, @ervishnucs
Reviewers: @Jatin3128, @diptanilsaha, @nabinhait, @R-Jayaraman, @Shllokkk, @mihir-kandoi, @ruthra-kumar, @rohitwaghchaure
AI content
For these release notes, we used an LLM (OpenAI gpt-5.4-mini) 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:
- skip-release-notes
Changes with the following types were excluded:
- chore
- ci
- refactor
- style
- docs
- build
- test