chore: release v15 - #57549
Merged
Merged
Conversation
On cancel, update_entries_after replays every live SLE at the voucher's posting datetime, but get_previous_sle_of_current_voucher seeded the replay with the reversal SLE's creation, which resolves to the bucket's own closing row. The bucket's net qty got double-counted into every same-datetime row, so later submissions passed negative stock validation against inflated balances, and the queued repost then rewrote correct values with allow_negative_stock forced on, silently creating negative stock. Backports the missing guard from eca71dc.
…ay-v15 fix: seed cancelled voucher replay from before its posting datetime (v15)
…save-button fix: restore Save button on reverse journal entry
…-57359 fix: respect selected BOM when creating work order for variant item (backport #57359)
A batch is one valuation pool, so consumption is valued at the pooled rate while slots may carry stale intra-batch detail (e.g. units reconciled at zero and later merged). Consuming such a slot leaves a negative value on positive qty. Spread the pool value across the batch's slots when that happens; non-batchwise slots pool per warehouse.
fix: check if item is variant when creating WO from MR (backport #51019)
…dress (cherry picked from commit ea3ed8b)
…ol-rebalance-v15 fix: rebalance batch slot values at the pooled rate when driven negative (backport #57403)
…-57400 fix: guard against missing is_your_company_address custom field on ad… (backport #57400)
sort on (expiry is none, expiry) so a null expiry_date is never order-compared against a datetime.date, which raised typeerror in python 3 when a warehouse held both dated and never-expiring batches. (cherry picked from commit 62c9f8e)
…-57413 fix: typeerror in get_batches_by_oldest for mixed batch expiry (backport #57413)
…st-v15 fix: map pick list customer to delivery note when no sales order
use frappe.get_list instead of frappe.get_all in get_dashboard_info so the company list honors user permissions. previously, a party with invoices across multiple companies would raise "User don't have permissions to select/read this account" for users restricted to a subset of companies, since get_party_account was called for companies the user could not access. fixes #57428 (cherry picked from commit 903c87b)
…-57435 fix(accounts): respect user permissions in party dashboard company list (backport #57435)
…zero-stock items in the Stock Balance report (#57458)
(cherry picked from commit 598f6f0)
…-57466 fix: recalculate operating cost on hour rate change in routing (backport #57466)
(cherry picked from commit e99425b)
(cherry picked from commit f13cd00) # Conflicts: # erpnext/patches.txt
(cherry picked from commit 0be33e4)
(cherry picked from commit 1a558ce)
…subcontracting order the bin reserved-qty recalc filtered out closed purchase orders but not closed subcontracting orders, so closing a partially-received sco kept the reservation for the unreceived qty and left projected qty understated. apply the same closed-status filter to the subcontracting order path. (cherry picked from commit db91a79) # Conflicts: # erpnext/stock/doctype/bin/bin.py
…acting order close a partially-received sco with a reserve warehouse and assert the raw-material reservation is released and projected qty recovers. (cherry picked from commit e4b8065)
…-57476 refactor: configurable date in reverse ERR journals (backport #57476)
…-57443 fix: rename misleading filter labels in AR/AP reports (backport #57443)
…) (#57505) fix(stock): narrow legacy serial ledger lookup by item (#57499) Filter legacy Stock Ledger Entry lookups by item code so the existing item and warehouse index can reduce rows scanned during serial valuation. (cherry picked from commit 425191e) Co-authored-by: Sudharsanan Ashok <135326972+Sudharsanan11@users.noreply.github.com>
…an issue especially same posting datetime (backport #57380) (#57396) * fix: Incorrect creation time at the time cancelling an entry causing an issue especially same posting datetime (#57380) * fix: shift same-timestamp sibling SLEs when cancelling an entry update_qty_in_future_sle compared against the reversal SLE's own creation and skipped same-posting_datetime siblings on cancel, leaving their qty_after_transaction stale and causing false negative stock errors. * fix: revert update_qty_in_future_sle cancel tie-break, it double-counted (cherry picked from commit 8c0ec3c) # Conflicts: # erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py * chore: fix conflicts Fix test cases related to stock ledger entry cancellations and ensure correct handling of same timestamp entries. * test: use named item in test_cancel_shifts_same_timestamp_delivery_notes * chore: fix typo --------- Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
…-57504 fix: update operating cost when propagating workstation hour rate to routing (backport #57504)
…nt title Purchase Order, Sales Order and Subcontracting Order point title_field at the party name field, so Document.set_title_field() never rendered their title template and every new record stored the placeholder verbatim. On Purchase Order the field is also mandatory, so the junk value is guaranteed. Drop the dead defaults (and Purchase Order's reqd, which would otherwise make an always-empty field mandatory) and backfill the affected rows.
#56561) Reports like Sales Order Trends and Purchase Order Trends showed the global default currency symbol instead of the transacting company's currency. Threads the company currency through conditions["company_currency"] in trends.get_columns and uses it for both the chart's currency and the Total row. The chart now skips the grand-total row by its label instead of by a falsy first periodic cell, so the already-summed Total row is not added into the datapoints a second time. Backport of #56561 (frappe/erpnext). Two parts of the original PR are not included: the Landed Cost Report does not exist on this branch, and the trends report test files do not exist either.
calculate_total_row tested each column with `"Link/Currency" in col`, but based-on and group-by columns are dicts, so the test checked the dict's keys and never matched. currency_col_idx stayed None and the grand-total row's currency cell was left unset, so Total(Amt) rendered with the global default currency instead of the company's. Match the dict's fieldtype/options instead. Dict columns are never numeric and string columns are never Link columns, so the two branches are now mutually exclusive.
fix: use company currency instead of global default in report (backpo…
fix: stop storing "{supplier_name}" / "{customer_name}" as the document title
`calculate_rm_cost` skipped rate refresh whenever `bom_creator` was set, so neither the Update Cost button nor the BOM Update Tool could ever refresh those BOMs. Every BOM in a multi-level tree carries the field, so whole trees stayed frozen at their creation rates. The guard replaced the removed `rm_cost_as_per == "Manual"` check in 0b63dbf, on the assumption that BOM Creator rows hold manual rates. They do not: BOM Creator recomputes every row from `rm_cost_as_per` on save.
…te-cost-v15 fix(manufacturing): update cost of BOMs created via BOM Creator (backport #57532)
frappe-pr-bot
requested review from
mihir-kandoi,
rohitwaghchaure and
ruthra-kumar
as code owners
July 28, 2026 10:20
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
…Plan (backport #57553) (#57555) fix(manufacturing): fall back to UOM Conversion Factor in Production Plan Production Plan read the conversion factor straight off the item's own UOM child table, so an item with a purchase UOM but no matching row threw "UOM Conversion factor not found" while Stock Entry silently resolved it from the item's variant template or the UOM Conversion Factor doctype. Resolve it the same way, and keep returning None when nothing is configured anywhere so the missing-setup error still fires.
…-57552 fix: respect child warehouse account override in Stock and Account Value Comparison (backport #57552)
…57550) Co-authored-by: Diptanil Saha <diptanil@frappe.io>
…lags.in_test` in version-15 (#57579)
Collaborator
Author
|
🎉 This PR is included in version 15.118.2 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated weekly release.