Commit Graph

58018 Commits

Author SHA1 Message Date
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
Ejaaz Khan
74da0bebae Merge pull request #55891 from frappe/mergify/bp/version-16-hotfix/pr-53949
feat: sticky columns in reports (backport #53949)
2026-06-15 13:00:39 +05:30
Mihir Kandoi
03ba4821d2 Merge pull request #55908 from frappe/mergify/bp/version-16-hotfix/pr-55906
fix: show company name in delete transactions confirmation dialog (backport #55906)
2026-06-15 11:00:45 +05:30
Raghav Ruia
6a3c973b0f fix: show company name in delete transactions confirmation dialog
Display the actual company name in bold within the confirmation dialog
label so users immediately know which company they must type to confirm,
reducing the risk of accidental data loss.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 87d26a2d67)
2026-06-15 04:20:40 +00:00
rohitwaghchaure
e59c0e5c33 Merge pull request #55902 from rohitwaghchaure/regression-security-fixes-v16-hotfix
fix: regression issues related to security fixes
2026-06-15 00:11:02 +05:30
Rohit Waghchaure
ede13cb3bd refactor: consolidate duplicate get_party_bank_account into bank_account.py 2026-06-14 23:52:06 +05:30
Rohit Waghchaure
be1aa0e5eb fix: regression issues related to security fixes 2026-06-14 23:41:59 +05:30
MochaMind
70bb23d65b chore: update POT file (#55893) 2026-06-14 13:09:56 +02:00
Ejaaz Khan
bcd38c17d6 fix: semgrep translation issue
(cherry picked from commit df753676c6)
2026-06-14 08:39:09 +00:00
Ejaaz Khan
331715815c feat: sticky columns in reports
Co-authored-by: diptanilsaha <diptanil@frappe.io>
(cherry picked from commit 03e4df7a1a)
2026-06-14 08:39:09 +00:00
rohitwaghchaure
5961020ef3 Merge pull request #55888 from frappe/mergify/bp/version-16-hotfix/pr-55877
feat: Allow to edit stock UOM qty for Stock Entry (backport #55877)
2026-06-14 10:12:50 +05:30
Rohit Waghchaure
ece43bd79b feat: Allow to edit stock UOM qty for Stock Entry
(cherry picked from commit b0e9ad198f)
2026-06-14 04:25:06 +00:00
mergify[bot]
d69464ebdf ci: set disabledLabels and context for greptile (backport #55883) (#55885)
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2026-06-13 19:06:13 +00:00
mergify[bot]
0b03f18a39 fix(Lead): stop storing Gravatar image URLs for Leads (backport #55880) (#55882)
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
fix(Lead): stop storing Gravatar image URLs for Leads (#55880)
2026-06-13 18:24:32 +00:00
Mihir Kandoi
b9e0c8ece8 Merge pull request #55879 from frappe/mergify/bp/version-16-hotfix/pr-55868
feat(invoices): add tooltip description to Update Stock checkbox (backport #55868)
2026-06-13 23:27:23 +05:30
Dipen Gala
12be63229a feat(invoices): add tooltip description to Update Stock checkbox (#55868)
* feat(invoices): add tooltip description to Update Stock checkbox

Adds a description below the Update Stock checkbox on both Sales Invoice
and Purchase Invoice so users understand when to use the field without
consulting documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(invoices): replace Update Stock description with hover info tooltip

Removes the inline description text and adds an ℹ icon next to the
Update Stock checkbox label on both Sales Invoice and Purchase Invoice.
Hovering the icon shows the contextual tooltip via Bootstrap tooltip.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(invoices): use Frappe native tooltip-content class for Update Stock icon

Replace Bootstrap .tooltip() (pure black bg) with Frappe's own
.tooltip-content CSS class so the hover tooltip matches the rest of
the ERPNext UI — uses var(--bg-dark-gray) and var(--text-dark).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(invoices): use frappe.ui.SidebarCard for Update Stock info tooltip

Replace custom CSS tooltip with the same SidebarCard + Popper approach
Frappe's InfoCard uses for field description tooltips — gives the native
ERPNext card appearance (white card, border, shadow) on hover.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(invoices): use built-in field description for Update Stock tooltip

Replace custom SidebarCard JS tooltip with Frappe's native
description + show_description_on_click field property on the
update_stock field in Sales Invoice and Purchase Invoice.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: remove duplicate description in purchase_invoice update_stock field

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* revert: restore custom tooltip in purchase_invoice.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* revert: remove all changes from purchase_invoice.js

Keep purchase_invoice.js identical to upstream develop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit a9029f83c7)
2026-06-13 15:19:31 +00:00
rohitwaghchaure
957d69e57b Merge pull request #55876 from frappe/mergify/bp/version-16-hotfix/pr-55874
fix: permission in bom compare tool (backport #55874)
2026-06-13 19:40:22 +05:30
Rohit Waghchaure
c3b66bce1e fix: permission in bom compare tool
(cherry picked from commit e6fdb3702a)
2026-06-13 13:41:16 +00:00
rohitwaghchaure
c92cae8003 Merge pull request #55872 from rohitwaghchaure/fixed-permissions-for-whitelist-functions-v16
fix: pemission for whitelist functions
2026-06-13 18:14:36 +05:30
Rohit Waghchaure
dd56e80512 fix: pemission for whitelist functions 2026-06-13 17:54:59 +05:30
mergify[bot]
85e6b8d27b fix: opportunity creation from contact us page (backport #55841) (#55867)
* fix: opportunity creation from contact us page (#55841)

(cherry picked from commit c933e34914)

# Conflicts:
#	erpnext/templates/utils.py

* chore: resolve conflicts

---------

Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-06-13 09:04:23 +00:00