Shllokkk
87e498cd7d
Merge pull request #56088 from Shllokkk/je-pcv-vaidation
...
fix(journal entry): validate opening entry against pcv on save
2026-06-18 18:04:51 +05:30
Shllokkk
f8aa4c730c
fix(journal entry): validate opening entry against pcv on save
2026-06-18 16:56:17 +05:30
rohitwaghchaure
a335838691
Merge pull request #56091 from frappe/mergify/bp/version-16-hotfix/pr-56079
...
feat: allow negative stock at batch level (backport #56079 )
2026-06-18 16:42:32 +05:30
Rohit Waghchaure
1f075d4bbf
feat: add batch-level option to allow negative stock for batch
...
(cherry picked from commit ca07982ee0 )
2026-06-18 10:49:45 +00:00
Khushi Rawat
7f441864d6
Merge pull request #56084 from frappe/mergify/bp/version-16-hotfix/pr-56030
...
fix: lock budget distribution table and guard against null distributi… (backport #56030 )
2026-06-18 14:34:18 +05:30
Shllokkk
2b28b7e694
fix: lock budget distribution table and guard against null distribution rows
...
(cherry picked from commit d37e5cd97d )
2026-06-18 08:28:37 +00:00
Mihir Kandoi
56d9cbabbf
Merge pull request #56049 from aerele/backport-56003
...
fix(stock): update transfer status for mixed transfer flows
2026-06-17 17:20:55 +05:30
pandiyan
4481efec17
test(stock): validate completed status for mixed transfer methods
2026-06-17 16:58:32 +05:30
pandiyan
84a1a51023
fix(stock): update transfer status for mixed transfer flows
2026-06-17 16:58:23 +05:30
Mihir Kandoi
98f45221e6
Merge pull request #56043 from mihir-kandoi/codex/fix-stock-ageing-reco-ageing-v16
...
fix: preserve stock ageing on non-serial reconciliation
2026-06-17 16:20:49 +05:30
Mihir Kandoi
846e0a9f06
fix: preserve stock ageing on non-serial reconciliation
2026-06-17 15:58:47 +05:30
ruthra kumar
6185507614
Merge pull request #56024 from frappe/mergify/bp/version-16-hotfix/pr-55988
...
refactor(test): remove dependency on accounts test mixin (backport #55988 )
2026-06-17 07:59:00 +05:30
ruthra kumar
d051407126
refactor(test): remove redundant clear method and minor fixes
...
(cherry picked from commit 004087097c )
2026-06-17 02:11:27 +00:00
ruthra kumar
3d91e021a3
refactor(tests): replace AccountsTestMixin master data setup with direct attribute assignments
...
All test classes inheriting AccountsTestMixin that called create_company(),
create_item(), create_customer(), create_supplier(), create_usd_receivable_account(),
and create_usd_payable_account() in setUp() now set instance attributes directly
using master data pre-created by BootStrapTestData, eliminating redundant DB
inserts on every test run.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit 1fda0dfb9b )
2026-06-17 02:11:26 +00:00
Frappe PR Bot
b1ca423e11
chore(release): Bumped to Version 16.23.0
...
# [16.23.0](https://github.com/frappe/erpnext/compare/v16.22.0...v16.23.0 ) (2026-06-16)
### Bug Fixes
* **accounts:** removed whitelist on `get_balance_on` (backport [#55956 ](https://github.com/frappe/erpnext/issues/55956 )) ([#55965 ](https://github.com/frappe/erpnext/issues/55965 )) ([5cdb481 ](5cdb481bdf ))
* adapt Product Bundle queries to v16 schema ([b1895e9 ](b1895e9a9a ))
* add permission checks in accounts whitelisted methods ([b9eb52b ](b9eb52b171 ))
* added doctype filter validation for sales person wise transaction summary report (backport [#55812 ](https://github.com/frappe/erpnext/issues/55812 )) ([#55818 ](https://github.com/frappe/erpnext/issues/55818 )) ([c06046d ](c06046df8f ))
* apply user permissions to receivable/payable reports ([b05abbc ](b05abbc53b ))
* **banking:** miscellaneous bug fixes (backport [#55492 ](https://github.com/frappe/erpnext/issues/55492 )) ([#55979 ](https://github.com/frappe/erpnext/issues/55979 )) ([3243e42 ](3243e4237a ))
* **bom:** allow zero qty for secondary items (Co-Product, By-Product, Scrap, Additional Finished Good) ([7d95aca ](7d95acabe7 ))
* **bom:** fetch routing operations when Routing is selected ([#55813 ](https://github.com/frappe/erpnext/issues/55813 )) ([f3caed3 ](f3caed378b ))
* **budget:** add root_type filter on account field ([#55934 ](https://github.com/frappe/erpnext/issues/55934 )) ([0906737 ](0906737bd3 ))
* bump BOM secondary item metadata timestamp ([4f96073 ](4f96073d59 ))
* check for bank account permission when updating balance (backport [#56016 ](https://github.com/frappe/erpnext/issues/56016 )) ([#56017 ](https://github.com/frappe/erpnext/issues/56017 )) ([2bfb5fe ](2bfb5fe8b8 ))
* **company:** replaced "this company" with company name on delete transactions dialog (backport [#56021 ](https://github.com/frappe/erpnext/issues/56021 )) ([#56023 ](https://github.com/frappe/erpnext/issues/56023 )) ([f4bf35a ](f4bf35aa31 ))
* converted whitelist non class methods to class methods ([b616206 ](b616206848 ))
* create_raw_materials_supplied method not found ([d51ad0d ](d51ad0d19f ))
* exclude non-stock item's tax value from stock valuation ([3d6c7f4 ](3d6c7f4512 ))
* fiscal year check on validation (backport [#55930 ](https://github.com/frappe/erpnext/issues/55930 )) ([#55938 ](https://github.com/frappe/erpnext/issues/55938 )) ([f3e23d4 ](f3e23d4e6f ))
* **get_exchange_rate:** using get_single_value to fetch `disabled` value from `currency_exchange_settings` ([2606d66 ](2606d660af ))
* **inactive_customers:** add allowlist for doctype filter and migrate to qb ([f43af66 ](f43af66246 ))
* **Lead:** stop storing Gravatar image URLs for Leads (backport [#55880 ](https://github.com/frappe/erpnext/issues/55880 )) ([#55882 ](https://github.com/frappe/erpnext/issues/55882 )) ([0b03f18 ](0b03f18a39 ))
* **manufacture:** preserve user-entered rate for secondary items with zero cost allocation ([5090389 ](509038971c ))
* multiple issues related to BOM Creator ([c10a331 ](c10a331a22 ))
* opportunity creation from contact us page (backport [#55841 ](https://github.com/frappe/erpnext/issues/55841 )) ([#55867 ](https://github.com/frappe/erpnext/issues/55867 )) ([85e6b8d ](85e6b8d27b ))
* pass source cost center to target cost center ([558415b ](558415b1e7 ))
* pemission for whitelist functions ([dd56e80 ](dd56e80512 ))
* permission in bom compare tool ([c3b66bc ](c3b66bce1e ))
* permissions in workstation file ([0fea933 ](0fea93388d ))
* prefetch batchwise valuations before streaming SLEs in stock ageing ([018f06d ](018f06d8d1 ))
* prevent exchange rate flow from transaction to payment ([d7de07b ](d7de07bfd4 ))
* provision to recalculate valuation rate during reposting ([5b61304 ](5b61304046 ))
* recalculate incoming rate in SLE for purchase documents during repost ([d3cc684 ](d3cc684899 ))
* regression issues related to security fixes ([be1aa0e ](be1aa0e5eb ))
* remove duplicate field ([#55941 ](https://github.com/frappe/erpnext/issues/55941 )) ([545d052 ](545d052b4e ))
* remove ignore_permissions from get_party_details signature ([#55491 ](https://github.com/frappe/erpnext/issues/55491 )) ([b2e7fd7 ](b2e7fd7957 ))
* remove wrapper for list items in error messages (backport [#54848 ](https://github.com/frappe/erpnext/issues/54848 )) ([#55973 ](https://github.com/frappe/erpnext/issues/55973 )) ([4ba5557 ](4ba5557a3f ))
* resolve pre-commit formatting and missing UOM in stock balance test ([96465a7 ](96465a7936 ))
* resolve v16 BOM backport conflicts ([c7cc0fe ](c7cc0fec0f ))
* restricting currency_exchange_settings write permission only to system manager ([79fd176 ](79fd176a8e ))
* semgrep translation issue ([bcd38c1 ](bcd38c17d6 ))
* set options Email for customer_email field in appointment ([6d038c5 ](6d038c5e71 ))
* set transaction currency on payment entry gl entries ([#55989 ](https://github.com/frappe/erpnext/issues/55989 )) ([3586df8 ](3586df8ed6 ))
* show company name in delete transactions confirmation dialog ([6a3c973 ](6a3c973b0f ))
* show inactive product bundles in item where used ([#55769 ](https://github.com/frappe/erpnext/issues/55769 )) ([2bea9ae ](2bea9ae2a5 ))
* show user disable audit log ([ca61e5a ](ca61e5a214 ))
* **stock:** make uom mandatory in item uom table ([7f8c7d2 ](7f8c7d2f44 ))
* **stock:** show only batched items in batch item selector ([11b3841 ](11b3841418 ))
* **stock:** update stock value calculation in stock balance report ([00794e0 ](00794e0815 ))
* sync employee user status after save ([a83002a ](a83002aae6 ))
* test case ([9fcb730 ](9fcb730090 ))
* UI/UX issues in new banking module (backport [#54824 ](https://github.com/frappe/erpnext/issues/54824 )) ([#55951 ](https://github.com/frappe/erpnext/issues/55951 )) ([961a9ad ](961a9ad321 ))
* update system manager permissions (backport [#55978 ](https://github.com/frappe/erpnext/issues/55978 )) ([#56005 ](https://github.com/frappe/erpnext/issues/56005 )) ([ab856d3 ](ab856d370a ))
* updated role based permission for terms and conditions doctype ([#55674 ](https://github.com/frappe/erpnext/issues/55674 )) ([254290a ](254290a88e ))
* use frankfurter v2 by default for new install ([471ab66 ](471ab662f6 ))
### Features
* add alternate UOM balance columns to Stock Balance report ([cd1f872 ](cd1f872912 )), closes [#52953 ](https://github.com/frappe/erpnext/issues/52953 )
* Allow to edit stock UOM qty for Stock Entry ([ece43bd ](ece43bd79b ))
* **banking:** PDF statement importer and overriding column mapping (backport [#55559 ](https://github.com/frappe/erpnext/issues/55559 )) ([#55993 ](https://github.com/frappe/erpnext/issues/55993 )) ([125bda9 ](125bda95ed ))
* **currency exchange settings:** frankfurter v2 support ([e804bf3 ](e804bf33ba ))
* **invoices:** add tooltip description to Update Stock checkbox ([#55868 ](https://github.com/frappe/erpnext/issues/55868 )) ([12be632 ](12be63229a ))
* new banking module (backport [#54720 ](https://github.com/frappe/erpnext/issues/54720 )) ([#55917 ](https://github.com/frappe/erpnext/issues/55917 )) ([67cc59c ](67cc59c5ca ))
* **selling:** surface and respect disabled Product Bundles (backport [#55791 ](https://github.com/frappe/erpnext/issues/55791 )) ([0c1a508 ](0c1a5082bd ))
* sticky columns in reports ([3317158 ](331715815c ))
v16.23.0
2026-06-16 21:31:15 +00:00
Diptanil Saha
c1e77c04fd
Merge pull request #55981 from frappe/version-16-hotfix
...
chore: release v16
2026-06-17 02:59:09 +05:30
Ravibharathi
3586df8ed6
fix: set transaction currency on payment entry gl entries ( #55989 )
2026-06-17 02:19:56 +05:30
mergify[bot]
f4bf35aa31
fix(company): replaced "this company" with company name on delete transactions dialog (backport #56021 ) ( #56023 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
fix(company): replaced "this company" with company name on delete transactions dialog (#56021 )
2026-06-17 02:14:41 +05:30
mergify[bot]
ab856d370a
fix: update system manager permissions (backport #55978 ) ( #56005 )
...
Co-authored-by: nareshkannasln <nareshkannashanmugam@gmail.com >
2026-06-17 00:56:12 +05:30
mergify[bot]
2bfb5fe8b8
fix: check for bank account permission when updating balance (backport #56016 ) ( #56017 )
...
fix: check for bank account permission when updating balance (backport #56016 )
2026-06-17 00:54:45 +05:30
rohitwaghchaure
b34373e5da
Merge pull request #56009 from frappe/mergify/bp/version-16-hotfix/pr-55983
...
fix: provision to recalculate valuation rate during reposting (backport #55983 )
2026-06-16 22:20:30 +05:30
mergify[bot]
7c99018b84
chore(deps): bump vite from 8.0.11 to 8.0.16 in /banking (backport #56007 ) ( #56010 )
2026-06-16 16:36:56 +00:00
Rohit Waghchaure
9fcb730090
fix: test case
...
(cherry picked from commit e183e32619 )
2026-06-16 15:52:30 +00:00
Rohit Waghchaure
7877c2e2aa
test: reset dont_execute_stock_reposts flag in tearDown
...
The test_prevention_of_cancelled_transaction_riv test sets
frappe.flags.dont_execute_stock_reposts = True without resetting it,
which leaked into the recalculate_valuation_rate tests and made
repost() a no-op (incoming rate stayed unchanged). Reset the flag
in tearDown so reposts run for subsequent tests.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
(cherry picked from commit 28992eb2f4 )
2026-06-16 15:52:29 +00:00
Rohit Waghchaure
5b61304046
fix: provision to recalculate valuation rate during reposting
...
(cherry picked from commit 0ae61c4921 )
2026-06-16 15:52:29 +00:00
mergify[bot]
125bda95ed
feat(banking): PDF statement importer and overriding column mapping (backport #55559 ) ( #55993 )
2026-06-16 21:08:43 +05:30
Mihir Kandoi
78b7da1a44
Merge pull request #55992 from frappe/mergify/bp/version-16-hotfix/pr-55985
...
fix(stock): show only batched items in batch item selector (backport #55985 )
2026-06-16 20:36:34 +05:30
rohitwaghchaure
88717678d3
Merge pull request #55996 from frappe/mergify/bp/version-16-hotfix/pr-55986
...
chore: removed redundant validation in SCR (backport #55986 )
2026-06-16 19:45:50 +05:30
rohitwaghchaure
f1e4e651be
Merge pull request #55998 from frappe/mergify/bp/version-16-hotfix/pr-55971
...
fix: exclude non-stock item's tax value from stock valuation (backport #55971 )
2026-06-16 19:42:23 +05:30
Rohit Waghchaure
3d6c7f4512
fix: exclude non-stock item's tax value from stock valuation
...
(cherry picked from commit 13e1f84eb1 )
2026-06-16 13:41:27 +00:00
Rohit Waghchaure
5c14d56a83
chore: removed redundant validation in SCR
...
(cherry picked from commit 1b4487450c )
2026-06-16 13:38:48 +00:00
mergify[bot]
3243e4237a
fix(banking): miscellaneous bug fixes (backport #55492 ) ( #55979 )
2026-06-16 18:43:19 +05:30
Dharanidharan2813
11b3841418
fix(stock): show only batched items in batch item selector
...
(cherry picked from commit 62f6d18143 )
2026-06-16 13:01:19 +00:00
Mihir Kandoi
395e57171e
Merge pull request #55967 from frappe/mergify/bp/version-16-hotfix/pr-55852
...
fix(bom): allow zero qty for secondary items in BOM (backport #55852 )
2026-06-16 17:27:58 +05:30
Sudharsanan Ashok
ee40f70f37
Merge pull request #55976 from frappe/mergify/bp/version-16-hotfix/pr-55943
...
refactor: ignore cancelled GLE's while looking for account (backport #55943 )
2026-06-16 17:26:50 +05:30
Mihir Kandoi
181233d3fe
Merge pull request #55977 from frappe/mergify/bp/version-16-hotfix/pr-55851
...
feat: add alternate UOM balance columns to Stock Balance report (backport #55851 )
2026-06-16 17:15:16 +05:30
Mihir Kandoi
4f96073d59
fix: bump BOM secondary item metadata timestamp
2026-06-16 16:49:48 +05:30
mergify[bot]
4ba5557a3f
fix: remove wrapper for list items in error messages (backport #54848 ) ( #55973 )
2026-06-16 11:15:21 +00:00
Dipen Gala
96465a7936
fix: resolve pre-commit formatting and missing UOM in stock balance test
...
- Reformat generator expression in add_alt_uom_columns to satisfy ruff
line-length rule (pre-commit was auto-fixing this and failing CI)
- Create "Carton" UOM before use in test_alt_uom_balance_uses_first_alternate_uom
to avoid LinkValidationError when "Carton" doesn't exist in test DB
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit 987f606b4d )
2026-06-16 11:13:37 +00:00
Dipen Gala
1349bcc535
refactor(stock-balance): reduce alt UOM to single column, fix i18n, add tests
...
- Reduce from 2 alternate UOM columns to 1 (first alt UOM by idx)
- Fix broken translation strings: replace _(f"...{slot}") with
_("...") — f-strings inside _() are never extracted by bench
get-untranslated, breaking non-English installations
- Simplify fieldnames: alt_uom_1/alt_uom_1_bal_qty → alt_uom/alt_uom_bal_qty
- Add 4 test cases covering: single alt UOM, no alt UOM, disabled filter,
and multiple alt UOMs (first-wins behaviour)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit 021b807057 )
2026-06-16 11:13:36 +00:00
Dipen Gala
cd1f872912
feat: add alternate UOM balance columns to Stock Balance report
...
Closes #52953
The Stock Balance report previously showed balance qty only in the item's
stock UOM. To view balance in an alternate UOM, users had to set the
"Include UOM" filter — which applies a single UOM to all items. This breaks
down when different items use different alternate UOMs (e.g., Pens in Box,
Ink in Milliliters).
This change adds a new "Show Alternate UOM Balance" checkbox filter. When
enabled, up to two alternate UOM columns are injected right after the
Balance Qty column:
Balance Qty | Alt UOM 1 | Balance Qty (Alt UOM 1) | Alt UOM 2 | Balance Qty (Alt UOM 2)
Each row resolves its own alternate UOMs from `tabUOM Conversion Detail`
(ordered by idx, excluding the item's stock UOM). The converted balance
qty is computed as: stock qty / conversion_factor.
Items with fewer than 2 alternate UOMs leave the extra columns blank.
The existing "Include UOM" filter behaviour is unchanged.
(cherry picked from commit 2d93c5835a )
2026-06-16 11:13:36 +00:00
ervishnucs
6475df89c9
refactor: ignore cancelled GLE's while looking for account
...
(cherry picked from commit 40942401df )
2026-06-16 11:08:44 +00:00
mergify[bot]
961a9ad321
fix: UI/UX issues in new banking module (backport #54824 ) ( #55951 )
2026-06-16 16:22:04 +05:30
mergify[bot]
5cdb481bdf
fix(accounts): removed whitelist on get_balance_on (backport #55956 ) ( #55965 )
...
Co-authored-by: Diptanil Saha <diptanil@frappe.io >
fix(accounts): removed whitelist on `get_balance_on` (#55956 )
2026-06-16 15:31:08 +05:30
Nabin Hait
6f281356a6
fix(accounts): clear clearance date when amending reconciled voucher
...
The framework ignores `no_copy` while amending, so a reconciled voucher
carried a stale clearance date into its amendment even though the linked
bank transaction gets unreconciled on cancellation. Reset it via a shared
`before_insert` hook on AccountsController.
Fixes #54909
(cherry picked from commit 1a8d73cbbe )
2026-06-16 09:59:41 +00:00
Mihir Kandoi
c7cc0fec0f
fix: resolve v16 BOM backport conflicts
2026-06-16 15:12:06 +05:30
Sudharsanan11
a6310351fd
fix(stock): enable quality inspection for all Stock Entry purposes
...
- Remove `depends_on` restriction from `inspection_required` field so it
is visible for all Stock Entry purposes, not just Manufacture
- Fix `check_item_quality_inspection` to return items for Stock Entry
(was returning [] for unknown doctypes, blocking QI creation flow)
- Fix `inspection_type` in transaction.js to be purpose-aware: Manufacture
and Material Receipt → "Incoming"; all other purposes → "Outgoing"
(cherry picked from commit dceb9a3c6c )
# Conflicts:
# erpnext/stock/doctype/stock_entry/stock_entry.json
2026-06-16 09:38:17 +00:00
Mohammad Umair Sayed
57a7bcae8e
refactor(bom): drop redundant secondary item qty None check
...
Float fields default to 0, so qty is never None. Per review feedback,
remove the validation entirely.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
(cherry picked from commit c1bef53f92 )
# Conflicts:
# erpnext/manufacturing/doctype/bom/bom.py
2026-06-16 09:36:18 +00:00
Umair Sayed
532c343b57
refactor(bom): remove qty=0 alert from BOM Secondary Item JS
...
The informational toast is not required for the feature to work.
The core fix (reqd removed from JSON, validation relaxed in bom.py)
is sufficient to allow zero qty on BOM secondary items.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit bc7c0de208 )
2026-06-16 09:36:17 +00:00
Umair Sayed
509038971c
fix(manufacture): preserve user-entered rate for secondary items with zero cost allocation
...
When a BOM secondary item has cost_allocation_per = 0 (the default), the
previous code unconditionally computed `0 / transfer_qty = 0`, wiping any
rate the user had entered for the item. Now the allocation formula only runs
when cost_allocation_per > 0, allowing the valuation-rate fallback (or a
manually entered rate) to apply instead.
Additionally, secondary items with transfer_qty = 0 now short-circuit the
entire rate pipeline: they get rate = 0 and amount = 0 immediately, avoiding
a ZeroDivisionError and the spurious "enter basic rate" prompt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
(cherry picked from commit de3df6bcef )
# Conflicts:
# erpnext/stock/doctype/stock_entry/stock_entry.py
2026-06-16 09:36:17 +00:00