Commit Graph

58091 Commits

Author SHA1 Message Date
mergify[bot]
6569fa2b9f fix: type def in get_linked_payments (backport #56100) (#56133)
fix: type def in get_linked_payments (#56100)

(cherry picked from commit 8e21af0a63)

Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
2026-06-19 08:37:40 +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
Mihir Kandoi
c7cc0fec0f fix: resolve v16 BOM backport conflicts 2026-06-16 15:12:06 +05:30
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
Umair Sayed
7d95acabe7 fix(bom): allow zero qty for secondary items (Co-Product, By-Product, Scrap, Additional Finished Good)
Secondary output items in a BOM do not always guarantee output during
manufacture. The actual qty is only known when manufacturing completes,
so setting zero in the BOM is a valid way to express "output is
non-deterministic".

Changes:
- Remove `reqd: 1` from the qty field in BOM Secondary Item so that 0
  is accepted as an explicit value (non_negative constraint is kept, so
  negative values are still rejected).
- Relax validate_secondary_items() in bom.py to only reject qty that is
  None/missing, not qty that is explicitly 0.
- Add a qty event handler in bom.js that shows a blue informational
  alert when the user sets qty to 0, explaining that the actual output
  will be recorded at manufacture time.

Fixes https://github.com/frappe/erpnext/issues/55401

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 6771daf6a1)

# Conflicts:
#	erpnext/manufacturing/doctype/bom/bom.py
2026-06-16 09:36:17 +00:00
ruthra kumar
0326793355 Merge pull request #55962 from frappe/mergify/bp/version-16-hotfix/pr-53152
fix: prevent exchange rate flow from transaction to payment (backport #53152)
2026-06-16 14:23:44 +05:30
ruthra kumar
3753425d34 Merge pull request #55955 from frappe/mergify/bp/version-16-hotfix/pr-55934
fix(budget): add root_type filter on account field (backport #55934)
2026-06-16 14:09:58 +05:30
ervishnucs
7900239c96 test: resolve failed testcases for exchage rate
(cherry picked from commit 3b5a203d61)
2026-06-16 08:33:48 +00:00
ervishnucs
d7de07bfd4 fix: prevent exchange rate flow from transaction to payment
(cherry picked from commit 934abe5c6d)
2026-06-16 08:33:48 +00:00
ruthra kumar
8693834802 Merge pull request #55959 from frappe/mergify/bp/version-16-hotfix/pr-55949
refactor(test): speed up item wise inventory test (backport #55949)
2026-06-16 12:54:04 +05:30
ruthra kumar
1526e29868 Merge pull request #55958 from frappe/mergify/bp/version-16-hotfix/pr-55948
refactor(test): faster transaction deletion record tests (backport #55948)
2026-06-16 12:39:22 +05:30
ruthra kumar
2c482ff4c9 refactor(test): speed up item wise inventory test
(cherry picked from commit 627f2058b5)
2026-06-16 07:00:51 +00:00
ruthra kumar
2a43df8233 refactor(test): dont create master data in setUp
(cherry picked from commit 8db4d2705a)
2026-06-16 06:48:59 +00:00
ruthra kumar
97d86da5a1 Merge pull request #55953 from frappe/mergify/bp/version-16-hotfix/pr-55929
ci: optimize install helper setup (backport #55929)
2026-06-16 12:09:18 +05:30
Shllokkk
0906737bd3 fix(budget): add root_type filter on account field (#55934)
(cherry picked from commit 52b406f5f1)
2026-06-16 06:17:46 +00:00
Mihir Kandoi
d367a0b518 ci: optimize install helper setup
Cc: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit a3e3e1b32c)
2026-06-16 06:10:40 +00:00
Lakshit Jain
545d052b4e fix: remove duplicate field (#55941) 2026-06-16 11:14:19 +05:30
mergify[bot]
35e5df7bfd chore: update frappe-react-sdk (backport #54811) (#55927) 2026-06-16 11:10:32 +05:30
mergify[bot]
f3e23d4e6f fix: fiscal year check on validation (backport #55930) (#55938)
fix: fiscal year check on validation (#55930)

(cherry picked from commit 380b005659)

# Conflicts:
#	erpnext/controllers/accounts_controller.py

Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com>
2026-06-16 05:23:51 +00:00