github frappe/erpnext v16.20.0

4 hours ago

Features

  • Adds a Pending Qty field to Job Card for partially finished work. Process loss is calculated only when Pending Qty is zero. (#55183)
  • Adds Customer Group and Supplier Group to Party Specific Item, so item restrictions can apply to a whole group instead of only one customer or supplier. Sales and purchase item searches also take these group-based rules into account when suggesting items. (#55245)

Bug Fixes

  • When a Stock Reconciliation is posted again, serial-numbered items no longer count the stock from the same entry twice. (#55075)
  • Fills the From BOM field for raw materials in Production Plan when Reserve Stock is enabled. This avoids an error saying a required field is missing when the plan is created. (#55092)
  • Updates the Sales Order message shown when an item is missing a warehouse, so it now says "Source warehouse" instead of "Delivery warehouse". (#55095)
  • The "Update Items" button now fills in stock details from the selected warehouse for newly added line items. (#55098)
  • A return Sales Invoice without a linked original invoice now uses the manually entered Incoming Rate (Costing) for items that use Moving Average costing instead of replacing it with a system-generated rate. This avoids the "Valuation Rate Missing" error when no prior stock entry exists. (#55104)
  • Customer and supplier Item Price entries now also use the regular item price when a different unit of measure is selected, so a price appears for that unit. (#55107)
  • Removes an extra stock adjustment step from Stock Reconciliation entries. (#55139)
  • Fixes Stock Entry so extra manufacturing costs are tracked separately for each operation instead of being combined across all operations. It also handles cases where more items are produced than planned. (#55133)
  • Keeps the current Net Purchase Amount on Asset forms for Composite Assets when it already has a value, instead of resetting it to 0. This keeps Calculate Depreciation available after the form is reopened. (#55145)
  • Clarifies the help text for Is Rate Adjustment Entry (Debit Note) in Sales Invoice so it explains that the debit note adjusts the rate on an existing invoice while keeping the original quantity. (#55148)
  • Updates automatic Remarks in Payment Entry for foreign currency transactions to show the correct currency for received and paid amounts. It also rewords the lines for allocations and deductions to describe them as adjustments. (#55152)
  • The Sales Forecast form no longer shows the unused Forecast Qty and Adjust Qty fields in item rows. (#55136)
  • Updates purchase documents to use the Allow to Edit Stock UOM Qty for Purchase option in Stock Settings, so item quantities can be edited when it is turned on. (#55179)
  • Speeds up stock record lookups by using the combined posting date and time instead of separate date and time values. (#55182)
  • Removes the custom filter from the Item Group field on the Item form. This can prevent a permission error when creating a new Item. (#55188)
  • The batch dropdown now uses the selected Posting Date and Posting Time to show batches that were available at that time. (#55185)
  • Copied Project records leave Customer and Sales Order blank instead of carrying them over from the original. This prevents a duplicated project from automatically using the same customer and sales order. (#55196)
  • The "Stock Ageing" report now uses batch-wise valuation for items tracked with batch numbers. (#55230)
  • Fixes the finished goods rate in Stock Entry repack entries with multiple finished goods by basing it on items where Set Basic Rate Manually is not selected. (#55244)
  • Updates item pricing so the current list price is used before discounts are applied. This avoids a discount being applied twice in some cases. (#55124)
  • The Payment Entry form now uses the exchange rate to fill in the matching Paid Amount or Received Amount when the two accounts use different currencies. It also keeps the exchange rate values from being mixed up when both sides use the same currency. (#55272)
  • In Stock Reconciliation, the system now uses the Valuation Rate without rounding when it creates stock ledger entries and calculates the Difference Amount. This reduces differences between the Amount Difference in the line items and the Difference Amount shown on the form. (#55260)
  • Batch search now reads Posting Date and Posting Time from the search filters correctly. This prevents an error when selecting a batch. (#55279)
  • The Job Card form now uses the same button color for "Start Job", "Resume Job", and "Complete Job". When one of these actions is shown, "Submit" switches to a neutral style. (#55261)
  • Reorganizes the POS Profile form into tabs for Accounting, POS Configurations, and More Info, with related settings grouped into sections. The Print Settings area is collapsible, and Allow Partial Payment now includes a note that it applies to POS Invoice. (#55285)
  • The Item variant dialog now lets you create variants from the attribute values you choose instead of requiring every attribute to have a value. Empty selections are ignored, so they do not stop variant creation when other values are selected. (#55289)
  • When you cancel or repost an entry with a new Posting Date, the system checks that date instead of the original one. This allows the cancellation or repost to proceed when the original date is in a closed accounting period. (#55295)
  • Uses the net Purchase Invoice amount when Set Landed Cost Based on Purchase Invoice Rate is enabled, so tax included in the item price does not make the linked Purchase Receipt amount too high. (#55297)
  • The Employee form now skips updating the Date Of Birth date picker when that field is not editable, avoiding an error for users without permission to change it. (#55314)
  • Skips stock updates for POS Sales Invoices when one or more items are linked to a Delivery Note. This prevents duplicate stock entries in those cases. (#55313)

Performance Improvements

  • Speeds up opening balance date range calculation in Process Period Closing Voucher and schedules the next dates without locking other records, so vouchers start and run more quickly even when several are in the queue. (#55078)
  • When Immutable Ledger is enabled, cancelling a document skips the extra update step on older Payment Ledger Entry records. This reduces the time needed to cancel documents with many entries. (#55166)

Authors: @ruthra-kumar, @mihir-kandoi, @Nihantra-Patel, @Sudharsanan11, @nareshkannasln, @rohitwaghchaure, @trufurs, @nishkagosalia, @Shllokkk, @Pandiyan5273, @diptanilsaha, @Jatin3128, @khushi8112
Reviewers: @ruthra-kumar, @mihir-kandoi, @rohitwaghchaure, @nishkagosalia, @diptanilsaha, @Jatin3128, @khushi8112

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:

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

Don't miss a new erpnext release

NewReleases is sending notifications on new releases.