github frappe/erpnext v16.52.0

2 hours ago

Features

  • Renames the BOM option Track Semi Finished Goods to Produce an Item at Each Operation and adds a Steps list showing raw-material status for each operation, with the final step selected automatically. The BOM now lists all step problems in one “Fix These Steps” message and updates step materials when the linked BOM changes. (#61596)
  • Renames the staged-production setting in Work Order to Produce an Item at Each Operation and labels the operation fields Output Item and Output Item BOM. (#61597)
  • Renames the Make in Stages option to Produce an Item at Each Operation and adds a step-by-step guide to Job Card for moving materials, starting and completing work, and submitting the card. The guide checks stock before materials are moved, shows "Submit" when the job is complete, and replaces the output yes/no prompt with a "Record Output" dialog and clearer instructions. (#61598)
  • The "Item Variant Details" report now filters by multiple Items, Item Groups, or Warehouses, and groups variants under their templates with totals for stock, production, and open sales orders. Template stock totals are left blank when variants use different stock units. (#61680)
  • Adds an Item filter to sales and purchase trends reports, applying selected items to both the report rows and their totals. (#61708)

Bug Fixes

  • When a Task inherits a project from its parent task, it now also inherits the parent’s company. (#60701)
  • Fixes payment ageing in the "Payment Period" report, applies item and work-order filters in the "Process Loss Report", and uses company-specific data in stock reports. It also handles empty document-type selections in the Bank Reconciliation Tool and incomplete imported Lead records, links UTM campaigns to the correct Campaign, updates Subcontracting Receipt titles and process-loss quantities, and prevents quantity rounding from blocking valid Purchase Orders. (#60267)
  • Updates the "Stock Balance" report to reflect quantities set by Stock Reconciliation; in dimension-wise views, it applies the change to the row without dimensions instead of counting stock from other dimensions again. (#60700)
  • Keeps the linked Purchase Order currency and exchange rate on Purchase Receipts created from a Subcontracting Receipt, so foreign-currency amounts retain their order values. (#60716)
  • Updates Production Plan to show combined Actual Qty and Projected Qty from a group warehouse’s child warehouses. (#60719)
  • Allows Stock, Sales, and Purchase users and managers with the required permissions on Stock Reservation Entry to view the "Reserved Stock" report, with results limited by their user permissions. (#60688)
  • Dimension-wise rows in the "Stock Balance" report now value stock using the current rate for each item and warehouse; item totals remain unchanged. (#60695)
  • The "Job Card Summary" report shows each Job Card’s actual status and respects users’ access permissions; its chart includes cards dated on the start of a reporting period and shows zero for periods with no cards. (#60677)
  • Removes an empty status value from the filters on the “Annual Purchase” and “Annual Sales” cards and the “Material Request Analysis” chart, allowing eligible submitted orders and material requests to appear. (#60669)
  • Shows negative values in Expiry (In Days) for expired batches in the "Batch Item Expiry Status" report; batches expiring today show 0, and future expiries show positive values. (#60671)
  • Data Import exports linked Contact and Address records with Customer and Supplier records, listing primary records first; re-importing the file preserves the primary contact and address selections. (#60579)
  • The dimension-wise "Stock Balance" report now shows leftover stock value with no quantity in a row without dimensions, adding the row when needed. (#60740)
  • The "Kanban Board" action on Project now opens a Kanban Board filtered for that project instead of choosing one by name. It skips boards the user cannot access and gives any new board an available name. (#60729)
  • The "Work Orders in Progress" report now excludes closed Work Order records, even when their planned quantity is not yet complete. (#60667)
  • Updates the "Completed Work Orders" report to include Work Order records marked Completed even when process loss leaves the produced quantity below the planned quantity. (#60665)
  • Caps bundle quantities at zero when component stock is negative in the "Product Bundle Balance" report, while still showing the component’s actual stock quantity. (#60663)
  • Fixes permission handling and filtering in the "Item-wise Sales History" report, including Item Group, Customer Group, and date filters. (#60402)
  • Updates Stock Closing Entry so closing balances are generated only for submitted entries, cancelled entries are skipped, regeneration is blocked when a later entry exists, future To Date values are rejected, and Company is required. The "Stock Balance" report applies item, warehouse, and dimension filters when calculating opening balances from closing entries, and stock ageing no longer counts closed stock twice. (#60776)
  • Updates dialog actions to use the values collected when submitted, preventing filled mandatory fields from sometimes being reported as missing while a selection is still being checked. (#60800)
  • Uses the values already provided by the "Set as Lost" dialog in Opportunity and Quotation, preventing selected Lost Reasons from being mistakenly flagged as missing while link checks are pending. (#60797)
  • Applies the selected On This Date cutoff in the "Available Batch Report", excluding stock movements posted afterward from the reported available quantity. (#60770)
  • Updates the Inactive Customers report to respect user permissions and account for credit notes and closed orders when identifying inactive customers. (#60336)
  • Recurring foreign-currency documents use exchange rates for their new transaction date instead of reusing the original rate; creation stops if no matching rate is available. (#60825)
  • Updates the "Lost Quotations" report to include only quotations users can access and split each quotation’s lost value across its reasons instead of repeating the full value for each one. Adds lost-value totals and displays amounts in the company’s currency. (#60419)
  • Uses buying exchange rates for Supplier Quotation and selling exchange rates for POS Invoice, rather than selecting the latest rate regardless of type. (#60898)
  • Prefills Rate with the item’s valuation rate in the Item dashboard’s stock addition dialog and sends zero when Rate is blank, allowing the Stock Entry form to open. (#60902)
  • Restricts the "Sales Partner Commission Summary" report to sales records from companies the user is allowed to access. (#60895)
  • Updates the Print Format Editor help link to point to its documentation, replacing the outdated Print Format Builder link. (#60685)
  • Corrects target achievement totals across item groups and applies the viewer’s access permissions and relevant sales team when calculating achieved sales in target variance reports. (#60983)
  • Updates the "Sales Order Analysis" report to respect user permissions and handle closed orders, credit notes, and warehouse filters. (#60791)
  • Checks that users can view the referenced document and that it belongs to the same company when saving a Payment Request. (#61002)
  • Updates Issue and Timesheet portal lists to show records for customers who include the signed-in user in Portal Users, matching document views. Portal document checks apply only to users linked to a Customer or Supplier; other users follow their usual access rules. (#60998)
  • The customer portal’s Project list now retrieves only the project details it displays, instead of loading every field. (#61009)
  • Updates comparisons between BOM records to report repeated component and operation rows separately, without treating a simple reorder as a change. (#60775)
  • Updates Opening Invoice Creation Tool to respect invoice currencies, reuse uniquely matching existing customers and suppliers, and preserve opening amounts when quantities are rounded. It also flags invalid quantities and skips credit and overdue limit checks for opening balances. (#60842)
  • Blocks disabling a Mode of Payment while a POS Profile still uses it and identifies the linked profile. (#60844)
  • Blocks deletion of cancelled transactions when immutable ledger is enabled and lets Accounts Users view Accounts Settings without edit access. Clarifies that Merge similar Account Heads applies only to Journal Entry and Payment Entry records. (#60853)
  • Adds a validation for “On Previous Row Total” taxes that checks the referenced row as well as earlier rows, preventing sales and purchase tax templates and invoices from being saved when any of those rows is not marked Included in Print Rate. (#60886)
  • Validates that company Bank Account records link to a non-group Bank Account belonging to the same company. Disabled bank accounts lose their default status and are excluded from automatic selection in Payment Entry, including party-specific defaults. (#60854)
  • Updates "Open Work Orders" and "Work Orders in Progress" so only submitted Stock Entry records count as production activity, and excludes closed, stopped, and completed Work Orders from "Open Work Orders". (#60767)
  • When advance payments are not booked in a separate party account, Unreconcile Payment updates the Sales Order’s Advance Paid amount after an allocation is removed and returns the payment to its Unallocated Amount. (#60888)
  • Preserves the selected forward direction for all rows in the "Serial No and Batch Traceability" report, including rows with positive quantities. (#60924)
  • Updates the "Itemwise Recommended Reorder Level" report to include quantities from both Delivery Note and stock-updating Sales Invoice transactions when calculating reorder recommendations. (#60926)
  • The "Available Batch Report" excludes batches that expired before the selected date when Include Expired Batches is unchecked, while including batches with no expiry date or an expiry date matching the selected date. (#60928)
  • Portal lists for Quotation, Sales Order, and Sales Invoice now return only the details shown in each row, rather than additional document information such as costs and margins. (#61015)
  • Checks that users can view a Sales Order before listing its items when they create a work order. (#61041)
  • Checks that users have read access to an Asset before displaying its depreciation schedule in the asset form. (#61063)
  • Limits which documents a Payment Request can refer to and rejects a Print Format that does not match the referenced document type. Resending a payment email uses the saved request details and checks the user’s permissions to email the request and view its referenced document. (#61049)
  • When saving a POS Profile, validates that Write Off Account and Write Off Cost Center belong to the profile’s company and aren’t group entries; Write Off Account must also be a profit and loss account. (#61053)
  • “BOM Search” now excludes draft and cancelled BOM records. With Search Sub Assemblies enabled, it matches both direct components and items within sub-assemblies, and lists each matching record once. (#60939)
  • Updates the saved columns in the "Serial No Status" report to include serial number, status, and customer details. (#60932)
  • The item dashboard shows stock balances only for items and warehouses the user can access, and includes stock from child warehouses when they select a warehouse group. (#60930)
  • Fixes pending quantity and purchase request matching in the "Pending SO Items for Purchase Request" report, and applies the current user's access scope to its results. (#60540)
  • Checks for field-name conflicts only when an Accounting Dimension's field name changes, avoiding warnings about its own existing fields when it is re-saved. (#61098)
  • Stores XML extracted by Import Supplier Invoice as a private file attached to the Purchase Invoice, rather than a publicly accessible file. (#61083)
  • Adds read-permission checks to serial and batch summaries, Subscription Plan rate lookups, and opening invoice tools, limiting results to vouchers, items, plans, and companies users can access. (#61074)
  • Corrects customer filtering in the "Quotation Trends" report, removes measure suffixes from chart labels, and places Company first in the report filters. (#60651)
  • Hides the extra grand-total row in the "Sales Analytics" report when grouped by Order Type, since that view already includes the total. (#60706)
  • Preserves discounts from Pricing Rule records when item quantities change on selling transactions, keeping the discounted rate and amount in place. (#61055)
  • When Use Serial / Batch Fields is enabled, Delivery Note rows created from stock reservations now include the reserved serial and batch details directly; reservations covering multiple batches continue to use a bundle. (#61249)
  • Updates Stock Entry transactions used for Manufacture or Repack so the largest finished good receives any rounding remainder, keeping the total output value aligned with the consumed materials and additional costs. Batch- and serial-tracked finished goods also receive the corrected value in their tracking records. (#60394)
  • Updates Project gross margin calculations so stock materials are counted when they leave inventory, including through delivery notes, rather than also being counted as purchase costs. Purchase costs now include only non-stock or drop-shipped items, less landed costs added to project receipts. (#60747)
  • Converts return and credit note quantities to the Sales Order unit before calculating delivery progress, billed quantities, and quantities still to invoice. (#61283)
  • When documents are combined, each source’s additional discount applies only to its own items, and the combined document shows the total of those discounts. (#60723)
  • Updates customer-material returns in Subcontracting Inward Order to use only the remaining quantity in each batch. Items with both serial and batch numbers are matched by serial number when marked as consumed, so other items in the batch aren’t marked as consumed. (#60482)
  • Displays rates in each item price’s currency in the "Item Price Stock" report instead of the default currency. (#61315)
  • When creating a Sales Invoice from a Delivery Note, quantities from related returns and credit notes are converted to the delivery item’s unit, so the invoice reflects the correct remaining quantity when units differ. (#61284)
  • Calculates received, returned, and billed quantities using the unit and conversion factor on each Purchase Order item, even when a Purchase Receipt or Purchase Invoice uses different values. This updates receipt progress and quantities in "Make Purchase Invoice" and "Purchase Order Analysis", and rounds billed quantities so fully billed items are not offered again. (#61285)
  • Updates the letter example in Dunning Type to show the total overdue amount and list each overdue invoice with its outstanding amount and due date. (#61348)
  • Corrects quantities when creating a Purchase Invoice from a Purchase Order: debit notes that don’t update the order no longer reduce the quantity available to bill, and invoice returns no longer count ordinary Purchase Receipt quantities as returned. (#61338)
  • The "Item Where Used" report checks access to the selected Item and lists only related records and items the user can read. (#60937)
  • The "Incorrect Serial No Valuation" report now uses earlier stock movements to calculate opening quantities and values, while showing only entries within the selected period. (#60936)
  • Corrects closed-document amounts in the "Sales Person-wise Transaction Summary" so unit conversions do not inflate them. Shows an item’s quantity and amount only once when multiple salespeople share a transaction, and removes the extra blank row at the end. (#61289)
  • The "Sales Partner Transaction Summary" now includes return entries by default, and Account for Return Entries lets you exclude them. Existing saved reports using the previous setting continue to work. (#61118)
  • The "Sales Person Commission Summary" includes group members when you filter by a sales-person group and shows each document amount only once when multiple sales people are listed. (#61180)
  • Fixes calculation and data issues in manufacturing reports for BOMs, production plans, forecasts, quality inspections, and work orders. The changes prevent duplicate stock counts across warehouses and update planning quantities for process loss, returned materials, and open purchase orders. (#61381)
  • Fixes calculation and display issues in several stock reports covering batch and serial availability, stock balances and values, item prices, order delays, and reorder recommendations. "Incorrect Stock Value Report" now limits results to warehouses linked to the selected stock account, and "Available Serial No" includes serials from entries without a bundle in its opening balance. (#61382)
  • Fixes issues in Warehouse Type, Delivery Settings, Shipment Parcel Template, Quality Inspection Template, Quick Stock Balance, Item Manufacturer, Serial No, Landed Cost Voucher, Serial and Batch Bundle, and Putaway Rule. Landed Cost Voucher now accepts negative charges for returns, including vouchers containing only returns. (#61383)
  • Fixes errors in stock reports covering inventory balances, quantities, values, ageing, and serial/batch tracking; backward tracing now follows batches and serial numbers through the entries that produced them. (#61380)
  • Updates Subcontracting Inward Order workflows so receipts, returns, deliveries, invoices, and Work Orders account for quantities already processed; cancellations also adjust only the related stock reservations. It blocks inward orders for closed or on-hold Sales Orders and locks Required Items and Work Order Qty after submission. (#60457)
  • Adds checks to Subcontracting BOM and Subcontracting Order records for valid BOMs, positive quantities, and details that match the linked Purchase Order. Updates subcontracted quantities, order statuses, and material reservations to account for all related orders and supplier returns. (#60456)
  • Updates Subcontracting Receipt processing so the related Purchase Receipt includes all receipt rows and purchase-order charges, and can be created only once from a submitted receipt; receipts also reject orders with different currencies, taxes, or discounts. It returns raw materials for rejected goods at zero value, checks material consumption across all receipt rows, calculates additional costs on the server, and allows quality inspections after submission when the setting is enabled. (#60473)
  • The Bank Reconciliation Tool now lists only matching vouchers the user can read. (#61413)
  • Updates Stock Reconciliation and Repost Item Valuation to use posting-time cutoffs, and makes Stock Closing Entry check for pending reposts and stock changes before publishing a balance. Fixes an issue that could skip related accounting entries during reposting and runs Inventory Dimension checks after all rows in a Stock Entry are posted. (#61384)
  • Limits the “Prospects Engaged But Not Converted” report to Lead, Opportunity, Quotation, and Issue records the user can read, and matches communications to the correct record. (#61045)
  • Edited notes on Lead and Opportunity records now save using the same permission checks as added or deleted notes. (#60894)
  • Limits the Banking page to users with desk access: logged-out visitors are sent to log in, and website-only users are denied access. (#61475)
  • Adds checks for disabled or expired Batches in stock transactions and rejects disabled batches used as consumed materials in Subcontracting Receipt. When Items are merged, source stock stays available in warehouses where the target has no bin; the update also adjusts Item Price selection, unit conversions, variant handling, lead-time calculations, and stock settings. (#61476)
  • Updates "Serial No and Batch Traceability" to avoid revisiting entries during backward tracing, "BOM Stock Analysis" to calculate producible quantities from BOM quantities, and Production Plan summaries to count only lost quantities not covered by extra orders. It also keeps Landed Cost Voucher rounding adjustments off return rows, coordinates postings with closing jobs in Stock Closing Entry, and checks disabled batches on automatically created consumed-material bundles in Subcontracting Receipt. (#61516)
  • Updates Delivery Note handling so it cancels associated Packing Slip records, appears only once in a Shipment, and uses the correct items and quantities for internal transfers; cancelled deliveries are excluded when creating a Delivery Trip. Return credit notes account for earlier linked or unlinked returns and unit differences, limiting credits to delivered quantities without crediting the same quantity twice. (#61510)
  • When serial/batch fields and automatic bundle creation are enabled, Delivery Note, Sales Invoice, and POS Invoice assign serial numbers from the selected batch when creating the bundle, rather than filling the row’s Serial No field. Automatically assigned serial numbers are not reused across item and packed-item rows, and POS invoices can be submitted without entering those serial numbers manually. (#61535)
  • Removes the Inventory Delivered But Not Billed account from the United States chart of accounts, allowing companies to be created with the chart in version 16. (#61541)
  • Stops a Work Order from counting semi-finished goods made by its earlier operations as warehouse demand, while still reserving stock items used for rework. (#61544)
  • Fixes sales amount calculations and permission checks in the "Territory-wise Sales" report. (#61530)
  • Checks advances on Sales Invoices and Purchase Invoices using the company currency’s decimal precision, preventing valid advances from being rejected when it uses more decimal places than the invoice currency. (#61564)
  • Updates Quality Inspection checks to match inspections with the correct item rows and use the inspection’s own template; Pick List excludes fully delivered sales order rows, and Stock Reservation Entry status and work-order transfers are corrected. Corrects provisional stock accounting in Purchase Receipt and Purchase Invoice processing so reversals reflect the amount still open after cancellations; rejected materials use the net purchase rate when the relevant buying option is enabled. (#61565)
  • Rounds Qty in Stock UOM before checking whole-number stock units, allowing Purchase Order rows with converted quantities to be saved. It also rounds pending quantities on open Purchase Order and Subcontracting Order rows before totaling Ordered Qty. (#61574)
  • Updates Stock Entry to check that alternative items are allowed and use the correct quantities when transferred materials are returned or backflushed. Fixes Work Order operation matching so repeated operations use their own BOM settings, and updates consumption totals for closed orders. (#61579)
  • Excludes cancelled GL Entry records when comparing voucher entries during Repost Item Valuation, so they don’t trigger false mismatches or unnecessary recreation of accounting entries. (#61057)
  • Combines balances from separate account groups with the same account type in the "Financial Ratios" report, instead of showing only one group’s balance. (#61386)
  • Updates Production Plan quantity handling so pending material requests exclude quantities already planned, and changes the "Material Requirements Planning Report" to match incoming supply with demand dates. Adds quantity, rate, and order-matching checks to Blanket Order, and updates manufacturing lead-time calculations in Master Production Schedule. (#61615)
  • Allows BOM component selection to use Item Code filters with conditions other than equals. (#61625)
  • Checks batches selected through Serial and Batch Bundle on Subcontracting Receipt against the batches supplied for the order, and continues checking later rows when a row has no materials transferred for that order. (#61624)
  • Allows "Get Items" to load a manufacturing Stock Entry when no finished goods have a target warehouse, instead of raising an error; saving then displays the existing warehouse-required message. (#61630)
  • Corrects batch availability in Stock Reservation Entry when no reservation entry is specified for exclusion, so available stock is not reported as zero. (#61442)
  • Updates Transaction Deletion Record to process deletion batches in record-name order instead of modification-date order, reducing the risk of temporary-storage errors during large deletions. (#61440)
  • Allows returns in Delivery Note without a linked Sales Order, even when the sales order requirement is enabled; regular delivery notes still require a Sales Order. (#61622)
  • Filters account balances and Chart of Accounts by finance book: with no book selected, they include only entries without a finance book; selected books and the company’s default book are included when applicable. (#61346)
  • Requires the default account for each Mode of Payment to be an enabled Bank, Cash, or Receivable account rather than an account group, and blocks disabled payment modes on Payment Entry, Payment Request, Sales Invoice, and POS Invoice transactions. (#61345)
  • Corrects payment schedule balances in company currency when a Payment Entry is canceled, and rejects zero or negative payment amounts and exchange rates. (#61351)
  • Corrects manufacturing workflows across BOM, Job Card, Workstation, Routing, and Downtime Entry, including converting sub-assembly operating costs to company currency and using the correct materials for repeated operations. Job Card scheduling accounts for shifts, holidays, and disabled working hours, and permission checks apply to Job Card actions and calendar entries. (#61644)
  • Adjusts Work Order production commitments for materials sent to a linked subcontracting operation, so dispatched quantities are no longer counted as outstanding demand at the source warehouse. (#61653)
  • Assigns each Job Card material transfer only to rows for its operation in a Work Order, rather than distributing it across other operations. For semi-finished goods, materials for subcontracted operations go through the Subcontracting Order, and open Work Order records with existing transfers reflect the corrected allocations. (#61631)
  • Defaults the Reserve Warehouse for supplied items in Subcontracting Orders created from a Job Card to the source warehouse where the materials are held; a manually selected warehouse still takes precedence. (#61633)
  • Updates Workstation status based on Job Card activity: unstarted jobs with transferred materials leave it Off, running jobs show Production, and paused jobs show Idle. Open floor and work order boards refresh after status changes without losing loaded work orders, and start times are recorded when a Job Card starts without an assigned employee. (#61638)
  • Recalculates the Billed Percentage and Status for submitted original Delivery Notes marked To Bill or Partially Billed when items have been returned, so their billing information reflects the returned quantities. (#58987)
  • Updates Sales Order delivery progress to exclude rows marked Skip Delivery and counts reservations from all warehouses against each order row’s limit. Reservations also include the full quantity of packed items picked from multiple warehouses. (#61671)
  • Adds a collapsible Steps section to BOM, open on drafts and closed by default after submission. Removes the extra bottom border and adds space before Components. (#61694)
  • Fills an empty Target Warehouse on Work Order as soon as BOM items are loaded, using the BOM’s Default Target Warehouse first, then the company’s Default Finished Goods Warehouse, followed by item and item group defaults; existing selections remain unchanged. (#61692)
  • Allows users to search for Dimension Value entries in Accounting Dimension Filter when the selected tree-based dimension has no Is Group field, avoiding a search error. (#61704)
  • Using "Update Items" on a Sales Order with picked stock keeps existing reservations for undelivered items, including when you change rates or increase quantities. You must unreserve stock before reducing quantities below the delivered and reserved amounts, deleting reserved items, or changing their unit or conversion factor. (#61663)
  • Limits the options loaded by the Party filters in the "General Ledger", "Accounts Receivable", and "Accounts Payable" reports, preventing large lists from freezing the browser when users open or search the filters. (#60856)
  • Keeps needed rounding adjustments when a small debit/credit difference remains, preventing a one-cent imbalance in posted entries. (#61727)

Performance Improvements

  • Speeds up stock valuation for items with serial numbers during submission and reposting by looking up incoming rates in batches. (#60772)

Authors: @nabinhait, @khushi8112, @barredterra, @diptanilsaha, @iamejaaz, @raghavisruia, @ervishnucs, @mihir-kandoi, @Sudharsanan11, @Pandiyan5273, @Afsalsyed, @sumitjain236, @Shllokkk, @rohitwaghchaure
Reviewers: @Sudharsanan11, @khushi8112, @diptanilsaha, @barredterra, @mihir-kandoi

AI content

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:

  • skip-release-notes

Changes with the following types were excluded:

  • refactor
  • chore
  • test
  • ci
  • docs
  • build
  • style

Don't miss a new erpnext release

NewReleases is sending notifications on new releases.