Features
- Adds an option to group the "Profit and Loss Statement" and "Balance Sheet" reports by accounting dimension, so users can compare financial results across dimensions. (#59377)
- When Use Transaction Date Exchange Rate is enabled, Purchase Receipt and Purchase Invoice documents mapped directly from a Purchase Order use the exchange rate for their posting date. Rates entered after mapping or carried over from another purchase document remain unchanged on later saves, and changing the posting date before the first save fetches the rate for the new date. (#60181)
- Allows users to submit a Period Closing Voucher when the stock account balance and stock value differ by up to 1%, after reviewing and confirming the difference; larger differences still block submission. (#60193)
- Updates ERPNext’s module dock with soft, single-color icons that adapt to light and dark themes and hover or active states, and gives CRM, Support, and Portal their own icons. (#60325)
- Adds a United States chart of accounts for new Company records with Country set to United States, replacing the generic standard chart. (#60429)
Bug Fixes
- Converts outstanding Purchase Order amounts to company currency when checking them against a Budget, so foreign-currency orders are compared using their converted value. (#60109)
- Fixes issues across accounting, stock, manufacturing, and setup, including incorrect report totals and filters, payment aging, warehouse stock handling, and order details. Reduces repeated lookups for stock and item information and corrects several language, permission, and record-saving issues. (#59971)
- For BOM-based Stock Entry records in Manufacture and Repack, rejects receiving more of the BOM item or its variants than the Finished Good Quantity allows, preventing finished goods from being recorded without corresponding materials. (#60075)
- Updates tax-withholding migrations to work with older databases that lack newer withholding fields. The migration allocates withholding across eligible items and keeps other tax amounts based on each item’s share. (#60151)
- Splits manufacturing costs across eligible finished-good rows in Stock Entry, excluding rows with manually set rates or zero value; backdated reposting recalculates all finished-good rows in the entry. (#60135)
- The Return Components action on a Work Order now creates the return Stock Entry under the Work Order’s company instead of the user’s default company. (#60171)
- Updates Production Plan reservations to include sub-assembly items taken from stock, so the "Stock Projected Qty" report reflects their reserved quantity. (#60138)
- Automatic batch selection in Stock Entry now accounts for quantities assigned to earlier rows, so rows without a selected batch don’t reuse the same available batch stock. (#60121)
- Updates the "Share Balance" report to show holdings for the selected company as of the chosen date, including company-held shares and using the recorded rate from each holding’s most recent receipt. (#59980)
- Item details and prices now account for the transaction type; returns can use their original price list only when a party is selected, and Blanket Order lookups include the document type. (#59861)
- Checks users’ permission to access a Company before returning its default settings. (#60173)
- Updates the Source Warehouse choices in Stock Entry to reflect the selected company and exclude its sample retention warehouse, including after the company changes. (#60190)
- Stores Stock Value and Valuation Rate on stock closing records so the "Stock Balance" report can show the carried-forward valuation for items with no movement. Corrects how FIFO lots are consumed and carried forward between stock closings. (#60176)
- When Sub Assembly Warehouse is set to a group in Production Plan, the plan combines stock across its child warehouses for Actual Qty and Projected Qty; Skip Available Sub Assembly Item also accounts for stock deficits and counts available stock only once when a sub-assembly appears more than once. (#60211)
- Updates Stock Entry material transfers so each automatically selected incoming batch retains its own value, with additional costs reflected in its rate; reposting also recalculates transfers previously saved with a shared batch rate. (#60209)
- Disables Update Stock on Sales Invoice records created from a Delivery Note, preventing the invoice from updating stock again. (#60235)
- Keeps the Job Card quantity on Stock Entry documents created from its Material Request, allowing the card to be submitted after materials are transferred. (#60247)
- Updates Asset records marked Is Fully Depreciated to show the status “Fully Depreciated” even when Calculate Depreciation is unchecked. (#60248)
- Applies user permissions when retrieving stock balances, so results reflect the current user’s access. (#60261)
- Production Plan fetches only the unplanned remainder for each Sales Order line and blocks submission when its planned total exceeds the ordered quantity plus the allowed overproduction. (#60272)
- The Job Card completion dialog limits Completed Quantity to the amount available from the previous operation and puts the remainder in Pending Quantity; changing Qty to Manufacture in this Cycle recalculates this split. (#60278)
- When a Customer is created from a Lead, the Quotation and Opportunity records you can edit are linked to the customer, while records you cannot edit remain linked to the lead. (#60281)
- Validates Cost Center company and group-status changes against accounting entries and allocations, and rejects parents from another company. Preserves names that begin with digits when renaming, using the Cost Center Number field rather than interpreting the name as a number. (#60276)
- Blocks submission of non-phantom BOM Creator documents when an item has an operation but no Routing is selected, and identifies the item and operation that need attention. (#60273)
- Closed Stock Reservation Entry records based on serial and batch no longer prevent their serial numbers from being issued from the warehouse. (#60270)
- Fixes the Master Production Schedule "Get Sales Orders" filter so Delivery To Date returns eligible Sales Order records with delivery dates on or before the selected date. (#60268)
- Prioritizes company-specific Fiscal Year records over global records when their dates overlap. Automatic Fiscal Year creation can catch up after a missed scheduled run and calculates end dates correctly for leap years. (#60224)
- Combines received quantities from submitted Purchase Receipts and stock-updating Purchase Invoices on a Material Request. The request’s received quantity and status reflect both document types, including after either is canceled. (#60223)
- Updates actual dates on Work Order records to reflect only submitted manufacturing stock entries; cancelling entries recalculates or clears Actual Start Date and Actual End Date. (#60199)
- Sets Sample Size to 1 by default in Quality Inspection, reducing the need for manual entry when creating an inspection. (#60292)
- Allows adjacent working-hour shifts in Workstation schedules when one ends exactly as the next begins, while still flagging overlapping shifts. (#60150)
- Returns created from Sales Invoice, POS Invoice, and Purchase Invoice no longer carry over or automatically allocate advances, preventing invalid advance rows and negative amounts. (#59900)
- Prevents Downtime Entry records from being saved when To Time is earlier than or equal to From Time, avoiding negative downtime values. (#60156)
- Updates Work Order status to show Stock Partially Reserved when some components are reserved but at least one required component remains unreserved. (#60289)
- Updates POS Closing Entry to deduct each invoice’s change from one payment method when calculating expected amounts, rather than deducting it multiple times or missing it when accounts differ. (#60204)
- Auto-repeated Sales Invoice records retain Payment Terms Template and PO No, while item Service Start Date and Service End Date values shift to the new period in Sales Invoice and Purchase Invoice records. (#60259)
- For Work Order manufacturing, material consumption now uses original and alternative components in proportion to the quantities transferred, instead of treating any alternative transfer as a full replacement. Eligible transfer rows also allow users to select alternative items. (#60091)
- Uses the FIFO rate instead of the warehouse average rate to value serial-tracked items in Stock Entry when serial-wise valuation is off. (#60365)
- Uses a Purchase Receipt return’s own warehouse when recalculating its rate during stock reposting, preventing stock in the rejected-items warehouse from changing the return’s value. (#60372)
- During stock reposts, each affected item now uses its own valuation and stock settings instead of inheriting those of the item that triggered the repost. (#60348)
- Rounds the total service cost on each Subcontracting Receipt row after applying the quantity, reducing small differences when costs are split across finished goods. (#60358)
- Corrects the "Stock Balance" report so that, when stock is shown by inventory dimension, each dimension displays its own quantity and value from a Stock Reconciliation instead of the warehouse total. (#60383)
- Keeps the existing FIFO valuation rate when the remaining quantity rounds to zero, rather than calculating a misleading rate from a tiny balance. (#60385)
- When Do Not Use Batch-wise Valuation is enabled, Stock Entry uses the rate assigned to FIFO batches instead of an average across batches, so repack and manufacture entries reflect the cost of the batch used. (#60361)
- Blocks backdated batch transfers into a warehouse when a later Stock Reconciliation exists for the same batch, so the reconciliation continues to set its quantity. (#60397)
- Uses the quantity recorded in inventory to value rows in Purchase Receipt and stock-updating Purchase Invoice, reducing small differences that can be charged to Cost of Goods Sold when unit conversions are rounded. (#60389)
- Rounds stock quantities in Sales Invoice and Delivery Note transactions to the stock ledger’s precision, reducing small balance discrepancies from fractional unit conversions; entries that round to zero are skipped instead of causing an error. (#60391)
- Stock Entry now uses the item's selected unit when calculating the quantity to receive at the end of transit, accounting for unit conversions and keeping partial receipts within the stock remaining in transit. (#60387)
- Rounds quantity totals before stock and manufacturing checks, so tiny decimal differences do not block batch picking, ordering the remaining quantity on a Blanket Order, completing a Job Card, or disassembling a Work Order. (#60352)
- Keeps Moving Average purchase returns at their original purchase rate when stock valuation is reposted, so backdated stock transactions do not change their value. (#60369)
- When a stock transaction has no earlier warehouse stock, its fallback rate uses only entries dated before the transaction, so later entries don’t affect its value. (#60381)
- Updates Landed Cost Voucher charge distribution so rounding adjustments do not make any item’s charge negative. (#60355)
- When stock entries are recalculated, rejected items in a Purchase Receipt or Purchase Invoice remain at zero value if Set Valuation Rate for Rejected Materials is off, matching their accounting treatment. (#60374)
- For internal transfers, values the transit warehouse entry in Delivery Note and Sales Invoice documents at the amount removed from the source warehouse, so rounding does not create a small difference between the two. (#60366)
- Refreshes stock-history information before posting each stock transaction, so later transactions do not use outdated item quantities or values left by a failed submission. (#60400)
- Updates the "Serial No Ledger" report to include child warehouses when filtering by a warehouse group, show transaction details on every serial row, and use today’s date when As On Date is blank. Serial numbers moved between warehouses now show as Active rather than Delivered. (#60538)
- The "Serial No Service Contract Expiry" report shows only delivered serial numbers with an AMC Expiry Date, ordered from earliest to latest expiry. (#60535)
- Runs the "Negative Batch Report" in the background as a prepared report, allowing users to access results after generation completes. (#60527)
- Submitting or cancelling a Subcontracting Material Request updates Requested Qty on the linked Sales Order, so new requests include only the remaining quantity and cancelled requests make that quantity available again. (#60487)
- Recalculates totals when Disable Rounded Total is toggled, immediately updating Rounded Total and Rounding Adjustment without requiring another field change or saving. (#60455)
- Filters both the table and chart in the "Downtime Analysis" report to show only downtime entries the user can access. (#60453)
- Updates Pick List allocation to account for quantities already assigned to each batch in multi-batch bundles when calculating available stock. (#60317)
- Checks read access to Pick List records before using them to create a Delivery Note, and blocks users who lack permission. (#60321)
- Requires a positive Conversion Factor for alternate units of measure on Item records, using a global conversion only when the field is blank. Prevents disabling Maintain Stock for an Item referenced by a submitted Work Order. (#60324)
- When creating a stock Item with Opening Stock, requires Serial Number Series for serialized items and Automatically Create New Batch for batched items; missing settings now trigger an error instead of silently skipping the stock. (#60341)
- Updates the Work Order Connections section to show a numeric produced-item count for duplicated work orders and translate operation statuses into the selected language. (#60445)
- Allows Stock Entry previews in Report View to open without first opening a full Stock Entry form. (#60447)
- Users with permission to submit a Purchase Receipt can now submit receipts linked to a Production Plan without write permission on the plan; the plan’s Received Qty still updates automatically. (#60346)
- Restricts item selection in subcontracting Material Request records to stock items with Supply Raw Materials for Purchase enabled, and rejects other items during validation. (#60555)
- Fixes Project task completion and progress tracking, including how completed or cancelled tasks affect project status and how task dates are handled when using "Set Project Status". Also corrects project creation and task duplication, sales amounts linked from Sales Order, and the timing of progress reminder emails. (#60460)
- In Task, a task with no Project inherits its parent task’s Project and Company. Project changes are blocked when they would put a task in a different project from its parent or child tasks. (#60463)
- Updates the "Project Wise Stock Tracking" report to include stock-updating sales and purchase invoices, assign issued-item costs to the project on each stock entry row, and value delivered goods at stock value rather than selling price. The "Delayed Tasks Summary" excludes cancelled and template tasks from delayed results, and the "Daily Timesheet Summary" lists overnight logs under the day they start. (#60458)
- Updates Timesheet billing and Sales Invoice creation to invoice unbilled time entries using applicable rates and currency conversions, while carrying each entry’s Hours and Project into invoice rows. It blocks duplicate or negative time entries and lists only submitted timesheets in the customer portal. (#60461)
- Updates Purchase Order and Sales Order processing to prevent unit changes on partly received or delivered rows, block item updates on closed, on-hold, or delivered purchase orders and subcontracting from closed or on-hold orders, and avoid repeating quantities already ordered or billed in related documents. Corrects quantity conversions and links for orders and invoices between linked companies and for drop-ship deliveries, and updates returned quantities when a Purchase Receipt is submitted as a return. (#60467)
- Updates Subcontracting Receipt returns to reverse the proportional additional costs for accepted items being returned, including when charges and rebates offset each other. (#60472)
- Updates "Item-wise Purchase History", "Purchase Analytics", "Sales Analytics", and "Purchase Order Analysis": item-group filters include subgroups, analytics exclude opening invoices and use consistent stock-unit quantities and week labels, and closed orders show no pending amounts to receive or bill. Project-based trends omit rows without a project, the billing-date period option appears only in "Purchase Invoice Trends", requested quantities in different units are not added together, and returns that do not update an order do not change its billed amount. (#60474)
- Updates the "Procurement Tracker" to show purchase and subcontracting requests and all purchase order lines, calculate estimates and invoiced costs across linked lines, show the latest receipt date, apply Cost Center and Project filters together, and optionally include completed orders. The "Subcontracted Item To Be Received" and "Subcontracted Raw Materials To Be Transferred" reports now omit closed orders and allow one-day date ranges, while "Subcontract Order Summary" shows the order on every row. (#60476)
- Keeps the Include Closed Orders filter in the "Purchase Order Trends" and "Sales Order Trends" reports, so it no longer appears in other trends reports. (#60480)
- Updates the Request for Quotation supplier portal to show submitted requests for all suppliers linked to a user and to base Supplier Quotation entries on the request’s items; quotation status also refreshes when items change. The "Supplier Quotation Comparison" report respects viewing permissions and compares prices in company currency, and invoices for Supplier Quotation records are created through Purchase Order. (#60490)
- Updates Supplier Scorecard periods and scoring to reflect date ranges, submitted orders, quotation activity, and criteria weights when assigning supplier standings. It also keeps supplier restrictions aligned with scorecards and sends configured notifications when a standing changes. (#60503)
- Corrects blanket-order and purchasing rules: allowances use the original blanket-order quantity; Purchase Receipt returns do not require a Purchase Order, and stock-updating Purchase Invoices do not require a Purchase Receipt; item updates honor Disable Last Purchase Rate and allow the same item from different Material Requests or Supplier Quotations. Supplier holds now honor release dates and apply to applicable receipts, quotations, and bank or cash payments; Supplier and Customer records must use payable and receivable accounts respectively, supplier primary contacts and addresses must be linked to the supplier, and the Show Pay Button in Purchase Order Portal setting limits the "Pay" button to Purchase Order and Purchase Invoice pages. (#60506)
- Updates Quality Review scheduling to follow each Quality Goal’s selected date, avoid duplicate reviews for the same goal on a day, and keep reviews open until they are reviewed; review objectives and Quality Feedback parameters must match their goal or template, and feedback ratings start blank. Keeps Quality Action records open until all resolutions are complete, allows multiple Quality Meeting records on one day, preserves procedure links when procedures move, and restores the "Review" report. (#60483)
- Updates Delivery Note return limits to count components in packed bundles and items already returned, so the same stock is not counted as available twice. Treats blank Project and Sales Invoice links as unset when calculating billable time logs, and checks subcontracting returns against each raw material’s combined BOM requirement. (#60465)
- Only lists child tasks when the user has permission to read the parent Task. (#60464)
- Adds permission checks to project, purchasing, quality, subcontracting, and maintenance reports and lookups, so results include only data users can access. Updates role access for Project Template, Non Conformance, Quality Feedback Template, and Maintenance Visit, and limits portal project timesheets to project members. (#60469)
- Sales Invoice fetches project timesheets only when a project is set or changed, while Timesheet, Activity Cost, and Project Template checks reject disabled activity types, duplicate activity costs for an employee, and invalid template tasks. Project update replies are collected once and skipped for senders without user accounts; Task retains its entered Task Weight, including zero, and Task and Task Type reject negative weights, while projects created from Sales Order use the External type only when it exists. (#60459)
- Uses company currency for actual costs of purchase order lines without invoices in the "Procurement Tracker". (#60478)
- Updates Task handling so dependent tasks are rescheduled when dates or project relationships change, and project progress is recalculated when a task moves between projects. It also allows timesheets outside planned project dates, corrects task progress and status updates, and supports adding multiple tasks at a project’s root and deleting subtasks. (#60462)
- Translates document type names in the “Sales Analytics” chart legend, tooltips, and heading rows when Document Type is set to All. (#60576)
- Updates the Delivery Note list so clicking “To Bill,” “Partially Billed,” or “Completed” filters notes by the displayed status rather than billing percentage. (#60606)
- The Sales Invoice "Get Items From" list now excludes fully returned Delivery Note records, so selecting them alongside billable delivery notes no longer prevents the billable items from being added. (#60610)
- Fixes an issue where large Journal Entry records could remain submitted after cancellation when background processing is enabled. (#60623)
- Uses each entry’s own transfer rate when valuing incoming stock in Serial and Batch Bundle, instead of reusing a previous entry’s rate when no matching transfer rate is found. (#60630)
- Updates Stock Closing Entry to include non-cancelled Stock Ledger Entry records even when they were not submitted, so their quantities and values are counted in closing balances. (#60640)
- Updates the "Sales Funnel" report to calculate pipeline totals for the selected date range and currency, display quotation data, and respect user permissions. (#59972)
- Updates the "Address And Contacts" report so non-admin users can select a party type and Lead records use the correct name field. (#60674)
- Updates the "Available Stock for Packing Items" report to show whole, nonnegative packable bundle quantities and include only warehouses the user can access. (#60107)
- Grants full access to Subcontracting BOM for Purchase and Manufacturing Managers, and read access for Purchase, Stock, and Manufacturing users. (#60690)
- Adds Stock Reservation Entry permissions for the Manufacturing User and Manufacturing Manager roles, allowing them to submit Work Order and Production Plan records with Reserve Stock enabled. (#60686)
- Updates the "Process Loss Report" to show quantities from production recorded within the selected date range, list Work Orders only when they record a loss during that period, and calculate loss value using produced quantity plus process loss. (#60682)
- Updates a Task’s Task Weight to match the selected Task Type when Type changes, unless Task Weight is also changed at the same time. (#60636)
- Values standalone Sales Invoice and Delivery Note returns at the current stock valuation rate instead of the selling price. (#60615)
- Sends a separate Project Update for each twice-daily reminder time that has passed, including both updates when a reminder run occurs after both scheduled times. (#60565)
- Copies each time log’s From Time, To Time, and Project Name to its row in Sales Invoice, making entries with the same activity easier to distinguish. (#60564)
- Inter-company Purchase Invoice and Purchase Receipt documents created from a linked Sales Invoice or Delivery Note can now keep its currency even when the companies use different base currencies. The exchange rate is set for the receiving company, and the currency must match the linked document. (#60551)
- For LIFO items in batches with Use Batch-wise Valuation turned off, stock issues use the newest stock layer’s rate instead of the average rate, while purchase returns use the layer matching the original receipt rate. (#60533)
- Allows users with strict user permissions to select permitted warehouses in Warehouse records by excluding Default In-Transit Warehouse from permission checks. (#60529)
- Updates the "Maintenance Schedules" report to show the correct customer and item details, and gives the assigned salesperson access to schedule events. Adds checks for schedule dates and serials still in stock, and updates Maintenance Schedule and warranty statuses based on visits that remain submitted after cancellations. (#60485)
- Displays a notice when a Purchase Order created from a subcontracting Material Request has a finished good without an active Subcontracting BOM, prompting users to select the service item manually. (#60661)
- Updates the "Customer Acquisition and Loyalty" report to count each customer once, exclude credit notes from customer counts, and show only customers the user can access. It also determines when a customer was acquired before assigning revenue. (#60254)
- The "Customer Credit Balance" report includes customers covered by customer-group or company-wide credit limits, even when they have no individual credit limit. (#60293)
- Uses customer-specific rates from Item Price records when looking up prices, as selling transactions do. (#60303)
- The "Customers Without Any Sales Transactions" report now checks submitted Sales Invoices, Sales Orders, Delivery Notes, and POS Invoices, and adds a Company filter that respects users’ company access. (#60314)
- Updates Payment Entry to recalculate Paid Amount or Received Amount from the other payment amount when the selected account’s currency changes. (#60709)
Authors: @diptanilsaha, @rohitwaghchaure, @sokumon, @raghavisruia, @Abdeali099, @Pandiyan5273, @ervishnucs, @poojashree-cse, @barredterra, @nabinhait, @Shllokkk, @mihir-kandoi, @Sudharsanan11, @nishkagosalia For these release notes, we used an LLM (OpenAI gpt-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: @diptanilsaha, @Sudharsanan11, @krishna-254, @sagarvora, @barredterra, @khushi8112, @vorasmit, @mihir-kandoi
AI content