github frappe/erpnext v15.121.4

latest release: v16.36.0
2 hours ago

Breaking Changes

  • Adds access checks before record lookups and updates in Sales Order, BOM, and related forms, and grants the roles the permissions those actions need. On sites with customized permissions, adds missing grants without changing existing rules. (#59283)

Bug Fixes

  • Allows Code List references to use either a specific version name or a canonical URI; canonical URIs select the latest available version, while specific names continue to select that version. Unknown code lists return no matching codes or default code. (#58771)
  • Corrects inflated unit rates when changing a batch on an amended material receipt in Stock Entry by using the batch’s actual quantity in the valuation calculation. (#59015)
  • Prevents Supplier Scorecard saves from repeatedly creating the same one-day period for suppliers created at month-end. (#58706)
  • Updates Last Purchase Rate on Item records without changing their Modified timestamp when purchase details are updated or items are merged. (#59105)
  • Corrects outgoing stock values for moving-average items whose batches use a mix of batch-wise and warehouse-level valuation, using a fallback rate when a batch’s own history is missing or inconsistent. (#59102)
  • Renders template-based letterhead content and footers in Process Statement of Accounts PDFs, preventing unprocessed placeholders from causing broken images. (#59107)
  • Clears leftover stock value when a warehouse’s remaining quantity rounds to zero, preventing Stock Ledger Entry records from showing value against a zero balance. (#59095)
  • Updates Stock Ledger Entry reposting to use the saved posting time when recalculating stock balances, rather than rebuilding it from the date and time, so entries with a mismatch can be included in the recalculation. (#59087)
  • Allows Completed Quantity to be 0 on a Job Card when units are recorded as Process Loss or left Pending, while still rejecting negative quantities. (#59118)
  • Filters warehouse and account choices in Item Group defaults to the selected company and excludes group records; account choices are also limited to the appropriate account category. (#59089)
  • Adds date-range checks to Bank Reconciliation Tool that reject requests when From Date is later than To Date, or when From Reference Date is later than To Reference Date. (#59156)
  • Clears Account when Company changes in a Shipping Rule and prevents saving the rule if its account belongs to a different company. (#59162)
  • Continues checking later Putaway Rule entries when a warehouse cannot fit a whole unit, allowing stock to be allocated to a later warehouse with enough capacity. (#59158)
  • Changes the revaluation journal filter label to "Include Revaluation Journals" in "Accounts Payable", "Accounts Payable Summary", "Accounts Receivable", and "Accounts Receivable Summary" to clarify that it controls whether these entries appear. (#59183)
  • Passes the transaction’s Company to automatic batch availability checks for outward stock transactions, allowing batches to be filtered by company. (#59164)
  • Updates Stock Reconciliation to write off an item’s leftover value only when none of that item remains in the warehouse. The "Stock Balance" report now applies these write-offs as value changes instead of counting the full balance again. (#59219)
  • Lets roles that can edit a form choose linked records from its pickers, even when they can’t view or edit those records. (#59232)
  • Clears the Account field when the Company changes in Warehouse and prevents saving a warehouse with an account from a different company. (#59193)
  • When Add to Transit is enabled for a material transfer, Stock Entry limits item-level Target Warehouse choices to transit warehouses and rejects non-transit warehouses when saved. (#59254)
  • Corrects remaining quantities when receiving items from an in-transit Stock Entry by converting between the item’s stock unit and the row’s unit, so partial receipts show the right balance and fully received items are not listed again. (#59243)
  • Updates adjustment entries in Stock Reconciliation to write off stock value without resetting the current stock quantity or cost rate. Backdated stock transactions remain reflected in the stock balance when entries are recalculated. (#59271)
  • Updates Landed Cost Voucher to allocate landed costs based on purchase item amounts after discounts, rather than before discounts. When the selected allocation basis totals zero, it prevents the allocation and tells users which alternative basis to choose. (#59279)
  • Fixes an error that can prevent POS Invoice returns from loading when item details have no validation setting. (#59290)
  • Internal-transfer receipts now remove rejected items from the in-transit warehouse and record their transfer value in the rejected warehouse. (#59300)
  • Copies the original Reference Number and Reference Date into reversed Journal Entry records so bank-entry reversals can be saved with their required reference details. (#59288)
  • Preserves the mapped Cost Center on Stock Entry items instead of replacing it with the default cost center. (#59294)
  • Applies user permissions when choosing a Price List from customer or default settings, including when multiple lists are permitted. Rejects Price Lists configured for buying on sales transactions or selling on purchase transactions. (#59296)
  • When Get Raw Materials Cost from Consumption Entry is enabled, the manufacture Stock Entry leaves out unconsumed raw materials if a consumption entry exists, allowing partially consumed Work Orders to be completed. (#59311)
  • Fixes a server error in Stock Entry during continuous raw material consumption when validating against a BOM, so the entry now submits correctly. (#59314)
  • Uses the original sale line’s rate for returned items during POS Closing Entry consolidation, preventing small rounding differences from blocking consolidation. (#59322)
  • When creating a Quotation from a Customer, the preferred billing and shipping addresses and primary contact are used instead of the most recently linked records; explicitly selected addresses remain unchanged. (#59338)
  • Updates Coupon Code to exclude disabled Pricing Rule records from selection and reject new links to them, while allowing existing coupons to keep their linked rule. It also rejects a Valid Up To date earlier than Valid From. (#59221)
  • Rounds remaining payment and invoice amounts to the applicable currency precision in Payment Reconciliation, preventing rounding differences from making an allocation appear larger than the available balance during processing. (#59356)

Performance Improvements

  • Skips Stock Ledger Entry history checks for items and warehouses with no older batch records, reducing unnecessary work when processing stock entries. (#59110)
  • Reduces memory use during stock ledger reposting by processing entries in smaller batches and locking them only as they are processed. Skips item-and-warehouse reposts already covered by a related manufacture or repack repost. (#59117)
  • When a company is selected, the "Gross Profit" report fetches sales returns only for that company instead of loading returns from all companies in the date range. (#59229)

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

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:

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

Don't miss a new erpnext release

NewReleases is sending notifications on new releases.