Frappe PR Bot
be176617cc
chore(release): Bumped to Version 15.119.1
...
## [15.119.1](https://github.com/frappe/erpnext/compare/v15.119.0...v15.119.1 ) (2026-08-11)
### Bug Fixes
* **accounts receivable:** made territory field multi select (backport [#57322 ](https://github.com/frappe/erpnext/issues/57322 )) ([#57808 ](https://github.com/frappe/erpnext/issues/57808 )) ([69c00b3 ](69c00b3362 ))
* allow selecting a warehouse for new items in the update items dialog ([#57876 ](https://github.com/frappe/erpnext/issues/57876 )) ([76f485b ](76f485ba43 ))
* clear deferred revenue/expense fields on uncheck (backport [#57140 ](https://github.com/frappe/erpnext/issues/57140 )) ([ce898a9 ](ce898a9695 ))
* **coa_importer:** added server-side validations for importing chart of accounts (backport [#58065 ](https://github.com/frappe/erpnext/issues/58065 )) ([#58067 ](https://github.com/frappe/erpnext/issues/58067 )) ([d0ef967 ](d0ef967890 ))
* **coa_importer:** allow importing COA through `import_coa` only for `Accounts Manager` (backport [#56132 ](https://github.com/frappe/erpnext/issues/56132 )) ([#58064 ](https://github.com/frappe/erpnext/issues/58064 )) ([00d8dc7 ](00d8dc73b9 ))
* convert hours to minutes in workstation complete_job ([5e753ec ](5e753ec6e4 ))
* escape `customer_details` on lead creation from appointment (backport [#57947 ](https://github.com/frappe/erpnext/issues/57947 )) ([#57948 ](https://github.com/frappe/erpnext/issues/57948 )) ([2ca71f1 ](2ca71f16c4 ))
* field validation and perm checks on `get_stock_reservation_entries_for_voucher` (backport [#57968 ](https://github.com/frappe/erpnext/issues/57968 )) ([#57986 ](https://github.com/frappe/erpnext/issues/57986 )) ([a0d1561 ](a0d156120b ))
* get_valuation_method takes no company argument on version-15 ([c45ea35 ](c45ea3545d ))
* guard reconciliation table deletes when tables are missing ([140e06d ](140e06dfa4 ))
* incorrect entry detection in Stock Ledger Invariant Check ([#57886 ](https://github.com/frappe/erpnext/issues/57886 )) ([529ff25 ](529ff251fb ))
* keep asset repair downtime in sync with entered dates ([0e9c08d ](0e9c08d494 ))
* **manufacturing:** avoid child BOM cache lookups ([5c2123f ](5c2123f6ed ))
* **manufacturing:** correct nested BOM quantities ([a310346 ](a3103469e2 ))
* **manufacturing:** keep item code searchable when a barcode matches the same text ([0310db2 ](0310db22ec ))
* optimize product bundle item search ([52a1b12 ](52a1b124b2 ))
* preserve custom title on new JV (backport [#57987 ](https://github.com/frappe/erpnext/issues/57987 )) ([#57988 ](https://github.com/frappe/erpnext/issues/57988 )) ([713af31 ](713af31eda ))
* purchase return of batchwise valuation batch valued at original receipt rate instead of batch avg rate (version-15-hotfix) ([#57837 ](https://github.com/frappe/erpnext/issues/57837 )) ([e2ded11 ](e2ded11e09 ))
* re-check future sle before queuing repost on submit ([#57664 ](https://github.com/frappe/erpnext/issues/57664 )) ([#57960 ](https://github.com/frappe/erpnext/issues/57960 )) ([d510978 ](d510978a44 ))
* reflect in-invoice receivable settlements in Sales Register ledger view ([91afc04 ](91afc04d9f ))
* repost read stale sibling SLE rate for moving average returns ([5738cfc ](5738cfce79 ))
* require material transfer before job card time logs ([2e5ae18 ](2e5ae188d6 ))
* resolve version-15 backport conflicts ([b25a2f2 ](b25a2f2cdf ))
* **selling:** bill re-delivered sales order quantities ([47c6274 ](47c6274b13 ))
* **selling:** reset stale item details on item change (backport [#58051 ](https://github.com/frappe/erpnext/issues/58051 )) ([#58052 ](https://github.com/frappe/erpnext/issues/58052 )) ([01372cf ](01372cf295 ))
* set `restrict_globals=True` in `frappe.render_template` (backport [#57899 ](https://github.com/frappe/erpnext/issues/57899 )) ([#57901 ](https://github.com/frappe/erpnext/issues/57901 )) ([af7953a ](af7953a933 ))
* **setup:** fetch driver address by supplier link ([2a4a9ff ](2a4a9fff3d ))
* skip incoming rate calc when serial no qty is zero (backport [#57427 ](https://github.com/frappe/erpnext/issues/57427 )) ([#57956 ](https://github.com/frappe/erpnext/issues/57956 )) ([f9a09f0 ](f9a09f0ac4 ))
* **stock:** grant account access in blanket order role test ([5e78603 ](5e7860362e ))
* **stock:** handle multi-item opening balance in Stock Ledger report (backport [#57591 ](https://github.com/frappe/erpnext/issues/57591 )) ([#57795 ](https://github.com/frappe/erpnext/issues/57795 )) ([ebdc0cd ](ebdc0cdf7f ))
* **stock:** scope over deliver/receive role check to delivery and receipt overflow ([328c72d ](328c72da18 ))
* **stock:** validate new warehouse inventory account after naming ([5e3d094 ](5e3d0947c8 ))
* **stock:** validate over delivery/receipt allowance in stock settings ([7be8a99 ](7be8a99a23 ))
* **stock:** validate warehouse accounts when used ([d620720 ](d620720445 ))
* **subscription:** don't reactivate a cancelled subscription (backport [#57774 ](https://github.com/frappe/erpnext/issues/57774 )) ([#57780 ](https://github.com/frappe/erpnext/issues/57780 )) ([edc8daa ](edc8daae21 )), closes [#57761 ](https://github.com/frappe/erpnext/issues/57761 ) [#57761 ](https://github.com/frappe/erpnext/issues/57761 )
* sync open reference forms after Quality Inspection updates them ([c1d198d ](c1d198d205 ))
* tolerate floating-point drift in sales team allocated percentage ([262fbc5 ](262fbc52d8 ))
* use stock settings for warehouse defaults ([d4ed207 ](d4ed2074d5 ))
* validate webform for project ([680ce70 ](680ce70c35 ))
* zero-rate repost fallback could still read sibling SLE ([8131af9 ](8131af9405 ))
v15.119.1
2026-08-11 23:19:46 +00:00
Diptanil Saha
942a1ddb2c
Merge pull request #58025 from frappe/version-15-hotfix
...
chore: release v15
2026-08-12 04:47:53 +05:30
Diptanil Saha
d0ef967890
fix(coa_importer): added server-side validations for importing chart of accounts (backport #58065 ) ( #58067 )
2026-08-11 22:54:34 +00:00
Diptanil Saha
00d8dc73b9
fix(coa_importer): allow importing COA through import_coa only for Accounts Manager (backport #56132 ) ( #58064 )
...
Co-authored-by: Pratheep S <pratheeps2024@gmail.com >
2026-08-11 21:16:40 +00:00
mergify[bot]
01372cf295
fix(selling): reset stale item details on item change (backport #58051 ) ( #58052 )
2026-08-11 15:54:04 +00:00
Mihir Kandoi
9c9bc8e9bf
Merge pull request #58039 from mihir-kandoi/backport-58036-version-15-hotfix
...
fix(stock): validate warehouse accounts when used (backport #58036 )
2026-08-11 19:15:29 +05:30
Mihir Kandoi
5a61ea6496
test(stock): isolate warehouse account fixtures from class-level state
...
FrappeTestCase on this branch rolls back per class, not per test, so
sibling tests leak state. test_new_warehouse_can_inherit_inventory_account
left an explicit account on the root group, which made later ambiguous
fixtures resolve through the root: the insert validation stopped raising
and the unresolved warehouse stayed in the map.
The fixture helper now clears group warehouse accounts so every call
re-establishes ambiguity. The fallback test also clears the account of
the warehouse it picks, since a leftover explicit account skips the
single-account fallback it asserts.
2026-08-11 18:58:49 +05:30
Mihir Kandoi
da2c422bf6
test(stock): cover named validation error and same-transaction parent inheritance
2026-08-11 18:31:25 +05:30
Mihir Kandoi
5e3d0947c8
fix(stock): validate new warehouse inventory account after naming
...
Move the insert-time check from before_insert to validate. before_insert
runs before set_new_name, so the validation message rendered the
warehouse name as None. validate runs after naming and only applies to
new documents via is_new().
Resolve inheritance through the parent's lft/rgt bounds instead of the
request-cached warehouse account map. The cached map can be stale within
a request (a parent created moments earlier is missing from it), which
made get_warehouse_account trigger a full nested-set rebuild_tree and
could falsely reject a child whose parent carries a valid account.
rebuild_tree enables auto_commit_on_many_writes, which must not run
inside a document insert.
2026-08-11 18:31:25 +05:30
Mihir Kandoi
d620720445
fix(stock): validate warehouse accounts when used
2026-08-11 18:04:30 +05:30
Mihir Kandoi
f5e411669a
Merge pull request #58022 from frappe/mergify/bp/version-15-hotfix/pr-58020
...
fix(setup): fetch driver address by supplier link (backport #58020 )
2026-08-11 15:31:09 +05:30
Mihir Kandoi
2a4a9fff3d
fix(setup): fetch driver address by supplier link
...
(cherry picked from commit 3ffb888d26 )
2026-08-11 09:47:54 +00:00
Mihir Kandoi
5c3063fa43
Merge pull request #58011 from mihir-kandoi/backport-58003-version-15-hotfix
...
fix(selling): bill re-delivered sales order quantities (backport #58003 )
2026-08-11 14:10:29 +05:30
Mihir Kandoi
39e4641a29
Merge pull request #58015 from mihir-kandoi/require-transfer-before-job-card-start-v15
...
fix: require material transfer before job card time logs (v15)
2026-08-11 14:04:17 +05:30
Mihir Kandoi
ac4e9c34cf
chore(selling): annotate make_sales_invoice arguments
2026-08-11 13:49:48 +05:30
Mihir Kandoi
b70fa4fdd1
test: job card time log blocked until material transfer
2026-08-11 13:41:59 +05:30
Mihir Kandoi
2e5ae188d6
fix: require material transfer before job card time logs
...
v15 adaptation of the develop fix: the timer flow here runs through
add_time_log via make_time_log, so gate that instead of the
start_timer/complete_job_card methods that only exist on develop, and
hide Start Job while transfer is pending. Corrective job cards and
job cards without items (transfer against Work Order) stay exempt,
matching validate_transfer_qty on submit.
2026-08-11 13:41:57 +05:30
Mihir Kandoi
a99b10d213
Merge pull request #58008 from frappe/codex/backport-57963-version-15
...
fix(manufacturing): correct nested BOM Explorer quantities
2026-08-11 13:34:29 +05:30
Mihir Kandoi
220b25db09
test(selling): cover invoicing after returns and re-deliveries
2026-08-11 13:26:00 +05:30
Mihir Kandoi
47c6274b13
fix(selling): bill re-delivered sales order quantities
2026-08-11 13:25:59 +05:30
Mihir Kandoi
5c2123f6ed
fix(manufacturing): avoid child BOM cache lookups
2026-08-11 13:14:49 +05:30
Mihir Kandoi
bb72ae6a3c
Merge pull request #58001 from frappe/mergify/bp/version-15-hotfix/pr-57997
...
fix: keep item code searchable when a barcode matches the same text (backport #57997 )
2026-08-11 13:08:48 +05:30
Mihir Kandoi
a3103469e2
fix(manufacturing): correct nested BOM quantities
2026-08-11 13:01:41 +05:30
Mihir Kandoi
43b874f0d4
Merge pull request #57998 from frappe/mergify/bp/version-15-hotfix/pr-57972
...
refactor: drop redundant time_in_mins assignment in workstation complete_job (backport #57972 )
2026-08-11 12:28:42 +05:30
Kaushal Shriwas
a9743ae5da
chore: resolve backport conflict in bom.py
2026-08-11 12:25:29 +05:30
Kaushal Shriwas
760b365225
test(manufacturing): cover BOM item search when item code collides with a barcode
...
(cherry picked from commit 23024d1ea9 )
2026-08-11 06:42:55 +00:00
Kaushal Shriwas
0310db22ec
fix(manufacturing): keep item code searchable when a barcode matches the same text
...
(cherry picked from commit bf5d506637 )
# Conflicts:
# erpnext/manufacturing/doctype/bom/mapper.py
2026-08-11 06:42:55 +00:00
Mihir Kandoi
496883f4e1
refactor: drop redundant time_in_mins assignment in complete_job
...
(cherry picked from commit 3cffeb68e3 )
2026-08-11 06:39:14 +00:00
pandiyan
5e753ec6e4
fix: convert hours to minutes in workstation complete_job
...
`time_diff_in_hours` returns hours, so `time_in_mins` needs `* 60`, not
`/ 60`. Matches `Job Card.validate_time_log_row`.
No behaviour change: the `doc.save()` on the next line runs Job Card's
`validate`, which recomputes `time_in_mins` correctly before the row is
written. This only stops the expression from reading as a bug.
(cherry picked from commit 422a9161dd )
2026-08-11 06:39:14 +00:00
mergify[bot]
27af9baaa5
refactor(queries): using frappe.get_query in get_filtered_child_rows (backport #57991 ) ( #57992 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-08-10 19:51:55 +00:00
mergify[bot]
a0d156120b
fix: field validation and perm checks on get_stock_reservation_entries_for_voucher (backport #57968 ) ( #57986 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-08-10 22:04:42 +05:30
mergify[bot]
713af31eda
fix: preserve custom title on new JV (backport #57987 ) ( #57988 )
...
Co-authored-by: rehanrehman389 <rehanrehman389@gmail.com >
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-08-10 16:27:03 +00:00
ruthra kumar
df8edcdc91
Merge pull request #57830 from aerele/backport-57140-v15
...
fix: clear deferred revenue/expense fields on uncheck (backport #57140 )
2026-08-10 15:04:11 +05:30
Pandiyan P
d510978a44
fix: re-check future sle before queuing repost on submit ( #57664 ) ( #57960 )
...
* test: cover both repost branches and the no-repost case
* fix: queue repost for entries backdated by a concurrent submit
---------
(cherry picked from commit 399ff463cc )
Co-authored-by: nareshkannasln <nareshkannashanmugam@gmail.com >
2026-08-10 14:03:41 +05:30
mergify[bot]
f9a09f0ac4
fix: skip incoming rate calc when serial no qty is zero (backport #57427 ) ( #57956 )
...
fix: skip incoming rate calc when serial no qty is zero (#57427 )
(cherry picked from commit a25decfa50 )
Co-authored-by: Shllokkk <140623894+Shllokkk@users.noreply.github.com >
2026-08-10 06:48:58 +00:00
Khushi Rawat
a2b2f5173e
Merge pull request #57823 from Shllokkk/asset-repair-downtime-recalc-v15
...
fix: keep asset repair downtime in sync with entered dates
2026-08-10 12:05:01 +05:30
mergify[bot]
2ca71f16c4
fix: escape customer_details on lead creation from appointment (backport #57947 ) ( #57948 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
2026-08-09 19:30:11 +00:00
Shllokkk
ae18d13e6e
Merge pull request #57928 from Shllokkk/sales-register-ledger-pos-paid-v15
...
fix: reflect in-invoice receivable credits in Sales Register ledger view
2026-08-09 23:39:00 +05:30
Shllokkk
7edb95628c
test: cover POS-paid invoice in Sales Register ledger view
2026-08-09 20:22:31 +05:30
Shllokkk
91afc04d9f
fix: reflect in-invoice receivable settlements in Sales Register ledger view
2026-08-09 20:22:31 +05:30
Mihir Kandoi
3c5b2ededf
Merge pull request #57920 from frappe/mergify/bp/version-15-hotfix/pr-57918
...
fix: sync open reference forms after Quality Inspection submit (backport #57918 )
2026-08-09 16:38:01 +05:30
Mihir Kandoi
94d1dfdcb4
chore: resolve conflict
2026-08-09 16:18:49 +05:30
Mihir Kandoi
2270b22400
test: doc_update published for reference on Quality Inspection submit
...
(cherry picked from commit e8a6884d5e )
# Conflicts:
# erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
2026-08-09 10:39:05 +00:00
Mihir Kandoi
c1d198d205
fix: sync open reference forms after Quality Inspection updates them
...
update_qc_reference() writes the QI link and bumps the reference
document's modified timestamp via raw db writes, which emit no realtime
event. A reference form (Purchase Receipt, Delivery Note, Stock Entry,
Job Card) still open in the browser keeps the old timestamp and fails
the timestamp conflict check on the next save/submit, forcing a manual
refresh after every QI submit/cancel/delete.
Calling notify_update() on the reference publishes the standard
doc_update event, so an open, unedited form silently reloads and syncs
its timestamp. get_lazy_doc skips child table loading since
notify_update only needs the parent row.
(cherry picked from commit 647452c95b )
2026-08-09 10:39:05 +00:00
Mihir Kandoi
db4f6db753
Merge pull request #57909 from frappe/mergify/bp/version-15-hotfix/pr-57876
...
fix: allow selecting a warehouse for new items in the update items dialog (backport #57876 )
2026-08-09 13:17:57 +05:30
Mihir Kandoi
ee27df7d2b
Merge pull request #57912 from frappe/mergify/bp/version-15-hotfix/pr-57911
...
fix: tolerate floating-point drift in sales team allocated percentage (backport #57911 )
2026-08-09 13:07:26 +05:30
Mihir Kandoi
d4ed2074d5
fix: use stock settings for warehouse defaults
2026-08-09 13:01:01 +05:30
Mihir Kandoi
206d291817
chore: resolve conflict
2026-08-09 12:50:38 +05:30
Mihir Kandoi
c23aa72dff
chore: resolve conflict
2026-08-09 12:41:55 +05:30
pandiyan
1a89609044
test: sales team allocation totalling 100 in floating point
...
covers the case where the percentages are correct but the accumulated
sum is 100.00000000000001. two rows can never drift, since the second
reconstructs exactly as 100 - first, so the case needs three rows.
(cherry picked from commit 4afba94d1c )
# Conflicts:
# erpnext/selling/doctype/sales_order/test_sales_order.py
2026-08-09 06:59:23 +00:00