Commit Graph

59119 Commits

Author SHA1 Message Date
Mihir Kandoi
f6dbb3131d fix(manufacturing): apply MOQ once across Production Plan rows (v16) (#58831) 2026-09-08 04:11:27 +00:00
Mihir Kandoi
4719ad9b91 fix(manufacturing): apply safety stock once across Production Plan rows (v16) (#58832) 2026-09-08 04:11:24 +00:00
Mihir Kandoi
e59fb396e5 fix(manufacturing): share transfer stock across Production Plan rows (v16) (#58834) 2026-09-08 09:29:46 +05:30
Mihir Kandoi
a7c5ab89e8 fix(manufacturing): sum consolidated sub-assembly required quantity (v16) (#58833) 2026-09-08 09:29:34 +05:30
mergify[bot]
3cc73e4282 fix(banking): Federal bank dark logo (backport #58844) (#58845)
fix(banking): Federal bank dark logo (#58844)

(cherry picked from commit f2d72f973d)

Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
2026-09-08 04:06:19 +05:30
mergify[bot]
189bd1f39d fix(bank reconciliation): match Payment Entries on the bank-side amount (backport #57740) (#58765)
* fix(bank reconciliation): match Payment Entries on the bank-side amount (#57740)

* fix(bank reconciliation): match Payment Entries on the bank-side amount

get_pe_matching_query() ranked and filtered on pe.paid_amount while the
match card displayed pe.base_paid_amount_after_tax, so the amount used for
the exact match never matched the amount shown.

Both now use the amount that actually hits the bank account, in that
account's currency: received_amount_after_tax when the bank account is
paid_to (deposit) and paid_amount_after_tax when it is paid_from
(withdrawal). This is the same convention as the Bank Reconciliation
Statement report and matches the bank GL entry that reconciliation
allocates against.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(bank reconciliation): cover bank-side amount matching

Two cases the previous behaviour got wrong or could regress on:

- A deposit from an internal transfer where the paid and received sides
  differ by a charge. The match must show, and compare against, the
  amount that reached this bank account.
- A withdrawal, which still matches on the paid side.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 154c6fb943)

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

* fix: conflicts

* fix: add missing import

* chore: linting

---------

Co-authored-by: Hussain Nagaria <34810212+NagariaHussain@users.noreply.github.com>
Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
2026-09-07 15:22:14 +00:00
mergify[bot]
0610708d78 fix(banking): UI cleanup and better statement parsing (backport #58817) (#58824)
fix(banking): UI cleanup and better statement parsing (#58817)

* fix(banking): reset scroll on searching accounts

* fix(banking): show only past dates in date filter

* fix(banking): clean up line heights and remove beta badge

* fix(banking): show accurate count of import progress
fix(banking): show latest 20 imports instead of 10

* fix(banking): layout sizing needs to be preserved on page change

* fix(banking): cleaner bank balance UI

* fix(banking): correctly parse Cr/Dr values in statement importer

* Update banking/src/components/features/BankReconciliation/BankBalance.tsx



---------


(cherry picked from commit ebe5decb96)

Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-09-07 20:31:45 +05:30
Mihir Kandoi
817926ca2e fix(selling): fetch orders within billing allowance (backport #58751) (#58820) 2026-09-07 19:27:15 +05:30
mergify[bot]
fb132225d7 fix: user not able to set valuation rate zero in stock reco (backport #58800) (#58823)
fix: user not able to set valuation rate zero in stock reco (#58800)

* fix: user not able to set valuation rate zero in stock reco

* fix: wrong difference amount when valuation rate is zero

* fix: blank valuation rate should not be treated as a change

(cherry picked from commit e85e300f8f)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-09-07 13:14:16 +00:00
Mihir Kandoi
28f0ac5287 fix: order smallest purchase UOM qty that meets min order qty (backport #57883) (#58813)
* fix: round purchase quantities up to minimum order qty

Backport #57883 to version-16-hotfix. Adapt the purchase quantity conversion to the monolithic Production Plan controller and retain the Purchase Order rounding notice.

Add coverage for the complete Production Plan to Material Request to supplier-selected Purchase Order flow.

* fix(buying): skip rounding notice for mixed UOM increments

Require one shared rounding increment across the Purchase Order rows for each item before attributing the total excess to UOM rounding.

Cover mixed UOMs in both row orders, three mixed rows, and matching UOM rows that still require the notice.
2026-09-07 12:45:39 +00:00
MochaMind
6971c80743 fix: sync translations from crowdin (version-16-hotfix) (#58580)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-09-07 13:09:39 +02:00
Jatin3128
8b51005525 fix(journal-entry): avoid full grid re-render per row in set_exchange_rate (backport #58328) (#58803)
refresh() loops over every row in the accounts child table and calls
set_exchange_rate() for each one. On v16 that function ended with
refresh_field("exchange_rate", cdn, "accounts"), which only takes the
cheap per-field path when the row is currently rendered. For every row
outside the visible page grid_rows_by_docname has no entry, so the
helper falls back to a full grid.refresh(): header, pagination and the
whole current page get rebuilt once per off-screen row.

Use grid.refresh_row(cdn) instead, which re-renders only the row that
actually changed and is a no-op for rows outside the current page. This
also matches what develop does after #58328.

Measured on a 1000-row Journal Entry (v16.local, Chromium): 950 of the
1000 rows triggered a full grid rebuild before, none after. Time to
first rendered row ~5.3s to ~1.7s, time to network-idle ~5.9s to ~2.3s,
and the set_exchange_rate loop itself ~4.7s to ~1.3s.

As a side effect the visible row now stays in sync: previously only the
exchange_rate cell was repainted, so the debit/credit columns that
set_debit_credit_in_company_currency had just recomputed kept showing
stale amounts.

Co-authored-by: jatin3128 <jatinsarna64@gmail.com>
2026-09-07 15:27:02 +05:30
MochaMind
189bfd5a22 chore: update POT file (#58785) 2026-09-06 15:56:20 +02:00
Shllokkk
853ac859ca Merge pull request #58778 from frappe/mergify/bp/version-16-hotfix/pr-58769
fix: restore hover tooltip on Profit and Loss dashboard chart (backport #58769)
2026-09-05 19:39:03 +05:30
Shllokkk
bb26f8f7b9 fix: restore hover tooltip on Profit and Loss dashboard chart
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 9e9c4b8102)
2026-09-05 09:05:14 +00:00
rohitwaghchaure
074f9f0828 fix: check write permission in whitelisted document methods (backport #58689) (#58701)
* fix: check write permission in whitelisted document methods

* test: permission coverage for production plan status roll-ups

* fix: add type hints to whitelisted arguments and submit MR in test
2026-09-05 13:54:20 +05:30
mergify[bot]
31319bd36e fix: resolve code lists by URI and version (backport #58770) (#58772)
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2026-09-04 20:39:23 +02:00
mergify[bot]
8229aeaead fix(banking): find transfers on the same day (backport #58766) (#58767)
fix(banking): find transfers on the same day (#58766)

(cherry picked from commit 04b84ef069)

Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
2026-09-04 20:07:51 +05:30
Shllokkk
d48bb40969 Merge pull request #58691 from frappe/mergify/bp/version-16-hotfix/pr-58684
fix(crm): check read permission on lead in add_lead_to_prospect (backport #58684)
2026-09-04 16:45:00 +05:30
Mihir Kandoi
82392fa747 revert(manufacturing): remove material coverage changes on version 16 (#58716)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-04 14:32:47 +05:30
Sagar Vora
48983c5ef0 Merge pull request #58756 from frappe/mergify/bp/version-16-hotfix/pr-58724
fix: minor improvements to financial report template validation (backport #58724)
2026-09-04 14:22:37 +05:30
Abdeali Chharchhodawala
d23b407ec7 fix: minor improvements to financial report template validation (#58724)
* fix: address review comments on financial report template validation

* refactor: minor fixes

(cherry picked from commit 1b7da82669)
2026-09-04 08:31:55 +00:00
Sudharsanan Ashok
770726d8f5 Merge pull request #58754 from frappe/mergify/bp/version-16-hotfix/pr-58740
fix: check material request price list permission (backport #58740)
2026-09-04 13:07:14 +05:30
Pandiyan P
e5b1ff667d fix: check material request price list permission (#58740)
(cherry picked from commit 0b1f1d6851)
2026-09-04 07:33:18 +00:00
Sudharsanan Ashok
d8236548be Merge pull request #58749 from frappe/mergify/bp/version-16-hotfix/pr-58736
fix(batch): show Expired status only after expiry date has passed (backport #58736)
2026-09-04 13:00:00 +05:30
mergify[bot]
f75601e9b1 fix(timesheet): handle empty allowed projects (backport #58745) (#58746)
Co-authored-by: Krishna Pramod Shirsath <91021227+krishna-254@users.noreply.github.com>
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-04 07:02:33 +00:00
Pandiyan P
0684599bdb fix(batch): show Expired status only after expiry date has passed (#58736)
Co-authored-by: Ajish18 <ajishiyappan1@gmail.com>
(cherry picked from commit 00f04fc084)
2026-09-04 06:51:16 +00:00
mergify[bot]
a1c8dc878d fix(stock): allow creating stock closing balances (backport #58590) (#58685)
* fix(stock): allow creating stock closing balances (#58590)

(cherry picked from commit 2918e98a2b)

# Conflicts:
#	erpnext/stock/doctype/stock_closing_entry/test_stock_closing_entry.py

* chore: fix conflicts

Removed redundant test cases and cleaned up the test structure for StockClosingEntry.

---------

Co-authored-by: Krishna Pramod Shirsath <91021227+krishna-254@users.noreply.github.com>
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-09-03 10:29:34 +00:00
mergify[bot]
dfb64d7635 fix(setup): strict permissions for transaction deletion record (backport #58687) (#58723)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-03 15:07:48 +05:30
mergify[bot]
b0ddca0455 ci: authenticate github clones in install.sh (backport #58718) (#58720)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-03 09:27:42 +00:00
Sagar Vora
5f13a04633 Merge pull request #58704 from frappe/mergify/bp/version-16-hotfix/pr-58697
fix!: improve validation in financial report template (backport #58697)
2026-09-02 17:41:50 +05:30
Sagar Vora
7aad59b129 fix!: improve validation in financial report template 2026-09-02 17:31:36 +05:30
Sagar Vora
7c61dfe3e0 Merge pull request #58487 from frappe/mergify/bp/version-16-hotfix/pr-58425
fix: improve message formatting and translation for validation issues (backport #58425)
2026-09-02 17:24:03 +05:30
mergify[bot]
41374019ba fix: include payment deductions in sales/purchase register ledger bal… (backport #58437) (#58680) 2026-09-02 17:00:42 +05:30
mergify[bot]
d6f9dde3cb fix: filter cancelled BOMs in BOM Stock Analysis (backport #58647) (#58693) 2026-09-02 15:28:17 +05:30
Shllokkk
2cc1a51d9a fix(crm): check read permission on lead in add_lead_to_prospect
(cherry picked from commit 02fcdc0337)

# Conflicts:
#	erpnext/crm/doctype/lead/lead.py
2026-09-02 15:00:56 +05:30
mergify[bot]
3c63fffcb6 fix(accounts): resolve subscription plans for any reference doctype in Payment Request (backport #58438) (#58450)
Co-authored-by: jatin3128 <jatinsarna64@gmail.com>
2026-09-02 12:18:17 +05:30
Sudharsanan Ashok
d3b8324819 Merge pull request #58665 from frappe/mergify/bp/version-16-hotfix/pr-58663
fix(manufacturing): use item warehouses in production plan work orders (backport #58663)
2026-09-02 12:05:04 +05:30
Sudharsanan Ashok
46db04ecf8 Merge pull request #58675 from frappe/mergify/bp/version-16-hotfix/pr-58505
fix(stock): preserve exchange gain loss journals in lcv (backport #58505)
2026-09-02 12:03:51 +05:30
Shllokkk
75356265be Merge pull request #58535 from Shllokkk/mr-rfq-filter-pending-qty-v16
fix: filter fully ordered items when creating RFQ from Material Request
2026-09-02 11:46:07 +05:30
Pandiyan P
124231681a fix(stock): preserve exchange gain loss journals in lcv (#58505)
(cherry picked from commit 2b54a581f8)
2026-09-02 06:15:05 +00:00
mergify[bot]
f22f84a58a fix(crm): validate contact email before saving an email campaign (backport #58667) (#58672)
Co-authored-by: kaulith <64089478+kaulith@users.noreply.github.com>
2026-09-02 11:42:32 +05:30
Shllokkk
5af60cf2e3 test: set schedule date on PO before insert 2026-09-02 11:33:03 +05:30
Shllokkk
4435f166ea fix: add type hints to make_request_for_quotation 2026-09-02 11:33:03 +05:30
Shllokkk
5adcb28b3c test: RFQ from Material Request skips fully ordered items 2026-09-02 11:33:02 +05:30
Shllokkk
9b1d907b6a fix: filter fully ordered items when creating RFQ from Material Request 2026-09-02 11:33:02 +05:30
pandiyan
ec392a7bcf fix(manufacturing): use item warehouses in production plan work orders (#58663)
(cherry picked from commit e74ab38eeb)

# Conflicts:
#	erpnext/manufacturing/doctype/production_plan/services/work_order_planning.py
2026-09-02 10:36:32 +05:30
mergify[bot]
f4ed4cae64 fix(stock): ignore cancelled batch entries in valuation (backport #58659) (#58660)
fix(stock): ignore cancelled batch entries in valuation (#58659)

(cherry picked from commit a9b857bdfe)

# Conflicts:
#	erpnext/stock/serial_batch_bundle.py

Co-authored-by: Pandiyan P <pandiyanpalani37@gmail.com>
2026-09-01 16:08:38 +00:00
mergify[bot]
2b8e12ef44 fix(selling): check sales order permission before work order creation (backport #58492) (#58497)
Co-authored-by: Pandiyan P <pandiyanpalani37@gmail.com>
2026-09-01 21:30:33 +05:30
mergify[bot]
86e9480362 fix: add missing perm checks on various whitelisted methods (backport #58652) (#58654)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-09-01 14:01:40 +00:00