Commit Graph

58971 Commits

Author SHA1 Message Date
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
mergify[bot]
d3573105c4 fix: escape interpolated values in text positions across portal and desk templates (backport #58286) (#58288) 2026-08-19 02:43:18 +05:30
mergify[bot]
9e2173e4c2 fix: escape on status image for workstations in production status (backport #58279) (#58281)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-19 00:17:17 +05:30
mergify[bot]
6b7b4796b4 fix: escape interpolated values in portal, print and desk templates (backport #58273) (#58278)
Co-authored-by: diptanilsaha <diptanil@frappe.io>
2026-08-19 00:16:52 +05:30
rohitwaghchaure
27a04d8e08 fix: work order finish dialog with process loss qty from job card (backport #58256) (#58262)
* fix(manufacturing): cap job card completed qty by previous operation and show process loss on finish dialog

* fix: avoid double booking process loss on partial manufacture entries
2026-08-18 09:47:32 +00:00
mergify[bot]
9b0db26c25 fix(accounts): match returns to source invoice items (backport #58250) (#58264)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-18 09:08:31 +00:00
mergify[bot]
a62a949b2a fix(accounts): allocate drop-ship cost by invoice quantity (backport #58226) (#58263)
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
2026-08-18 08:41:58 +00:00
rohitwaghchaure
dd4d10862d fix: don't set work order status to In Process only due to skip material transfer (#58245) 2026-08-17 18:28:46 +05:30
Pandiyan P
861fb26b2c fix(manufacturing): fall back to item group defaults for work order w… (#58237) 2026-08-17 15:26:15 +05:30
mergify[bot]
56ac87292f fix: correct Item Group doctype name in item tax template dashboard (backport #58192) (#58213)
Co-authored-by: Pandiyan P <pandiyanpalani37@gmail.com>
2026-08-17 10:52:42 +05:30
mergify[bot]
81461ea56c fix(bank_statement_import): add missing permission check on multiple whitelisted methods (backport #58221) (#58224)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-16 18:03:24 +00:00
mergify[bot]
2b685ed982 fix(bank_statement_import): add missing permission check on get_import_status (backport #58217) (#58219)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-16 15:04:21 +00:00
mergify[bot]
6a0b9e1c70 fix(crm)!: remove unused get_last_interaction endpoint (backport #58214) (#58216)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-16 14:16:29 +00:00
MochaMind
28fe021d79 chore: update POT file (#58207) 2026-08-16 18:03:26 +05:30
mergify[bot]
c3cf7f2e91 fix: drop removed Restaurant doctype from sales tax template dashboard (backport #58191) (#58211) 2026-08-16 17:28:32 +05:30
Shllokkk
832a0bd1ed Merge pull request #58208 from Shllokkk/supplier-quotation-comparison-status-filter-v16
feat: add status filter to Supplier Quotation Comparison report
2026-08-16 15:52:17 +05:30
Shllokkk
2b84ed78e8 feat: add status filter to Supplier Quotation Comparison report 2026-08-16 15:34:10 +05:30
mergify[bot]
32ebd69abc fix(email_digest): added permission check for get_msg_html (backport #58197) (#58200)
Co-authored-by: diptanilsaha <diptanil@frappe.io>
2026-08-15 16:40:09 +00:00
mergify[bot]
900064e395 feat: validate purchase receipt exchange rate parity on purchase invoice (backport #58177) (#58190)
feat: validate purchase receipt exchange rate parity on purchase invoice (#58177)

(cherry picked from commit 70a8a2d0c5)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-08-15 15:20:17 +05:30
mergify[bot]
d805f4d3fc feat: Belgian Charts of Accounts (commercial + non-profit, FR + NL) (backport #54679) (#58186)
Co-authored-by: Antoine Maas <antoine.maas@okte.io>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-14 16:57:25 +00:00
mergify[bot]
d3a4d476eb fix(stock): honour pick serial / batch based on in the batch selector (backport #58176) (#58182)
Co-authored-by: Sudharsanan Ashok <135326972+Sudharsanan11@users.noreply.github.com>
2026-08-14 13:58:07 +00:00
mergify[bot]
4bb7799919 fix: rewriting the description of the overdue billing checkbox (backport #58172) (#58174)
fix: rewriting the description of the overdue billing checkbox (#58172)

fix: rewritting the description of the overdue billing checkbox
(cherry picked from commit cbf8f61101)

Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com>
2026-08-14 17:43:14 +05:30
Nishka Gosalia
c15d5d1a0b Merge pull request #58171 from frappe/mergify/bp/version-16-hotfix/pr-58167
fix: validation for task end date check (backport #58167)
2026-08-14 16:36:33 +05:30
nishkagosalia
7b0df4b28b fix: validation for task end date check
(cherry picked from commit 7c6da80f98)
2026-08-14 10:53:06 +00:00
mergify[bot]
1ea1d5d6a5 fix: renaming the overdue billing checkbox (backport #58165) (#58166)
fix: renaming the overdue billing checkbox (#58165)

(cherry picked from commit 917badb82b)

Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com>
2026-08-14 16:05:22 +05:30
Smit Vora
aa03ddc8e6 Merge pull request #58161 from frappe/mergify/bp/version-16-hotfix/pr-56175
feat: taxable-base resolver hook for custom charge types (backport #56175)
2026-08-14 15:16:39 +05:30
Mihir Kandoi
0255314ea7 fix: get items from sales order in sales invoice (#58163) 2026-08-14 09:20:10 +00:00
mergify[bot]
f8c3270049 feat(accounts): opt-in 'Consider Accounting Dimension' filter on General Ledger Report (backport #58156) (#58158) 2026-08-14 08:25:09 +00:00
Smit Vora
ea238a90ac feat: taxable-base resolver hook for custom charge types (#56175)
(cherry picked from commit 986cea2331)
2026-08-14 08:19:48 +00:00
Khushi Rawat
f03b7ba40b Merge pull request #58155 from frappe/mergify/bp/version-16-hotfix/pr-58092
fix(accounts): disallow reversing a reverse journal entry (backport #58092)
2026-08-14 13:20:43 +05:30
pandiyan
8a26834704 fix(accounts): disallow reversing a reverse journal entry
check read permission on the source entry before the guards run, so the
reversal relationship is not disclosed to a user who cannot read it.

(cherry picked from commit 9dd37d5f32)
2026-08-14 11:37:06 +05:30
pandiyan
271d22fff1 test(accounts): cover reversal of a reverse journal entry
also assert that a user without read access on the entry gets a permission error instead of the reversal relationship.

(cherry picked from commit 80422d2108)
2026-08-14 06:01:39 +00:00
mergify[bot]
c18881b37d fix: ignore historical negative batch stock in outward validation (backport #58148) (#58151)
fix: ignore historical negative batch stock in outward validation (#58148)

(cherry picked from commit 9239d1c2a3)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2026-08-14 11:18:50 +05:30
Pandiyan P
61b549960e fix(buying): allow purchase returns against a closed purchase order (#58139) 2026-08-14 09:00:55 +05:30
Diptanil Saha
ea52ab36d1 Merge pull request #58143 from frappe/mergify/bp/version-16-hotfix/pr-58141
fix(crm_settings): create `crm_deal` fields on enabling frappe crm data synchronization (backport #58141)
2026-08-13 23:20:41 +05:30
diptanilsaha
d66dc143e3 fix: patch to delete the crm_deal custom fields
(cherry picked from commit 9613d72d81)
2026-08-13 17:40:12 +00:00
diptanilsaha
795cf8544c fix(crm_settings): create custom fields for Frappe CRM on enabling synchronization
(cherry picked from commit be2dea0ba2)
2026-08-13 17:40:12 +00:00
mergify[bot]
4f3ffd3820 fix(stock): confirm before changing item qty from the batch selector (backport #58123) (#58125) 2026-08-13 19:37:31 +05:30