github frappe/erpnext v16.36.0

2 hours ago

Breaking Changes

  • Adds access checks to several actions and record lookups, so users need the appropriate permissions to use them. Updates the related role access and carries new grants into customized permission settings during upgrades without replacing existing rules. (#59284)

Features

  • Adds the Use Serial No Wise Valuation option to Item, allowing serialized stock to use the item’s average cost instead of a separate cost for each serial number while still tracking each unit. The option is on by default; turning it off for an item with stock transactions switches its valuation method to Moving Average. (#59082)
  • System updates now stop if the serial and batch entry update fails, even when skipping failed updates is enabled, rather than continuing with potentially inconsistent records. (#59148)
  • Adds a "Create GL Reposting Entries" option to the "Stock and Account Value Comparison" report to rebuild accounting entries without changing stock values, with a From Date to limit which transactions are included. The report skips transactions without stock records and those that already have an accounting-only repost queued or underway. (#59127)
  • Adds a Group by Item option to the "Sales Order Analysis" report, totaling quantities and amounts across sales orders for each item and unit of measure. When Company is not selected, the report uses the default company instead of combining figures from different companies and currencies. (#59246)

Bug Fixes

  • Updates the Asset migration to copy checkbox values only from fields available on the site, avoiding upgrade failures when newer fields are absent. (#58417)
  • 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. (#59016)
  • Corrects how stock leaving a warehouse is valued for moving-average items whose batches use different valuation methods, using a fallback rate when a batch’s own history gives an invalid rate. (#59099)
  • Updates Last Purchase Rate on Item records without changing their Modified timestamp when purchase details are updated or items are merged. (#59106)
  • Renders template-based letterhead content and footers in Process Statement of Accounts PDFs, preventing unprocessed placeholders from causing broken images. (#59108)
  • 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. (#59096)
  • Displays the help content on the Pricing Rule form without template errors when the form refreshes or saves. (#59098)
  • 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. (#59088)
  • 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. (#59090)
  • Counts manufacturing Buffer Time as added production duration when calculating lead times and release dates in the "Material Requirements Planning" report. (#59093)
  • Includes the period beginning on the selected To Date in the "Material Requirements Planning" report, so demand on bucket boundary dates has a period to appear in. (#59145)
  • 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. (#59119)
  • Updates the "BOM Stock Analysis" report to show components with no stock record in the selected warehouse as having zero availability and include them when calculating the maximum number of finished items that can be made. (#59126)
  • 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. (#59157)
  • Clears Account when Company changes in a Shipping Rule and prevents saving the rule if its account belongs to a different company. (#59163)
  • 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. (#59159)
  • 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. (#59184)
  • Passes the transaction’s Company to automatic batch availability checks for outward stock transactions, allowing batches to be filtered by company. (#59165)
  • When Use Serial No Wise Valuation is turned off, reposted outgoing stock movements use the moving average rate instead of their previous serial-specific rates. Saving an Item whose setting was already off no longer changes its Valuation Method. (#59197)
  • When Pick Manually is enabled on a Pick List, items added from a Sales Order keep serial numbers, batches, and picked quantities blank until users select or scan them; automatic allocation remains unchanged for other pick lists. (#59173)
  • Updates Stock Reconciliation to write off leftover value only when no stock of that item remains in the warehouse. Adjusts "Stock Balance" and stock closing calculations so these write-offs are counted as value changes, not additional stock. (#59216)
  • 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. (#59222)
  • Respects Pick Manually when creating a Pick List from a Material Request or Work Order, leaving batch and serial number selections blank while retaining the mapped warehouse and quantity. (#59227)
  • Adds permission for roles that can edit a record to search for and select linked records without granting them permission to view those records. (#59123)
  • Uses the correct exchange rates when creating Payment Entry records for bank transactions involving different currencies, keeping the bank amount and converting the other account’s amount accordingly. (#59234)
  • Clears the Account field when the Company changes in Warehouse and prevents saving a warehouse with an account from a different company. (#59194)
  • Removes the Company filter from the Asset field in Asset Depreciation Schedule, allowing users to select an asset when creating a schedule manually. (#59259)
  • 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. (#59255)
  • 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. (#59244)
  • Updates Stock Reconciliation to exclude serial numbers with no stock in the selected warehouse when calculating current stock, so opening stock entries add those items instead of reversing stock that was never there. (#59267)
  • When an earlier stock transaction is added, Stock Reconciliation adjustments now carry forward the stock quantity instead of resetting it to zero, while still recording the value write-off. (#59270)
  • Refreshes the exchange rate when the selected Price List currency changes, while keeping the existing rate when the currency stays the same. (#59273)
  • 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. (#59278)
  • Updates Bin records when a stock voucher is cancelled, restoring Stock Value and Valuation Rate along with the quantity. (#59293)
  • Updates Stock Entry receipts for internal transfers so rejected items are also removed from the in-transit warehouse, with their value recorded in the rejected warehouse. (#59299)
  • Preserves the mapped Cost Center on Stock Entry items instead of replacing it with the default cost center. (#59295)
  • 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. (#59297)
  • Corrects how Asset Depreciation Schedule counts complete opening periods for straight-line and manual depreciation, so remaining amounts and month-end schedule dates reflect periods already booked. (#59305)
  • 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. (#59289)
  • When Get Raw Materials Cost from Consumption Entry is enabled in Manufacturing Settings, the Stock Entry used to complete a Work Order no longer includes unconsumed raw materials after a consumption entry exists, allowing the order to be finished and leftover materials returned with "Return Components". (#59312)
  • Uses the original sale line’s rate for returned items during POS Closing Entry consolidation, preventing small rounding differences from blocking consolidation. (#59323)
  • Blocks submission of Quality Inspection records when Sample Size is zero or negative, while still allowing drafts to be saved. (#59331)
  • Keeps the default Opportunity Type as Sales across languages, so users can save new Opportunity records without changing the field. (#59281)
  • 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. (#59339)
  • Clears the previously selected payment method when starting a new Sales Invoice in Point of Sale, so selecting the same method again can register payment on the new sale. (#59355)
  • Material requirements planning treats items marked for purchase as purchased even when they have no bill of materials. If an Item has no Default Supplier, it uses the Item Group’s Default Supplier and reports an error if neither has one. (#59353)

Performance Improvements

  • Copies details from each Serial and Batch Bundle to its Serial and Batch Entry records in smaller batches, reducing delays during large updates and adding PostgreSQL support. (#59076)
  • 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. (#59149)
  • Skips Stock Ledger Entry history checks for items and warehouses with no older batch records, reducing unnecessary work when processing stock entries. (#59111)
  • 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. (#59204)

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

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.