Commit Graph

59008 Commits

Author SHA1 Message Date
ervishnucs
633ebb41ac chore: resolve backport conflicts for #58430 2026-08-27 15:30:24 +05:30
Vishnu Priya Baskaran
fdfea19121 fix/payment-request-subscription-plans-population (#57494)
* fix(payment-request): populate subscription plans

* test: add coverage for subscription plans in payment request

---------

Co-authored-by: Dharanidharan2813 <dharanidharans1328@gmail.com>
(cherry picked from commit 1b81db4754)

# Conflicts:
#	erpnext/accounts/doctype/payment_request/payment_request.py
#	erpnext/accounts/doctype/payment_request/test_payment_request.py
2026-08-26 07:36:35 +00:00
Sudharsanan Ashok
2cd865fffc Merge pull request #58405 from aerele/fix/pick-list-transfer-qty-lost-v16
fix(stock): keep pick list links when refetching stock entry items (backport #58374)
2026-08-26 12:45:46 +05:30
Sudharsanan Ashok
e32a8f008e Merge pull request #58422 from frappe/mergify/bp/version-16-hotfix/pr-58168
fix: correct is_frozen description on customer and supplier (backport #58168)
2026-08-26 12:39:35 +05:30
Pandiyan P
9e00888d67 fix: correct is_frozen description on customer and supplier (#58168)
(cherry picked from commit cc60c80e68)

# Conflicts:
#	erpnext/buying/doctype/supplier/supplier.json
#	erpnext/selling/doctype/customer/customer.json
2026-08-26 12:08:14 +05:30
Sudharsanan Ashok
5b92dff1df Merge pull request #58419 from frappe/mergify/bp/version-16-hotfix/pr-58394
fix(stock): validate serial inventory dimensions (backport #58394)
2026-08-26 11:51:09 +05:30
Pandiyan P
a1aabaff18 fix(stock): validate serial inventory dimensions (#58394)
* fix(stock): validate serial inventory dimensions

* test(stock): cover serial inventory dimensions

(cherry picked from commit c940bd1e66)

# Conflicts:
#	erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
2026-08-26 11:37:57 +05:30
Khushi Rawat
1a3e02ee5b Merge pull request #58414 from frappe/mergify/bp/version-16-hotfix/pr-58412
fix(accounts): prevent child table doctypes as accounting dimensions (backport #58412)
2026-08-26 11:35:41 +05:30
khushi8112
abf311e8ca fix(accounts): guard get_gl_dict for v16 and drop unused base_gl_composer 2026-08-26 11:05:19 +05:30
khushi8112
fe98974cb6 test(accounts): cover single doctype and non-scalar dimension safeguards
(cherry picked from commit 55dd11f977)
2026-08-25 19:18:25 +00:00
khushi8112
6dbaa5048e fix(accounts): prevent child table doctypes as accounting dimensions
(cherry picked from commit 7b32d07d1c)

# Conflicts:
#	erpnext/accounts/services/base_gl_composer.py
2026-08-25 19:18:24 +00:00
Shllokkk
7238ecb306 Merge pull request #58407 from frappe/mergify/bp/version-16-hotfix/pr-58400
fix: send auto reorder email to all managers in single company setup (backport #58400)
2026-08-25 18:30:12 +05:30
Shllokkk
97b2e07d5e test: auto reorder email reaches managers without company user permission
(cherry picked from commit a01cc92184)
2026-08-25 12:08:44 +00:00
Shllokkk
ac1c6921da fix: send auto reorder email to all managers in single company setup
(cherry picked from commit ae119b1c29)
2026-08-25 12:08:43 +00:00
Sudharsanan11
01e0844d40 fix(stock): keep pick list links when refetching stock entry items 2026-08-25 17:05:23 +05:30
Sudharsanan Ashok
c9550023f8 Merge pull request #58399 from frappe/mergify/bp/version-16-hotfix/pr-58395
fix: respect zero currency precision (backport #58395)
2026-08-25 16:45:34 +05:30
Pandiyan P
6b61146d2f fix: respect zero currency precision (#58395)
(cherry picked from commit ce23fcc055)
2026-08-25 10:06:39 +00:00
Sudharsanan Ashok
9209912374 Merge pull request #58353 from frappe/mergify/bp/version-16-hotfix/pr-58179
fix(accounts): supplier group filter not applied on accounts payable … (backport #58179)
2026-08-25 13:04:52 +05:30
Sudharsanan Ashok
f1181fa1e3 Merge pull request #58391 from frappe/mergify/bp/version-16-hotfix/pr-58362
fix(stock): reset bin when no stock ledger entries remain (backport #58362)
2026-08-25 12:46:31 +05:30
Sudharsanan Ashok
37a1fd11e9 fix(stock): reset bin when no stock ledger entries remain (#58362)
* fix(stock): reset bin when no stock ledger entries remain

update_bin() only writes bins reachable through prev_sle_dict, and that
dict is empty once the last live sle for an item and warehouse is
cancelled or deleted. actual_qty is still recomputed, but stock_value
and valuation_rate stay stale and a repost cannot heal them, so bin
totals drift permanently from the stock balance.

zero those bins after the normal update, guarded by a re-check that no
live sle exists. also drop the prev_sle_dict seeding added earlier in
initialize_previous_data, which never took effect because
initialize_reposting() discards the dict before update_bin() reads it.

* test(stock): cover bin reset when ledger is empty

three cases that all leave an item and warehouse with no live sle:
cancelling the only voucher, deleting it with delete_linked_ledger_entries
on, and reposting over an already emptied ledger. each asserts actual_qty,
valuation_rate and stock_value are all zero.

(cherry picked from commit 6fbcfade6c)
2026-08-25 06:10:18 +00:00
Sudharsanan Ashok
f71bc4d3ef Merge pull request #58384 from aerele/backport-58377-version-16-hotfix
fix: prevent duplicate supplier quotations from portal (backport #58377)
2026-08-25 11:12:10 +05:30
pandiyan
efe5571ca7 test: verify duplicate supplier quotations are rejected 2026-08-24 23:57:59 +05:30
pandiyan
39e15c7b2d fix: prevent duplicate supplier quotations from portal 2026-08-24 23:57:59 +05:30
mergify[bot]
2329ef6424 fix: hide supplier name in rfq portal (backport #58373) (#58376)
Co-authored-by: Pandiyan P <pandiyanpalani37@gmail.com>
2026-08-24 12:11:31 +00:00
mergify[bot]
83cc51a5d2 Fix/return qty validation different uom (backport #58298) (#58364)
Co-authored-by: Vishnu Priya Baskaran <145791817+ervishnucs@users.noreply.github.com>
Co-authored-by: Afsal Syed <afsalsyed12@gmail.com>
2026-08-24 17:39:41 +05:30
mergify[bot]
feb51a475a fix(italy): handle none price_list_rate in e-invoice xml generation (backport #58242) (#58370)
Co-authored-by: Vishnu Priya Baskaran <145791817+ervishnucs@users.noreply.github.com>
2026-08-24 17:39:16 +05:30
mergify[bot]
5933476778 fix: filter available batch report by company (backport #57995) (#58077)
Co-authored-by: Krishna Shirsath <shirsathkrishna19@gmail.com>
2026-08-24 11:19:45 +00:00
Sudharsanan Ashok
fb9edb3bf8 Merge pull request #58361 from frappe/mergify/bp/version-16-hotfix/pr-58358
fix: render missing terms before printing (backport #58358)
2026-08-24 16:37:06 +05:30
Sudharsanan Ashok
9d9d9f09fd Merge pull request #58372 from frappe/mergify/bp/version-16-hotfix/pr-58368
fix: hide rfq status in supplier portal (backport #58368)
2026-08-24 16:36:08 +05:30
Pandiyan P
8a2109e62a fix: hide rfq status in supplier portal (#58368)
(cherry picked from commit 75d6183bb6)
2026-08-24 11:00:24 +00:00
mergify[bot]
abe4c0a6b7 fix: aggregate child warehouses in Stock Qty vs Serial No Count report (backport #58134) (#58366)
Co-authored-by: Mohd Haris <haris@frappe.io>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-24 10:24:40 +00:00
Pandiyan P
f56cdac45f fix: render missing terms before printing (#58358)
(cherry picked from commit 59d80b29c4)
2026-08-24 09:24:08 +00:00
mergify[bot]
0bf34c054a fix: include time logs ending at midnight in timesheet billing summary (backport #58355) (#58357)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-24 14:46:46 +05:30
ervishnucs
d23b9197d5 fix(accounts): supplier group filter not applied on accounts payable report
(cherry picked from commit 513f19924d)
2026-08-24 07:09:12 +00:00
mergify[bot]
8dbe4bd7fa ci: bump po-review-action (backport #58346) (#58348)
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2026-08-23 18:22:37 +00:00
MochaMind
d321eb4a8a chore: update POT file (#58344) 2026-08-23 13:33:34 +02:00
Mihir Kandoi
a1520d06ee chore: rename type field to secondary_item_type (backport #55469) (#58342) 2026-08-23 14:07:59 +05:30
mergify[bot]
647c93321b fix(projects): respect permissions in timesheet billing summary (backport #58320) (#58322)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-20 15:48:55 +05:30
mergify[bot]
2077e844d4 fix: correct to and from date filters in timesheet billing summary re… (backport #58317) (#58318)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-20 11:13:42 +05:30
mergify[bot]
c3313f5b34 fix: stop doubling totals in timesheet billing summary (backport #58311) (#58315)
Co-authored-by: Pandiyan P <pandiyanpalani37@gmail.com>
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-20 03:03:06 +00:00
Pandiyan P
dfc2301f08 fix: skip covered rows when ordering from the mrp report (#58249) (#58312) 2026-08-20 07:43:16 +05:30
mergify[bot]
53b61e5ac6 fix(stock): preserve item UOM conversion factor (backport #58299) (#58304)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-19 12:01:42 +00:00
mergify[bot]
a3a6efbcea fix: keep Currency and Price List section open for foreign currency (backport #58074) (#58113)
* fix: keep Currency and Price List section open for foreign currency (#58074)

The section is marked collapsible with no condition, so it always
rendered collapsed. When the transaction currency differs from the
company currency the exchange rate is relevant and was hidden behind
a click.

Adds collapsible_depends_on so the section starts expanded whenever
the transaction currency differs from the company currency, and stays
collapsed otherwise.

(cherry picked from commit 4a8342496e)

# Conflicts:
#	erpnext/accounts/doctype/pos_invoice/pos_invoice.json
#	erpnext/accounts/doctype/sales_invoice/sales_invoice.json
#	erpnext/stock/doctype/delivery_note/delivery_note.json

* fix: resolve unresolved cherry-pick conflict markers in modified timestamps

Mergify's automatic cherry-pick of #58074 left conflict markers
committed on the modified field, breaking JSON parsing.

---------

Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com>
Co-authored-by: Jatin3128 <jatinsarna8@gmail.com>
2026-08-19 16:59:07 +05:30
mergify[bot]
9f99ba6ddc fix: block disabled/frozen party on Opportunity and Request for Quotation (backport #57983) (#58035)
* fix: block disabled/frozen customers on Opportunity

Opportunity inherits TransactionBase instead of AccountsController, so
it never ran validate_party_frozen_disabled like Quotation, Sales Order
and Sales Invoice do. A disabled Customer could be saved as an
Opportunity's party and only get caught later at Quotation stage.

Also fixes the party_name Link query on the client: it referenced
erpnext.queries.customer, which was never defined, so disabled
customers showed up in the picker.

(cherry picked from commit 90937ce6d9)

* fix: block disabled/frozen suppliers on Request for Quotation

Request for Quotation overrides validate() entirely and never calls
super().validate(), so it never goes through AccountsController's
party validation. Suppliers also sit in a child table, so the shared
PartyValidator wouldn't have caught it anyway (it only checks a single
top-level party field). A disabled or frozen Supplier could be added
to an RFQ and the RFQ submitted without any warning.

Also filters the suppliers grid's supplier Link field to disabled=0,
matching the same client-side fix applied to Opportunity's party_name.

(cherry picked from commit 4bf65ffc1d)

# Conflicts:
#	erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
#	erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py

* fix: scope Opportunity party validation to Customer only

validate_party_frozen_disabled only enforces Customer/Supplier/Employee,
so passing opportunity_from straight through silently no-op'd for Lead
and Prospect. Made the Customer-only scope explicit instead of relying
on that implicit fallthrough.

Lead.disabled is not enforced anywhere else in the codebase (lead_query,
the picker used for this same field, only filters status/docstatus), so
deliberately not extending validation to Lead-sourced Opportunities.

(cherry picked from commit 8c0a945417)

* refactor: move RFQ supplier disabled filter to link_filters

Static filters with no doc-dependent values belong on the field
definition, not in JS. Matches the existing pattern used for
Warehouse/Item link_filters elsewhere (e.g. job_card_item.json,
product_bundle_item.json).

(cherry picked from commit 6b35c51ff1)

* fix: resolve backport conflicts for disabled/frozen party validation

The automated backport left unresolved merge conflict markers committed
in request_for_quotation.py and test_request_for_quotation.py.

Dropped test_duplicate_supplier_rejected, test_rfq_blocked_for_supplier_with_prevent_rfqs
and test_rfq_status_lifecycle from the conflict resolution, they don't exist on
this branch and aren't part of this backport.

---------

Co-authored-by: Jatin3128 <jatinsarna8@gmail.com>
2026-08-19 16:57:42 +05:30
mergify[bot]
1f21c0b0af fix(stock): fetch item stock UOM in stock reconciliation (backport #58284) (#58291)
Co-authored-by: Sudharsanan Ashok <135326972+Sudharsanan11@users.noreply.github.com>
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-19 10:09:44 +00:00
Khushi Rawat
f813774f63 Merge pull request #57771 from frappe/mergify/bp/version-16-hotfix/pr-57539
fix: prevent TimestampMismatchError resolving Dunning with multiple overdue installments (backport #57539)
2026-08-19 15:05:36 +05:30
mergify[bot]
98d69b2ae3 fix: Ignore permission while deleting user permission (backport #57296) (#57760)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2026-08-19 14:49:33 +05:30
mergify[bot]
29f6a5b9cf fix(selling): read overdue amount from payment ledger, not gl tags (backport #57786) (#58026)
Co-authored-by: Sudharsanan Ashok <135326972+Sudharsanan11@users.noreply.github.com>
2026-08-19 14:41:47 +05:30
mergify[bot]
edb9b33264 fix: new docs should refetch incoming rates (backport #58097) (#58295)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-19 07:19:06 +00:00
mergify[bot]
94b6622d9d fix: use user data fields hook (backport #58274) (#58283)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-19 10:25:55 +05:30