Commit Graph

58038 Commits

Author SHA1 Message Date
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
MochaMind
200e1b6fe4 chore: sync translations to version-16-hotfix (#55937) 2026-06-15 21:13:19 +05:30
Sudharsanan Ashok
0bc611b586 Merge pull request #55940 from frappe/mergify/bp/version-16-hotfix/pr-55928
fix(stock): update stock value calculation in stock balance report (backport #55928)
2026-06-15 19:28:00 +05:30
Sudharsanan11
00794e0815 fix(stock): update stock value calculation in stock balance report
(cherry picked from commit 2492dfa558)
2026-06-15 12:41:10 +00:00
rohitwaghchaure
7e31256cfc Merge pull request #55933 from frappe/mergify/bp/version-16-hotfix/pr-55926
fix: recalculate incoming rate in SLE for purchase documents during repost (backport #55926)
2026-06-15 18:05:35 +05:30
Rohit Waghchaure
d3cc684899 fix: recalculate incoming rate in SLE for purchase documents during repost
(cherry picked from commit 867ee484b9)
2026-06-15 11:34:36 +00:00
Diptanil Saha
3fca2fc616 Merge pull request #55919 from frappe/mergify/bp/version-16-hotfix/pr-55755
feat(currency exchange settings): frankfurter v2 support (backport #55755)
2026-06-15 17:03:28 +05:30
mergify[bot]
67cc59c5ca feat: new banking module (backport #54720) (#55917)
* feat: new banking module (#54720)

* feat: initial SPA setup for banking

* wip: bring over new banking module

* feat: added Espresso design tokens

* feat: button styles

* fix: add all ink colors

* wip: espresso design system changes

* feat: button and badge espresso components

* fix: button styling for reconcile

* feat: Espresso progress bar

* feat: Espresso toggle switch

* feat: Espresso tabs design

* fix: vertical tab support

* fix: button sizing across modals

* feat: Espresso style table layout

* feat: Espresso tooltip

* feat: Espresso elevations and checkbox

* feat: Dialog with Espresso styles

* feat: Espresso textarea

* fix: input styles

* fix: colors on bank picker

* fix: breadcrumb styling

* fix: bank picker styling

* feat: create doctypes and fields for bank reconciliation

* feat: APIs for banking

* fix: use date format parser

* fix: font styling to match Espresso

* wip: settings modal

* feat: settings dialog component

* fix: icons and invalid requests

* feat: preferences tab

* fix: adjust icon stroke width to 1.5

* feat: rule configuration in settings

* fix: remove sheet component

* feat: alert and error banner component

* feat: dropdown in Espresso

* feat: popover and select in Espresso

* fix: cleanup more styles

* fix: match size of link fields

* feat: command styling

* fix: remove unused style tokens

* fix: styles for global date picker dropdown

* fix: styles for match and reconcile

* feat: table Espresso component

* feat: remove all other design tokens

* fix: remove unused tokens

* fix: form elements

* fix: remove unused styles and fix filters in bank transaction list

* feat: fetch bank rec doctypes for filtering

* fix: record payment modal

* feat: support for dark mode switching

* fix: move bank logos to public folder

* feat: add support for RTL

* feat: support for RTL

* chore: send layout direction in dev boot

* fix: make checkbox work in RTL

* feat: dark mode support

* fix: dark mode style

* feat: bank logos in dark mode

* feat: dark mode bank logos

* chore: use dark mode bank logos everywhere

* chore: move rule evaluation to controller

* chore: add tests for bank transaction rules

* fix: move deps to fix actions errors

* fix: move tw-animate-css to deps

* fix: remove shadcn

* fix: do not open modal if no transactions selected

* fix: add translation strings

* feat: add banner on existing bank reconciliation tool

* feat: bank statement import

* fix: translations and layout directions

* fix: validation for transaction matching rule

* fix: styles

* fix: show conflicting transactions in alert

* fix: show help text for new banking module forms

* feat: show total debits and credits

* fix: dark mode colors in automatic config

* feat: add keyboard shortcuts help

* feat: added keyboard shortcut for settings

* fix: decrease size of progress bar

* chore: bump packages

* feat: add tests for statement import

* fix: settings dialog

* fix: show banner on small screens

* fix: show banner when no bank account set

(cherry picked from commit 6de5367f12)

# Conflicts:
#	erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py

* chore: resolve conflicts

* fix: add type hints to whitelisted methods

---------

Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
2026-06-15 16:31:22 +05:30
diptanilsaha
2606d660af fix(get_exchange_rate): using get_single_value to fetch disabled value from currency_exchange_settings
(cherry picked from commit abb579e2db)
2026-06-15 08:53:37 +00:00
diptanilsaha
79fd176a8e fix: restricting currency_exchange_settings write permission only to system manager
(cherry picked from commit 0c2d5488a6)
2026-06-15 08:53:36 +00:00
diptanilsaha
6f25d915c7 test: fixed currency exchange test for frankfurter v2 api
(cherry picked from commit 138f683a68)
2026-06-15 08:53:36 +00:00
diptanilsaha
471ab662f6 fix: use frankfurter v2 by default for new install
(cherry picked from commit 479f9f63c9)
2026-06-15 08:53:36 +00:00
diptanilsaha
e804bf33ba feat(currency exchange settings): frankfurter v2 support
(cherry picked from commit 56bfe6b6a6)
2026-06-15 08:53:35 +00:00