Frappe PR Bot
866688931b
chore(release): Bumped to Version 15.119.0
...
# [15.119.0](https://github.com/frappe/erpnext/compare/v15.118.3...v15.119.0 ) (2026-08-04)
### Bug Fixes
* **accounts:** fetch deferred invoice docs on non-empty `sales_docs` or `purchase_docs` in repost accounting ledger (backport [#57753 ](https://github.com/frappe/erpnext/issues/57753 )) ([#57756 ](https://github.com/frappe/erpnext/issues/57756 )) ([ee4e296 ](ee4e296ce6 ))
* **accounts:** skip party dashboard without invoice permission ([9d417da ](9d417da3d8 ))
* **accounts:** update AU standard chart of accounts (backport [#57145 ](https://github.com/frappe/erpnext/issues/57145 )) ([#57607 ](https://github.com/frappe/erpnext/issues/57607 )) ([15c3817 ](15c381701d ))
* **assets:** add permission checks on whitelisted methods on `asset_capitalization` ([338fff2 ](338fff20db ))
* do not fetch a random inventory account when multiple inventory accounts exist (backport [#57626 ](https://github.com/frappe/erpnext/issues/57626 )) ([#57631 ](https://github.com/frappe/erpnext/issues/57631 )) ([972a990 ](972a990b01 ))
* escape data in multiple templates (backport [#57742 ](https://github.com/frappe/erpnext/issues/57742 )) ([#57769 ](https://github.com/frappe/erpnext/issues/57769 )) ([928f984 ](928f984198 ))
* filter Accounts Receivable by invoice sales partner (backport [#57628 ](https://github.com/frappe/erpnext/issues/57628 )) ([#57646 ](https://github.com/frappe/erpnext/issues/57646 )) ([ebf5a46 ](ebf5a462b3 ))
* guard against None row in get_stock_balance_for (backport [#57567 ](https://github.com/frappe/erpnext/issues/57567 )) ([72f293f ](72f293f131 ))
* Ignore permission while deleting user permission ([faa7c46 ](faa7c466b1 ))
* incorrect batch-wise valuation rate for entries with same posting datetime ([#57794 ](https://github.com/frappe/erpnext/issues/57794 )) ([431dc2e ](431dc2e5f1 ))
* **item_variant:** added permission checks on `enqueue_multiple_variant_creation` ([9cd5997 ](9cd5997500 ))
* let Purchase Receipt cancel defer to Frappe's linked-document check (backport [#57592 ](https://github.com/frappe/erpnext/issues/57592 )) ([#57602 ](https://github.com/frappe/erpnext/issues/57602 )) ([7cecff9 ](7cecff9fa4 ))
* **opportunity:** add validation for positive item quantities ([f47346a ](f47346aa90 ))
* **payment reconciliation:** correct supplier gain/loss posting ([78cd25d ](78cd25de04 ))
* **payment_request:** added permission checks on `resend_payment_email` ([c38c9d5 ](c38c9d5d9b ))
* **plant_floor:** add missing perm check on `get_stock_summary` (backport [#57667 ](https://github.com/frappe/erpnext/issues/57667 )) ([#57669 ](https://github.com/frappe/erpnext/issues/57669 )) ([42d5378 ](42d53783bb ))
* preserve UOM conversion factor precision in transactions ([4373e29 ](4373e295de ))
* prevent duplicate shipping charges without cost center ([a6dff3f ](a6dff3fc47 ))
* **projects:** add project filter ([54390bd ](54390bdeb9 ))
* **projects:** include on hold status in project filters and reports ([478426b ](478426b436 ))
* **purchase:** reject purchase returns where every item has zero quantity ([8676add ](8676add875 ))
* **quotation:** carry forward communications from opportunity at after_insert (backport [#57639 ](https://github.com/frappe/erpnext/issues/57639 )) ([#57642 ](https://github.com/frappe/erpnext/issues/57642 )) ([cf42c52 ](cf42c52530 ))
* resolve backport conflicts for version-15 ([1602639 ](1602639a80 ))
* resolve version 15 backport conflict ([00df865 ](00df8652e3 ))
* resolve version-15 backport conflict ([70da05e ](70da05edb7 ))
* respect quantity precision in material transfer validation ([a5ed3a5 ](a5ed3a5945 ))
* **sales:** reject sales returns where every item has zero quantity ([48beb2e ](48beb2ee23 ))
* seed standard Item Groups under the existing tree root ([8483350 ](848335086c )), closes [#57581 ](https://github.com/frappe/erpnext/issues/57581 )
* set transaction currency on payment entry gl entries ([#57613 ](https://github.com/frappe/erpnext/issues/57613 )) ([35f523e ](35f523e2dd ))
* source manually created asset value from valuation rate ([455d6d4 ](455d6d4ac1 ))
* **stock:** pick list serial batch posting date ([#57015 ](https://github.com/frappe/erpnext/issues/57015 )) ([a51750d ](a51750db56 )), closes [#56951 ](https://github.com/frappe/erpnext/issues/56951 )
* **stock:** validate only the variant attributes that changed ([2993747 ](2993747636 ))
* **stock:** value batched packed-item returns from the original bundle (backport [#57327 ](https://github.com/frappe/erpnext/issues/57327 )) ([#57510 ](https://github.com/frappe/erpnext/issues/57510 )) ([94d63eb ](94d63ebb49 ))
* use payment entry posting date for received amount exchange rate (backport [#57660 ](https://github.com/frappe/erpnext/issues/57660 )) ([#57662 ](https://github.com/frappe/erpnext/issues/57662 )) ([b826b7c ](b826b7c3e6 ))
* validate account frozen date ([310b9d4 ](310b9d4e65 ))
### Features
* auto-fill subscription accounting dimensions from plan with item fallback (backport [#57615 ](https://github.com/frappe/erpnext/issues/57615 )) ([#57621 ](https://github.com/frappe/erpnext/issues/57621 )) ([bb36a4f ](bb36a4fd08 ))
* make Shipping Rule Cost Center optional with company default fallback (backport [#57355 ](https://github.com/frappe/erpnext/issues/57355 )) ([#57402 ](https://github.com/frappe/erpnext/issues/57402 )) ([b2918b8 ](b2918b8bb3 ))
* status based bar colors in Work Order gantt view (backport [#57634 ](https://github.com/frappe/erpnext/issues/57634 )) ([#57635 ](https://github.com/frappe/erpnext/issues/57635 )) ([68c24f3 ](68c24f3767 ))
2026-08-04 20:31:08 +00:00
Diptanil Saha
f0d1887e6e
Merge pull request #57782 from frappe/version-15-hotfix
...
chore: release v15
2026-08-05 01:59:03 +05:30
Shllokkk
e3af2f9302
Merge pull request #57800 from Shllokkk/savc-child-account-override-test
...
test: child warehouse account override in stock vs account value comparison
2026-08-05 01:35:33 +05:30
mergify[bot]
15c381701d
fix(accounts): update AU standard chart of accounts (backport #57145 ) ( #57607 )
...
fix(accounts): update AU standard chart of accounts (#57145 )
(cherry picked from commit fee3a6e0fd )
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
Co-authored-by: Jebajebas <jeba.j@arus.co.in >
2026-08-04 19:22:31 +00:00
Vishnu Priya Baskaran
35f523e2dd
fix: set transaction currency on payment entry gl entries ( #57613 )
2026-08-05 00:39:37 +05:30
Diptanil Saha
a19fd5d6b5
Merge pull request #57799 from frappe/mergify/bp/version-15-hotfix/pr-57798
...
fix(payment reconciliation): correct supplier gain/loss posting (backport #57734 )
2026-08-05 00:34:25 +05:30
Shllokkk
25bd2bd4e7
test: child warehouse account override excluded in stock vs account value comparison
2026-08-05 00:31:29 +05:30
Sudharsanan11
387f2b5d01
test(payment reconciliation): cover supplier exchange gain posting
...
(cherry picked from commit 61154e22ed )
2026-08-04 18:44:12 +00:00
diptanilsaha
78cd25de04
fix(payment reconciliation): correct supplier gain/loss posting
...
(cherry picked from commit dc907add40 )
2026-08-04 18:44:11 +00:00
rohitwaghchaure
431dc2e5f1
fix: incorrect batch-wise valuation rate for entries with same posting datetime ( #57794 )
...
* fix: incorrect batch-wise valuation rate for entries with same posting datetime
The tie-breaker in get_batch_no_ledgers compared the bundle's creation
against the SLE's creation. These are different timelines - a bundle can
be created (drafted) much before its SLE (created at submission). For
entries sharing a posting datetime (backdated / amended vouchers), this
mis-ordered the entries against the ledger's replay order (SLE creation),
causing double counting or omission of batch qty / value and runaway
outgoing rates that no repost could heal.
Now the tie is broken using the creation of the bundle's own SLE (same
timeline on both sides). When the valuation runs through the bundle
before its SLE exists, the entry is by definition last in its timestamp
group, so all same-timestamp entries already in the ledger precede it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
* test: batch-wise valuation ordering for same posting datetime entries
Covers both tie-breaking branches of get_batch_no_ledgers:
- submission (pre-insertion) branch: same-timestamp inward at a different
rate plus a multi-row outward voucher (same item and warehouse), at
submission and after a backdated repost
- existing-SLE branch: a bundle created after its sibling's SLE, the
ordering must follow the SLE creation and not the bundle creation
Both tests fail with the previous parent.creation < sle.creation
tie-breaker and pass with the fix.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-08-04 22:53:56 +05:30
Mihir Kandoi
3aed38423e
Merge pull request #57787 from frappe/mergify/bp/version-15-hotfix/pr-57757
...
fix(opportunity): add validation for positive item quantities (backport #57757 )
2026-08-04 17:26:58 +05:30
Mihir Kandoi
33446f4f4a
Merge pull request #57784 from frappe/mergify/bp/version-15-hotfix/pr-57772
...
fix(accounts): skip party dashboard without invoice permission (backport #57772 )
2026-08-04 16:59:39 +05:30
R-Jayaraman
7ef039f6ed
chore: use flt() in qty check
...
(cherry picked from commit 69de8f2d62 )
2026-08-04 11:23:36 +00:00
R-Jayaraman
f47346aa90
fix(opportunity): add validation for positive item quantities
...
(cherry picked from commit c47cc37441 )
2026-08-04 11:23:35 +00:00
Sudharsanan11
9d417da3d8
fix(accounts): skip party dashboard without invoice permission
...
(cherry picked from commit ed78dd37be )
2026-08-04 11:04:04 +00:00
mergify[bot]
928f984198
fix: escape data in multiple templates (backport #57742 ) ( #57769 )
...
Co-authored-by: diptanilsaha <diptanil@frappe.io >
2026-08-04 09:56:46 +00:00
Deepesh Garg
78a43833a0
Merge pull request #57759 from frappe/mergify/bp/version-15-hotfix/pr-57296
...
fix: Ignore permission while deleting user permission (#57296 )
2026-08-03 19:06:58 +05:30
Deepesh Garg
faa7c466b1
fix: Ignore permission while deleting user permission
...
(cherry picked from commit 3b10ff7df7 )
2026-08-03 13:02:49 +00:00
mergify[bot]
ee4e296ce6
fix(accounts): fetch deferred invoice docs on non-empty sales_docs or purchase_docs in repost accounting ledger (backport #57753 ) ( #57756 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-08-03 12:33:56 +00:00
Mihir Kandoi
0b08129b40
Merge pull request #57749 from frappe/mergify/bp/version-15-hotfix/pr-57747
...
fix: disabled item attribute blocks unrelated edits to existing variants (backport #57747 )
2026-08-03 17:03:26 +05:30
Mihir Kandoi
c488de8f12
test(stock): isolate the disabled attribute fixtures
...
The test disabled the shared `Test Size` Item Attribute. On version-15
`FrappeTestCase` rolls back once per class instead of once per test, so the
flag stayed visible for the rest of `TestItem` and broke the seven tests that
build a variant from that attribute.
Build a dedicated attribute and template instead. Nothing the test writes is
reachable from another test, on either branch, so no cleanup is needed.
2026-08-03 16:43:45 +05:30
Mihir Kandoi
005b626482
test(stock): cover editing a variant whose attribute is disabled
...
Assert that a variant saves after its attribute is disabled when the edit
leaves the attribute rows alone, and that changing an attribute value still
throws.
(cherry picked from commit 8d5326196e )
2026-08-03 10:47:25 +00:00
Mihir Kandoi
2993747636
fix(stock): validate only the variant attributes that changed
...
Disabling an Item Attribute writes `disabled = 1` into every Item Variant
Attribute row, including the rows on the template. `validate_variant` runs
on every save and walks the whole attribute table, so any later save of an
existing variant re-checked its untouched rows against the now-disabled
template row and threw. `update_variants` hit the same wall, which made a
single template save fail once an attribute was disabled.
The flag exists to keep an attribute out of new variants, not to freeze the
variants that already use it. item.js only reads it to drop the attribute
from the variant creation dialog.
Skip rows that are unchanged since the last save. New and edited rows are
still checked, so a disabled attribute cannot be added to an existing
variant, and the same guard covers the sibling checks for attributes and
values that the template no longer offers.
(cherry picked from commit 25cd793617 )
2026-08-03 10:47:24 +00:00
Mihir Kandoi
a9a3c20f3f
Merge pull request #57729 from frappe/mergify/bp/version-15-hotfix/pr-57647
...
fix(sales): reject sales returns where every item has zero quantity (backport #57647 )
2026-08-03 13:51:58 +05:30
Mihir Kandoi
aa20df88f5
Merge remote-tracking branch 'origin/version-15-hotfix' into bp15-57647
...
# Conflicts:
# erpnext/controllers/sales_and_purchase_return.py
# erpnext/controllers/tests/test_sales_and_purchase_return.py
2026-08-03 13:30:10 +05:30
Mihir Kandoi
5ec87ae06c
chore: resolve conflict
2026-08-03 13:29:37 +05:30
Mihir Kandoi
b4e8aef2f8
Merge pull request #57721 from frappe/mergify/bp/version-15-hotfix/pr-57645
...
fix(purchase): reject purchase returns where every item has zero quan… (backport #57645 )
2026-08-03 13:05:22 +05:30
R-Jayaraman
5152281618
test(sales): add coverage for zero-qty return rejection
...
Greptile flagged that the sales-side zero-qty-return fix had no dedicated
test proving the behavior - the existing suite happened to pass, but
nothing specifically asserted that an all-zero return is rejected while
a normal negative-qty return still succeeds.
Adds two tests covering the doctypes that rely entirely on this check
(no other guard covers them for a non-stock-effect return):
- Delivery Note return with qty 0 -> rejected
- Sales Invoice return with qty 0 (no update_stock) -> rejected
POS Invoice is not covered separately here since it always runs with
update_stock=1, which is already guarded by the pre-existing
validate_zero_qty_for_return_invoices_with_stock check regardless of
this fix.
(cherry picked from commit 732c884633 )
# Conflicts:
# erpnext/controllers/tests/test_sales_and_purchase_return.py
2026-08-03 07:34:25 +00:00
R-Jayaraman
48beb2ee23
fix(sales): reject sales returns where every item has zero quantity
...
validate_returned_items() set items_returned=True whenever a row matched
a valid item from the original document, even if its qty was 0. This let
a Sales Invoice, Delivery Note, or POS Invoice return be submitted with
every line at qty=0 - a no-op document with no stock or financial effect
that still consumed a document number and linked back to the original
transaction.
Scoped to the Sales side only: items_returned now flips to True for
Sales Invoice/Delivery Note/POS Invoice only when qty (or received_qty)
is actually negative, so an all-zero sales return correctly hits the
existing "At least one item should be entered with negative quantity"
check. Purchase Invoice, Purchase Receipt, and Subcontracting Receipt
are unchanged.
(cherry picked from commit a3e9d13da3 )
# Conflicts:
# erpnext/controllers/sales_and_purchase_return.py
2026-08-03 07:33:47 +00:00
Mihir Kandoi
198468aa5a
test(purchase): fit the backported test to version-15-hotfix
...
Drop test_sales_return_validates_against_original: it came in with the new
file rather than with the change being backported, covers a raw-SQL to
query-builder conversion that only exists on develop, and imports
erpnext.stock.doctype.delivery_note.mapper, a module this branch does not
have. Base the remaining tests on FrappeTestCase, since ERPNextTestSuite
does not exist here either.
2026-08-03 12:42:14 +05:30
R-Jayaraman
070a7cfb91
test(purchase): add coverage for zero-qty return rejection
...
(cherry picked from commit cde2963da1 )
# Conflicts:
# erpnext/controllers/tests/test_sales_and_purchase_return.py
2026-08-03 06:16:38 +00:00
R-Jayaraman
8676add875
fix(purchase): reject purchase returns where every item has zero quantity
...
validate_returned_items() set items_returned=True whenever a row matched
a valid item from the original document, even if its qty was 0. This let
a Purchase Invoice, Purchase Receipt, or Subcontracting Receipt return be
submitted with every line at qty=0 - a no-op document with no stock or
financial effect that still consumed a document number and linked back
to the original transaction.
Scoped to the Purchase side only: items_returned now flips to True for
Purchase Invoice/Purchase Receipt/Subcontracting Receipt only when qty
(or received_qty) is actually negative, so an all-zero purchase return
correctly hits the existing "At least one item should be entered with
negative quantity" check. Sales Invoice, Delivery Note, and POS Invoice
are unchanged.
Also applies a corresponding check to the item_name-only fallback branch
(for rows without an item_code - Item Code is not mandatory on Purchase
Invoice Item), which previously bypassed this fix entirely and still set
items_returned=True unconditionally regardless of quantity. For that
branch specifically, only qty is checked (not received_qty): with no
linked Item there's no accepted/rejected split, so received_qty carries
no independent meaning and a qty=0 row must be rejected regardless of
its value.
(cherry picked from commit b63066ed44 )
2026-08-03 06:16:37 +00:00
Mihir Kandoi
0f6c6d4df7
Merge pull request #57700 from frappe/mergify/bp/version-15-hotfix/pr-57699
...
fix: prevent duplicate shipping charges without cost center (backport #57699 )
2026-08-02 12:45:29 +05:30
Mihir Kandoi
70da05edb7
fix: resolve version-15 backport conflict
2026-08-02 12:26:50 +05:30
Mihir Kandoi
724eb1aac4
Merge pull request #57696 from frappe/mergify/bp/version-15-hotfix/pr-57674
...
fix: preserve UOM conversion factor precision in transactions (backport #57674 )
2026-08-02 12:23:29 +05:30
Mihir Kandoi
42a2674341
chore: remove shipping rule comments
...
(cherry picked from commit 106ecd7120 )
2026-08-02 06:48:47 +00:00
Mihir Kandoi
a6dff3fc47
fix: prevent duplicate shipping charges without cost center
...
(cherry picked from commit a4134af30b )
# Conflicts:
# erpnext/selling/doctype/sales_order/test_sales_order.py
2026-08-02 06:48:47 +00:00
Mihir Kandoi
00df8652e3
fix: resolve version 15 backport conflict
2026-08-02 12:03:47 +05:30
Mihir Kandoi
5a5e20e167
test: fractional conversion factor survives Material Request to Purchase Order
...
Fails before the fix with 0.45 != 0.453592292 on a site with Float
Precision 2, and 0.454 on the default of 3.
(cherry picked from commit f4d70c2d60 )
2026-08-02 06:25:36 +00:00
Mihir Kandoi
4373e295de
fix: preserve UOM conversion factor precision in transactions
...
calculate_item_values rounds every Float field on an item row to the
site's Float Precision (3 by default), and conversion_factor was one of
them. The factor is a ratio, not a rate: UOM Conversion Factor.value is
stored at precision 9, and Material Request keeps the full value because
it has no currency field and so never runs the calculation.
Mapping a Material Request to a Purchase Order therefore truncated the
factor - 0.453592292 for Pound -> Kg became 0.454 - and stock_qty, which
is recomputed as qty * conversion_factor, drifted from the quantity that
was requested, leaving the Material Request unable to close.
Exclude conversion_factor from the rounded fields on the server and on
the client. Factors below the site precision would otherwise round to
zero outright.
(cherry picked from commit 269cc6ee3b )
# Conflicts:
# erpnext/controllers/taxes_and_totals.py
2026-08-02 06:25:36 +00:00
Frappe PR Bot
7098602dcc
chore(release): Bumped to Version 15.118.3
...
## [15.118.3](https://github.com/frappe/erpnext/compare/v15.118.2...v15.118.3 ) (2026-07-30)
### Bug Fixes
* **italy:** skip e-invoicing for opening invoices ([4f07e25 ](4f07e2503b ))
* **stock:** keep manufactured item rate at zero when inputs are free (backport [#57334 ](https://github.com/frappe/erpnext/issues/57334 )) ([#57512 ](https://github.com/frappe/erpnext/issues/57512 )) ([ade3f79 ](ade3f791a4 ))
2026-07-30 05:19:18 +00:00
Diptanil Saha
32b56ac505
Merge pull request #57611 from frappe/version-15-hotfix
...
chore: release v15
2026-07-30 10:47:30 +05:30
mergify[bot]
9f1bdba9a7
refactor(accounts): repost accounting ledger (backport #56442 ) ( #57598 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-07-30 10:15:40 +05:30
Frappe PR Bot
c630226846
chore(release): Bumped to Version 15.118.2
...
## [15.118.2](https://github.com/frappe/erpnext/compare/v15.118.1...v15.118.2 ) (2026-07-28)
### Bug Fixes
* add is_active filter ([bb1320f ](bb1320f8df ))
* add permission check for `get_item_details` (backport [#57515 ](https://github.com/frappe/erpnext/issues/57515 )) ([#57550 ](https://github.com/frappe/erpnext/issues/57550 )) ([41effcf ](41effcf754 ))
* check if item is variant when creating WO from MR ([745513d ](745513d0c2 ))
* **crm:** align Opportunity status checks with Quotation statuses (backport [#57489 ](https://github.com/frappe/erpnext/issues/57489 )) ([#57490 ](https://github.com/frappe/erpnext/issues/57490 )) ([53d9d1c ](53d9d1c50d ))
* **crm:** clarify the reason why an opportunity cannot be declared as lost (backport [#57495 ](https://github.com/frappe/erpnext/issues/57495 )) ([#57497 ](https://github.com/frappe/erpnext/issues/57497 )) ([98a0fd8 ](98a0fd814e ))
* detect the currency column by fieldtype in trends total row ([8cceb6a ](8cceb6af10 ))
* enable the 'Include Zero Stock Items' filter by default to show zero-stock items in the Stock Balance report ([#57458 ](https://github.com/frappe/erpnext/issues/57458 )) ([4e8f5de ](4e8f5de5cb ))
* guard against missing is_your_company_address custom field on address ([6fa522d ](6fa522d031 ))
* Incorrect creation time at the time cancelling an entry causing an issue especially same posting datetime (backport [#57380 ](https://github.com/frappe/erpnext/issues/57380 )) ([#57396 ](https://github.com/frappe/erpnext/issues/57396 )) ([ae0cd16 ](ae0cd164f3 ))
* **manufacturing:** fall back to UOM Conversion Factor in Production Plan (backport [#57553 ](https://github.com/frappe/erpnext/issues/57553 )) ([#57555 ](https://github.com/frappe/erpnext/issues/57555 )) ([12b4c13 ](12b4c134ca ))
* **manufacturing:** update cost of BOMs created via BOM Creator ([25e5b10 ](25e5b107be ))
* map pick list customer to delivery note when no sales order ([0dc5894 ](0dc5894499 )), closes [#57412 ](https://github.com/frappe/erpnext/issues/57412 )
* migrate stored AR/AP ageing filter to renamed field ([e2319c3 ](e2319c3ffe ))
* pool batch slot values on every run, not only when negative ([f38b3b4 ](f38b3b422d ))
* **ppcv:** replace incorrect usage of `frappe.in_test` with `frappe.flags.in_test` in version-15 ([#57579 ](https://github.com/frappe/erpnext/issues/57579 )) ([abc53b0 ](abc53b0d39 ))
* **quotation:** carry forward communications from opportunity (backport [#57507 ](https://github.com/frappe/erpnext/issues/57507 )) ([#57508 ](https://github.com/frappe/erpnext/issues/57508 )) ([ceb6778 ](ceb677844f ))
* rebalance batch slot values at the pooled rate when driven negative ([4808202 ](48082020e8 ))
* recalculate operating cost on hour rate change in routing ([4fe91bd ](4fe91bd8b8 ))
* rename misleading filter labels in AR/AP reports ([60b4e60 ](60b4e6053d ))
* resolve backport conflict in stock ageing test imports ([a2ace9d ](a2ace9d394 ))
* respect child warehouse account override in Stock and Account Value Comparison ([#57552 ](https://github.com/frappe/erpnext/issues/57552 )) ([20b6dd3 ](20b6dd3d0f ))
* respect selected BOM when creating work order for variant item ([#57359 ](https://github.com/frappe/erpnext/issues/57359 )) ([c5235af ](c5235af6bf ))
* respect user permissions in party dashboard company list ([348555b ](348555b127 )), closes [frappe/erpnext#57428 ](https://github.com/frappe/erpnext/issues/57428 )
* restore Save button on reverse journal entry ([d937385 ](d9373850ad ))
* seed cancelled voucher replay from before its posting datetime ([1ff297e ](1ff297e9da ))
* **stock:** narrow legacy serial ledger lookup by item (backport [#57499 ](https://github.com/frappe/erpnext/issues/57499 )) ([#57505 ](https://github.com/frappe/erpnext/issues/57505 )) ([c70cf8e ](c70cf8e554 ))
* stop storing "{supplier_name}" / "{customer_name}" as the document title ([d96999d ](d96999de7f ))
* **subcontracting:** release raw-material reservation when closing a subcontracting order ([d970627 ](d9706271ff ))
* **tnc:** `get_terms_and_conditions` render_template with `safe_exec` (backport [#56944 ](https://github.com/frappe/erpnext/issues/56944 )) (backport [#56977 ](https://github.com/frappe/erpnext/issues/56977 )) ([#57106 ](https://github.com/frappe/erpnext/issues/57106 )) ([1d60ab4 ](1d60ab449c ))
* typeerror in get_batches_by_oldest for mixed batch expiry ([56bd024 ](56bd024f39 ))
* update operating cost when propagating workstation hour rate to routing ([#57504 ](https://github.com/frappe/erpnext/issues/57504 )) ([8f68b7e ](8f68b7ed20 ))
* use company currency instead of global default in report (backport [#56561 ](https://github.com/frappe/erpnext/issues/56561 )) ([0ad0d77 ](0ad0d7733b ))
2026-07-28 23:31:43 +00:00
Diptanil Saha
d5b49cd66e
Merge pull request #57549 from frappe/version-15-hotfix
...
chore: release v15
2026-07-29 04:59:58 +05:30
Frappe PR Bot
b9c9b76f5b
chore(release): Bumped to Version 15.118.1
...
## [15.118.1](https://github.com/frappe/erpnext/compare/v15.118.0...v15.118.1 ) (2026-07-23)
### Bug Fixes
* seed cancelled voucher replay from before its posting datetime ([3d41984 ](3d4198494b ))
2026-07-23 08:44:24 +00:00
Mihir Kandoi
da0e3b5882
Merge pull request #57395 from frappe/mergify/bp/version-15/pr-57347
...
fix: seed cancelled voucher replay from before its posting datetime (v15) (backport #57347 )
2026-07-23 14:12:42 +05:30
Mihir Kandoi
3d4198494b
fix: seed cancelled voucher replay from before its posting datetime
...
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 eca71dce54 .
(cherry picked from commit 1ff297e9da )
2026-07-23 08:22:04 +00:00
Frappe PR Bot
e6b4799b1a
chore(release): Bumped to Version 15.118.0
...
# [15.118.0](https://github.com/frappe/erpnext/compare/v15.117.0...v15.118.0 ) (2026-07-22)
### Bug Fixes
* add fetch from in production plan material request child table ([6ffd759 ](6ffd759968 ))
* added missing validations for `Dunning Type` (backport [#57224 ](https://github.com/frappe/erpnext/issues/57224 )) ([#57226 ](https://github.com/frappe/erpnext/issues/57226 )) ([fd01171 ](fd01171df5 ))
* apply default accounting dimensions reliably on new documents ([88abe11 ](88abe119c3 ))
* apply user permissions via build_match_conditions ([202f522 ](202f52271c ))
* block changing Stock account type when stock ledger entries exist (backport [#57283 ](https://github.com/frappe/erpnext/issues/57283 )) ([#57284 ](https://github.com/frappe/erpnext/issues/57284 )) ([2cd531d ](2cd531d099 ))
* consider min order qty in the purchase/transfer flow of production plan (backport [#57204 ](https://github.com/frappe/erpnext/issues/57204 )) ([#57209 ](https://github.com/frappe/erpnext/issues/57209 )) ([77ec644 ](77ec6447c3 ))
* correct typo in allow_negative_stock parameter ([f24e09c ](f24e09cc97 ))
* dont overwrite rate with 0 if not found ([74e9718 ](74e9718871 ))
* pass ctx keys get_price_list_rate_for reads, skip rate update on insert ([302cbbe ](302cbbe5d8 ))
* **payments:** ensure `payments` app installed on the site in `payment_app_import_guard` (backport [#57342 ](https://github.com/frappe/erpnext/issues/57342 )) ([#57343 ](https://github.com/frappe/erpnext/issues/57343 )) ([3efddfd ](3efddfd270 ))
* permission issue (backport [#57112 ](https://github.com/frappe/erpnext/issues/57112 )) ([#57142 ](https://github.com/frappe/erpnext/issues/57142 )) ([6b23b00 ](6b23b007a4 ))
* project % complete field allowing modification when manual method (backport [#57274 ](https://github.com/frappe/erpnext/issues/57274 )) ([#57275 ](https://github.com/frappe/erpnext/issues/57275 )) ([21e5620 ](21e5620e92 ))
* **project:** improved access control for project users (backport [#56675 ](https://github.com/frappe/erpnext/issues/56675 )) ([#57180 ](https://github.com/frappe/erpnext/issues/57180 )) ([ff6c8bb ](ff6c8bbb44 ))
* read serial and batch flags from Item in Stock Balance's SLE query ([e7f0461 ](e7f0461b57 ))
* rescale batch FIFO slot values on stock reconciliation ([72b3210 ](72b3210cbb ))
* rescale stock ageing FIFO slot values on stock reconciliation ([d51f907 ](d51f9076b5 ))
* resolve float precision before streaming stock ledger entries ([b9ff5be ](b9ff5be43e ))
* resolve merge conflicts ([81e865f ](81e865f6c7 ))
* restrict jinja globals in process statement of accounts templates (backport [#56458 ](https://github.com/frappe/erpnext/issues/56458 )) ([#57231 ](https://github.com/frappe/erpnext/issues/57231 )) ([88443e4 ](88443e4a97 ))
* revalue batch reco slots only when the entry covers the full batch ([2673029 ](2673029bd4 ))
* set correct currency in supplier quotation net rate field ([30ab2db ](30ab2dba6e ))
* strip account number when building account name in COA importer ([314dd16 ](314dd16aa3 ))
* sync process loss percentage when fg qty changes ([f0e24e2 ](f0e24e2f53 ))
* use account currency in Bank Reconciliation Statement print ([d6f797d ](d6f797d077 ))
* use system float precision for batch qty comparison ([1679bde ](1679bdecdc ))
* validate buying price list on material request and update item rates on change ([96dc408 ](96dc408484 ))
### Features
* add on hold status to project ([5e2e154 ](5e2e15436d ))
* **stock:** automatically link portal users to their associated contact profiles for customers and suppliers ([4f9ea98 ](4f9ea989c4 ))
* **stock:** expose all Bin qty fields in Stock Summary and Stock Projected Qty ([90009a4 ](90009a4687 ))
2026-07-22 00:17:40 +00:00
Diptanil Saha
49eb2366cd
Merge pull request #57323 from frappe/version-15-hotfix
...
chore: release v15
2026-07-22 05:45:46 +05:30
Frappe PR Bot
fb2a4e5f98
chore(release): Bumped to Version 15.117.0
...
# [15.117.0](https://github.com/frappe/erpnext/compare/v15.116.0...v15.117.0 ) (2026-07-15)
### Bug Fixes
* allow barcode scan to add and increment items in pick list ([bb5be10 ](bb5be10372 ))
* **asset:** allow asset repair creation for fully depreciated assets (backport [#55276 ](https://github.com/frappe/erpnext/issues/55276 )) ([e4d2a96 ](e4d2a960d2 ))
* **journal-entry:** fetch outstanding on foreign currency ([ace51fc ](ace51fccfa ))
* **manufacturing:** preserve job card transferred quantity ([fc4ac7a ](fc4ac7a441 ))
* **stock:** fix sqlparse token limit in get_bundle_wise_serial_nos ([cc45743 ](cc457433fe ))
* **stock:** show qty (company) and qty (warehouse) in sales transactions ([8086542 ](8086542885 ))
### Features
* faster (synced) financial statements using duckdb (backport [#56304 ](https://github.com/frappe/erpnext/issues/56304 )) ([#57093 ](https://github.com/frappe/erpnext/issues/57093 )) ([a6a887f ](a6a887f833 ))
2026-07-15 02:28:29 +00:00
ruthra kumar
0ce7917648
Merge pull request #57160 from frappe/version-15-hotfix
...
chore: release v15
2026-07-15 06:25:15 +05:30
Frappe PR Bot
41038979ec
chore(release): Bumped to Version 15.116.0
...
# [15.116.0](https://github.com/frappe/erpnext/compare/v15.115.0...v15.116.0 ) (2026-07-13)
### Bug Fixes
* **`frappe_crm_api`:** handle failure for `after_app_install` and `after_app_uninstall` ([983ec56 ](983ec5660c ))
* **accounts:** clear clearance date when amending reconciled voucher (backport [#55947 ](https://github.com/frappe/erpnext/issues/55947 )) ([5f14f2c ](5f14f2ccd6 )), closes [#55972 ](https://github.com/frappe/erpnext/issues/55972 )
* **accounts:** retain invoice table on opening invoice creation error (backport [#56353 ](https://github.com/frappe/erpnext/issues/56353 )) ([#57057 ](https://github.com/frappe/erpnext/issues/57057 )) ([cfc546c](cfc546cf3f ))
* added permission checks on various whitelisted functions (backport [#56745 ](https://github.com/frappe/erpnext/issues/56745 )) ([#56945 ](https://github.com/frappe/erpnext/issues/56945 )) ([55e0d10 ](55e0d106c9 ))
* address review comments ([3c47adb ](3c47adb021 ))
* block serialized to non-serialized item change when SABB exists (backport [#56773 ](https://github.com/frappe/erpnext/issues/56773 )) ([#56774 ](https://github.com/frappe/erpnext/issues/56774 )) ([44a7013 ](44a7013ab4 ))
* **company:** ignore user permissions for link fields having link to `Account` and `Cost Center` (backport [#56748 ](https://github.com/frappe/erpnext/issues/56748 )) ([#56794 ](https://github.com/frappe/erpnext/issues/56794 )) ([5666fd1 ](5666fd1334 ))
* **crm_settings:** skip allowed users check when frappe crm is installed locally ([95b3bd4 ](95b3bd4e1d ))
* disallow editing on reversal journals ([ac2e69f ](ac2e69fbfd ))
* display outstanding amount using company default currency (backport [#56785 ](https://github.com/frappe/erpnext/issues/56785 )) ([#57008 ](https://github.com/frappe/erpnext/issues/57008 )) ([8688f1f ](8688f1f51a ))
* don't attempt to create SABB for non-serialized / non-batch items (backport [#56627 ](https://github.com/frappe/erpnext/issues/56627 )) ([#56802 ](https://github.com/frappe/erpnext/issues/56802 )) ([b0446b6 ](b0446b6a09 ))
* don't treat batch slot at FIFO queue head as qty slot ([a9330e8 ](a9330e8900 ))
* fetch asset category expense account on purchase receipt ([b7e0331 ](b7e0331d56 ))
* fetch payment entry reference amounts from invoice (backport [#56928 ](https://github.com/frappe/erpnext/issues/56928 )) ([#57041 ](https://github.com/frappe/erpnext/issues/57041 )) ([0f6b2b6 ](0f6b2b68fa ))
* FIFO queue checks and incorrect entries filter in stock ledger reports ([19fc8b8 ](19fc8b8e6f )), closes [#43619 ](https://github.com/frappe/erpnext/issues/43619 )
* for purchases do voucher based reposting (backport [#56601 ](https://github.com/frappe/erpnext/issues/56601 )) ([#56607 ](https://github.com/frappe/erpnext/issues/56607 )) ([6b022a5 ](6b022a5a7e ))
* **inactive_customers:** add allowlist for doctype filter and migrate to qb ([29dd6e6 ](29dd6e6681 ))
* incorrect import path for FrappeTestCase ([cecfcf8 ](cecfcf82e0 ))
* **journal entry:** validate opening entry against pcv on save ([2ed7c84 ](2ed7c84d0a ))
* make represents company field in purchase invoice ignore user permissions ([b7f2769 ](b7f276989d ))
* make trend report based-on and group-by column labels translatable ([d2d5fae ](d2d5fae033 ))
* **manufacturing:** update work order status on partial pick-list transfer (backport [#56800 ](https://github.com/frappe/erpnext/issues/56800 )) ([afa7288 ](afa72884bb )), closes [56836/#57001](https://github.com/frappe/erpnext/issues/57001 )
* map stock_qty in apply_price_list_on_item (backport [#56869 ](https://github.com/frappe/erpnext/issues/56869 )) ([#57051 ](https://github.com/frappe/erpnext/issues/57051 )) ([3e2a734 ](3e2a734414 ))
* partial delivery note against pick list ([#56985 ](https://github.com/frappe/erpnext/issues/56985 )) ([53af4d5 ](53af4d53ef ))
* **patch:** moved create_company_custom_fields from `pre_model_sync` to `post_model_sync` ([#56962 ](https://github.com/frappe/erpnext/issues/56962 )) ([d0f2940 ](d0f29405d0 ))
* precision issue causing reconciliation error ([#54043 ](https://github.com/frappe/erpnext/issues/54043 )) ([d62831d ](d62831d885 ))
* prevent repeatable read related concurrency errors ([1ee8904 ](1ee8904a94 ))
* race condition and repeatable read in process pcv ([ae43f47 ](ae43f47c39 ))
* remove company default on cost center in stock entry detail ([b170913 ](b170913880 ))
* remove incorrect Payable account_type from Customer Deposits in Philippines CoA (backport [#57018 ](https://github.com/frappe/erpnext/issues/57018 )) ([#57060 ](https://github.com/frappe/erpnext/issues/57060 )) ([bd62699 ](bd6269918f ))
* rename variant item_code/item_name when attribute abbreviation changes ([99bdef6 ](99bdef6baf ))
* replay immutable SLE qty for serial/batch bundle valuation (backport [#56814 ](https://github.com/frappe/erpnext/issues/56814 )) ([#56834 ](https://github.com/frappe/erpnext/issues/56834 )) ([1cf94f5 ](1cf94f5501 ))
* resolve conflicts ([da623eb ](da623eb124 ))
* **selling:** update sales order per billed on credit note submission ([63e85c6 ](63e85c6551 ))
* set customer group in inactive customers report test setup ([ede2a68 ](ede2a68afd ))
* show only template items in Variant Of filter ([fde7cd5 ](fde7cd5345 ))
* **stock:** backfill transferred qty for existing pick lists ([cd61243 ](cd612434a4 ))
* **stock:** correct stock ageing value for moving average and lifo items (backport [#56693 ](https://github.com/frappe/erpnext/issues/56693 )) ([#57016 ](https://github.com/frappe/erpnext/issues/57016 )) ([9d654b7 ](9d654b7890 ))
* **stock:** pick list serial batch posting date ([#56957 ](https://github.com/frappe/erpnext/issues/56957 )) ([#57014 ](https://github.com/frappe/erpnext/issues/57014 )) ([4091188 ](4091188908 )), closes [#56951 ](https://github.com/frappe/erpnext/issues/56951 )
* **stock:** set stock received but not billed account for purchase ([#55149 ](https://github.com/frappe/erpnext/issues/55149 )) ([38b7042 ](38b7042481 ))
* update BOM operations when routing is changed ([de0c75b ](de0c75bcba ))
* update events order by date asc (backport [#56963 ](https://github.com/frappe/erpnext/issues/56963 )) ([#57055 ](https://github.com/frappe/erpnext/issues/57055 )) ([1cb4307 ](1cb4307578 ))
* update modified timestamp in item.json ([902a3c5 ](902a3c5c55 ))
* use change_settings decorator matching version-15-hotfix test utils ([5cedc50 ](5cedc50c55 ))
* use correct import ([db4136b ](db4136b258 ))
* use live source warehouse valuation for internal transfer purchse receipts ([#56812 ](https://github.com/frappe/erpnext/issues/56812 )) ([ece1c98 ](ece1c9872f ))
* validate planned end date is not before planned start date in work order ([de6a157 ](de6a157773 ))
* validate reverse GL entries on current date under immutable ledger (backport [#56709 ](https://github.com/frappe/erpnext/issues/56709 )) ([#56751 ](https://github.com/frappe/erpnext/issues/56751 )) ([71a2d6e ](71a2d6e43d ))
* validate template and its variant in the same Pricing Rule ([3df52c7 ](3df52c7fc6 ))
### Features
* **crm_settings:** auto-update crm sync settings on frappe crm install and uninstall ([0a5daee ](0a5daeed57 ))
* **opening invoice creation tool:** add project to opening invoice child row (backport [#54662 ](https://github.com/frappe/erpnext/issues/54662 )) ([#56400 ](https://github.com/frappe/erpnext/issues/56400 )) ([808109a ](808109abc0 ))
* **sla:** filter service level agreement link by document type (backport [#56954 ](https://github.com/frappe/erpnext/issues/56954 )) ([#56955 ](https://github.com/frappe/erpnext/issues/56955 )) ([5166950 ](51669501ab ))
* **stock:** support partial transfer from pick list ([02168b7 ](02168b7b3d ))
### Performance Improvements
* avoid per-row Warehouse doc fetches in auto reorder job ([c10b86d ](c10b86d538 ))
* batch bin lookups in delivery note stock update ([989a6b5 ](989a6b507d ))
2026-07-13 07:37:49 +00:00
Diptanil Saha
88b6779062
Merge pull request #56930 from frappe/version-15-hotfix
...
chore: release v15
2026-07-13 13:04:19 +05:30
Frappe PR Bot
b5f784612d
chore(release): Bumped to Version 15.115.0
...
# [15.115.0](https://github.com/frappe/erpnext/compare/v15.114.0...v15.115.0 ) (2026-07-01)
### Bug Fixes
* add permission checks in whitelisted functions (backport [#53103 ](https://github.com/frappe/erpnext/issues/53103 )) ([#56668 ](https://github.com/frappe/erpnext/issues/56668 )) ([3455877 ](345587754f ))
* allow rename for Quality Inspection Parameter ([9e6edea ](9e6edea818 ))
* carry item-level project to Purchase Receipt GL entries (backport [#56568 ](https://github.com/frappe/erpnext/issues/56568 )) ([#56618 ](https://github.com/frappe/erpnext/issues/56618 )) ([83e8d1e ](83e8d1eb2f ))
* **company:** using `String.prototype.bold` method instead of `frappe.utils.bold` on company deletion prompt ([#56441 ](https://github.com/frappe/erpnext/issues/56441 )) ([414b366 ](414b3665c1 ))
* **controllers:** fix supplier-RFQ portal list query (wrong column + Postgres DISTINCT) ([9125ab6 ](9125ab6c77 ))
* **crm:** using `get_list` instead of `get_all` in `get_opportunities` (backport [#56463 ](https://github.com/frappe/erpnext/issues/56463 )) ([#56465 ](https://github.com/frappe/erpnext/issues/56465 )) ([28e4bca ](28e4bca4f2 ))
* do not allow closing the accounting period for future dates (backport [#56551 ](https://github.com/frappe/erpnext/issues/56551 )) ([#56576 ](https://github.com/frappe/erpnext/issues/56576 )) ([54fcd09 ](54fcd09995 ))
* extract stock ageing data helper in stock balance (backport [#55774 ](https://github.com/frappe/erpnext/issues/55774 )) ([8abc278 ](8abc27863a )), closes [#55776 ](https://github.com/frappe/erpnext/issues/55776 )
* gross profit calculation with rate adjustment entries ([17733a5 ](17733a5641 ))
* handle missing serial and batch bundle in print format ([9adfab1 ](9adfab19dc ))
* ignored posting time 00:00:00 in RIV (backport [#56571 ](https://github.com/frappe/erpnext/issues/56571 )) ([#56572 ](https://github.com/frappe/erpnext/issues/56572 )) ([5ed946b ](5ed946b3b9 ))
* **lead:** added missing read permission check on `get_lead_details` (backport [#56272 ](https://github.com/frappe/erpnext/issues/56272 )) ([#56273 ](https://github.com/frappe/erpnext/issues/56273 )) ([afddf70 ](afddf70905 ))
* negative stock issue ([#56616 ](https://github.com/frappe/erpnext/issues/56616 )) ([ab98d19 ](ab98d19f26 ))
* precision issue causing COGS in inter transfer PR (backport [#56420 ](https://github.com/frappe/erpnext/issues/56420 )) ([#56424 ](https://github.com/frappe/erpnext/issues/56424 )) ([db8a26a ](db8a26a3af ))
* remove dead bundle helper call from purchase receipt print format ([0f9429f ](0f9429fd3d ))
* remove frappe.utils from jinja context in process statement of accounts ([b176fb2 ](b176fb292b ))
* reserve projected stock for production plan based on BOM qty ([d3df0bf ](d3df0bf387 ))
* set mr status to received when per_received is 100 even if per_ordered < 100 ([53bdcce ](53bdccee5f ))
* skip qty over-allowance check for non-stock items only ([bba7fe9 ](bba7fe9831 ))
* **stock:** value batch/serial return from ledger when original receipt has no bundle (backport [#56631 ](https://github.com/frappe/erpnext/issues/56631 )) ([#56645 ](https://github.com/frappe/erpnext/issues/56645 )) ([3479d65 ](3479d65bd4 ))
* sync Stock Reconciliation difference amount with GL after reposting (backport [#56574 ](https://github.com/frappe/erpnext/issues/56574 )) ([#56584 ](https://github.com/frappe/erpnext/issues/56584 )) ([5625635 ](562563553c ))
* update qty in future SLEs when cancelling documents (backport [#56638 ](https://github.com/frappe/erpnext/issues/56638 )) ([#56644 ](https://github.com/frappe/erpnext/issues/56644 )) ([2576452 ](25764520c2 ))
* update_qty_in_future_sle skips SLEs with same posting datetime ([#56615 ](https://github.com/frappe/erpnext/issues/56615 )) ([f50e529 ](f50e529f8a ))
* Use correct doctype name for PCV perm-check (backport [#56606 ](https://github.com/frappe/erpnext/issues/56606 )) ([#56610 ](https://github.com/frappe/erpnext/issues/56610 )) ([52d04ad ](52d04ad834 ))
* use correct variable to fetch valuation method ([c2b7718 ](c2b7718455 ))
### Features
* **accounts:** add configurable job timeout for Process Period Closing Voucher ([c97be8a ](c97be8abe1 ))
2026-07-01 03:40:41 +00:00
Diptanil Saha
457424f7a4
Merge pull request #56651 from frappe/version-15-hotfix
...
chore: release v15
2026-07-01 09:08:59 +05:30
Frappe PR Bot
25ee3695f0
chore(release): Bumped to Version 15.114.0
...
# [15.114.0](https://github.com/frappe/erpnext/compare/v15.113.0...v15.114.0 ) (2026-06-24)
### Features
* **accounts:** add configurable job timeout for Process Period Closing Voucher ([82a8581 ](82a85818c2 ))
2026-06-24 10:25:43 +00:00
ruthra kumar
ff205da810
Merge pull request #56426 from frappe/mergify/bp/version-15/pr-56418
...
refactor: configurable timeout on process pcv (backport #56417 ) (backport #56418 )
2026-06-24 15:48:58 +05:30
ruthra kumar
2980171007
chore: resolve conflicts
...
(cherry picked from commit df3c821f98 )
2026-06-24 09:56:59 +00:00
ruthra kumar
c6c4815e8d
refactor: patch, display depends on and json changes
...
(cherry picked from commit 3da7eefebb )
# Conflicts:
# erpnext/accounts/doctype/accounts_settings/accounts_settings.json
# erpnext/accounts/doctype/accounts_settings/accounts_settings.py
# erpnext/patches.txt
(cherry picked from commit c33d7e5d7b )
2026-06-24 09:56:59 +00:00
ruthra kumar
82a85818c2
feat(accounts): add configurable job timeout for Process Period Closing Voucher
...
Adds a `pcv_job_timeout` Int field (default 3600s) to Accounts Settings
so admins can tune the enqueue timeout for PCV background jobs without
a code change. All three `frappe.enqueue` calls in
`process_period_closing_voucher.py` now read this value at runtime.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit 13b6c4a165 )
# Conflicts:
# erpnext/accounts/doctype/accounts_settings/accounts_settings.json
(cherry picked from commit c97be8abe1 )
2026-06-24 09:56:58 +00:00
Frappe PR Bot
57a2be6b56
chore(release): Bumped to Version 15.113.0
...
# [15.113.0](https://github.com/frappe/erpnext/compare/v15.112.0...v15.113.0 ) (2026-06-23)
### Bug Fixes
* add dynamic links for customer and supplier dashboards ([690adf1 ](690adf1051 ))
* Add likely missing escapes (backport [#55574 ](https://github.com/frappe/erpnext/issues/55574 )) ([#55580 ](https://github.com/frappe/erpnext/issues/55580 )) ([ce8fce7 ](ce8fce78f1 ))
* add partially transferred status and fix button visibility for partial material transfer on job card ([1f5283d ](1f5283da58 ))
* add validation and tests for set_status ([7bea925 ](7bea925230 ))
* apply docstatus filter to exclude cancelled Work Orders in Serial No ([90fd057 ](90fd057fb3 ))
* attribute error because of missing margin_type field in Supplier Quotation (backport [#48089 ](https://github.com/frappe/erpnext/issues/48089 )) ([506658c ](506658c3a6 ))
* **budget:** ambiguous error message for budget assignment validation (backport [#56390 ](https://github.com/frappe/erpnext/issues/56390 )) ([#56391 ](https://github.com/frappe/erpnext/issues/56391 )) ([53a1122 ](53a11229ec ))
* clear stale payment rows on non-POS returns so they don't surface in bank reconciliation (backport [#55903 ](https://github.com/frappe/erpnext/issues/55903 )) ([#56169 ](https://github.com/frappe/erpnext/issues/56169 )) ([37d2622 ](37d26222d7 ))
* disable is_debit_note while creating credit note ([e4370ab ](e4370ab332 ))
* **err:** add missing permission check on `get_account_details` ([041a9ad ](041a9adbbf ))
* escape user image url on various templates (backport [#56269 ](https://github.com/frappe/erpnext/issues/56269 )) ([#56270 ](https://github.com/frappe/erpnext/issues/56270 )) ([42af4ce ](42af4ce7b0 ))
* **manufacturing:** make item_code mandatory in Job Card Item ([1b4da9d ](1b4da9dc96 ))
* **payment_entry:** recompute base amount when exchange rate changes (backport [#56136 ](https://github.com/frappe/erpnext/issues/56136 )) ([#56397 ](https://github.com/frappe/erpnext/issues/56397 )) ([cef608d ](cef608d043 ))
* **pos:** remove redundant opening balance dialog onchange handler (backport [#54591 ](https://github.com/frappe/erpnext/issues/54591 )) ([#56402 ](https://github.com/frappe/erpnext/issues/56402 )) ([334a0b2 ](334a0b2137 ))
* preserve stock ageing on non-serial reconciliation ([1991312 ](19913127a7 ))
* **report_utils:** remove unnecessary whitelist decorator on `get_invoiced_item_gross_margin` ([0efebf5 ](0efebf5d8c ))
* resolve backport conflict in accounting dashboard number cards ([f106513 ](f106513005 )), closes [#55548 ](https://github.com/frappe/erpnext/issues/55548 ) [#55484 ](https://github.com/frappe/erpnext/issues/55484 )
* set a fallback value if no fiscal year set ([da1ccc2 ](da1ccc2b62 ))
* show contextual balance label on party dashboard for net balances ([9b6adc4 ](9b6adc42b6 ))
* simplify get_round_off_applicable_accounts function signature ([42121f2 ](42121f2e36 ))
* **stock:** allow partial raw material picking/transfer from work order ([a858d77 ](a858d77461 ))
* **stock:** apply precision to the additional cost amount in stock entry ([acc1444 ](acc1444c03 ))
* **stock:** propagate renamed attribute values to variant items ([27d574d ](27d574dad5 ))
* **stock:** update transfer status for mixed transfer flows ([3f9a88a ](3f9a88a5e2 ))
* **stock:** update variant attributes on value rename ([c7acd88 ](c7acd88742 ))
* **stock:** update voucher valuaion rate in sle (backport [#55960 ](https://github.com/frappe/erpnext/issues/55960 )) ([#56262 ](https://github.com/frappe/erpnext/issues/56262 )) ([37f847e ](37f847e730 ))
* tax.base_tax_amount as none when payment entry created using API ([37dffa7 ](37dffa7273 ))
* update reference doctype mapping and field visibility in bank guarantee ([e556cbb ](e556cbbe6a ))
* update round off account functions to accept document context for regional overrides ([#55758 ](https://github.com/frappe/erpnext/issues/55758 )) ([eef075a ](eef075a2ba ))
* use fiscal year instead of calendar year in accounting dashboard number cards ([81ce5fb ](81ce5fbee9 ))
### Features
* add batch-level option to allow negative stock for batch ([5c4f19e ](5c4f19ebdc ))
2026-06-23 21:37:17 +00:00
Diptanil Saha
47f54a4725
Merge pull request #56360 from frappe/version-15-hotfix
...
chore: release v15
2026-06-24 03:05:42 +05:30