Commit Graph

55823 Commits

Author SHA1 Message Date
Jatin3128
9dffeffab0 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)

# Conflicts:
#	erpnext/crm/doctype/opportunity/test_opportunity.py
2026-08-11 11:02:37 +00:00
Mihir Kandoi
f5e411669a Merge pull request #58022 from frappe/mergify/bp/version-15-hotfix/pr-58020
fix(setup): fetch driver address by supplier link (backport #58020)
2026-08-11 15:31:09 +05:30
Mihir Kandoi
2a4a9fff3d fix(setup): fetch driver address by supplier link
(cherry picked from commit 3ffb888d26)
2026-08-11 09:47:54 +00:00
Mihir Kandoi
5c3063fa43 Merge pull request #58011 from mihir-kandoi/backport-58003-version-15-hotfix
fix(selling): bill re-delivered sales order quantities (backport #58003)
2026-08-11 14:10:29 +05:30
Mihir Kandoi
39e4641a29 Merge pull request #58015 from mihir-kandoi/require-transfer-before-job-card-start-v15
fix: require material transfer before job card time logs (v15)
2026-08-11 14:04:17 +05:30
Mihir Kandoi
ac4e9c34cf chore(selling): annotate make_sales_invoice arguments 2026-08-11 13:49:48 +05:30
Mihir Kandoi
b70fa4fdd1 test: job card time log blocked until material transfer 2026-08-11 13:41:59 +05:30
Mihir Kandoi
2e5ae188d6 fix: require material transfer before job card time logs
v15 adaptation of the develop fix: the timer flow here runs through
add_time_log via make_time_log, so gate that instead of the
start_timer/complete_job_card methods that only exist on develop, and
hide Start Job while transfer is pending. Corrective job cards and
job cards without items (transfer against Work Order) stay exempt,
matching validate_transfer_qty on submit.
2026-08-11 13:41:57 +05:30
Mihir Kandoi
a99b10d213 Merge pull request #58008 from frappe/codex/backport-57963-version-15
fix(manufacturing): correct nested BOM Explorer quantities
2026-08-11 13:34:29 +05:30
Mihir Kandoi
220b25db09 test(selling): cover invoicing after returns and re-deliveries 2026-08-11 13:26:00 +05:30
Mihir Kandoi
47c6274b13 fix(selling): bill re-delivered sales order quantities 2026-08-11 13:25:59 +05:30
Mihir Kandoi
5c2123f6ed fix(manufacturing): avoid child BOM cache lookups 2026-08-11 13:14:49 +05:30
Mihir Kandoi
bb72ae6a3c Merge pull request #58001 from frappe/mergify/bp/version-15-hotfix/pr-57997
fix: keep item code searchable when a barcode matches the same text (backport #57997)
2026-08-11 13:08:48 +05:30
Mihir Kandoi
a3103469e2 fix(manufacturing): correct nested BOM quantities 2026-08-11 13:01:41 +05:30
Mihir Kandoi
43b874f0d4 Merge pull request #57998 from frappe/mergify/bp/version-15-hotfix/pr-57972
refactor: drop redundant time_in_mins assignment in workstation complete_job (backport #57972)
2026-08-11 12:28:42 +05:30
Kaushal Shriwas
a9743ae5da chore: resolve backport conflict in bom.py 2026-08-11 12:25:29 +05:30
Kaushal Shriwas
760b365225 test(manufacturing): cover BOM item search when item code collides with a barcode
(cherry picked from commit 23024d1ea9)
2026-08-11 06:42:55 +00:00
Kaushal Shriwas
0310db22ec fix(manufacturing): keep item code searchable when a barcode matches the same text
(cherry picked from commit bf5d506637)

# Conflicts:
#	erpnext/manufacturing/doctype/bom/mapper.py
2026-08-11 06:42:55 +00:00
Mihir Kandoi
496883f4e1 refactor: drop redundant time_in_mins assignment in complete_job
(cherry picked from commit 3cffeb68e3)
2026-08-11 06:39:14 +00:00
pandiyan
5e753ec6e4 fix: convert hours to minutes in workstation complete_job
`time_diff_in_hours` returns hours, so `time_in_mins` needs `* 60`, not
`/ 60`. Matches `Job Card.validate_time_log_row`.

No behaviour change: the `doc.save()` on the next line runs Job Card's
`validate`, which recomputes `time_in_mins` correctly before the row is
written. This only stops the expression from reading as a bug.

(cherry picked from commit 422a9161dd)
2026-08-11 06:39:14 +00:00
mergify[bot]
27af9baaa5 refactor(queries): using frappe.get_query in get_filtered_child_rows (backport #57991) (#57992)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-10 19:51:55 +00:00
mergify[bot]
a0d156120b fix: field validation and perm checks on get_stock_reservation_entries_for_voucher (backport #57968) (#57986)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-10 22:04:42 +05:30
mergify[bot]
713af31eda fix: preserve custom title on new JV (backport #57987) (#57988)
Co-authored-by: rehanrehman389 <rehanrehman389@gmail.com>
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-10 16:27:03 +00:00
ruthra kumar
df8edcdc91 Merge pull request #57830 from aerele/backport-57140-v15
fix: clear deferred revenue/expense fields on uncheck (backport #57140)
2026-08-10 15:04:11 +05:30
Pandiyan P
d510978a44 fix: re-check future sle before queuing repost on submit (#57664) (#57960)
* test: cover both repost branches and the no-repost case

* fix: queue repost for entries backdated by a concurrent submit

---------


(cherry picked from commit 399ff463cc)

Co-authored-by: nareshkannasln <nareshkannashanmugam@gmail.com>
2026-08-10 14:03:41 +05:30
mergify[bot]
f9a09f0ac4 fix: skip incoming rate calc when serial no qty is zero (backport #57427) (#57956)
fix: skip incoming rate calc when serial no qty is zero (#57427)

(cherry picked from commit a25decfa50)

Co-authored-by: Shllokkk <140623894+Shllokkk@users.noreply.github.com>
2026-08-10 06:48:58 +00:00
Khushi Rawat
a2b2f5173e Merge pull request #57823 from Shllokkk/asset-repair-downtime-recalc-v15
fix: keep asset repair downtime in sync with entered dates
2026-08-10 12:05:01 +05:30
mergify[bot]
2ca71f16c4 fix: escape customer_details on lead creation from appointment (backport #57947) (#57948)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-09 19:30:11 +00:00
Shllokkk
ae18d13e6e Merge pull request #57928 from Shllokkk/sales-register-ledger-pos-paid-v15
fix: reflect in-invoice receivable credits in Sales Register ledger view
2026-08-09 23:39:00 +05:30
Shllokkk
7edb95628c test: cover POS-paid invoice in Sales Register ledger view 2026-08-09 20:22:31 +05:30
Shllokkk
91afc04d9f fix: reflect in-invoice receivable settlements in Sales Register ledger view 2026-08-09 20:22:31 +05:30
Mihir Kandoi
3c5b2ededf Merge pull request #57920 from frappe/mergify/bp/version-15-hotfix/pr-57918
fix: sync open reference forms after Quality Inspection submit (backport #57918)
2026-08-09 16:38:01 +05:30
Mihir Kandoi
94d1dfdcb4 chore: resolve conflict 2026-08-09 16:18:49 +05:30
Mihir Kandoi
2270b22400 test: doc_update published for reference on Quality Inspection submit
(cherry picked from commit e8a6884d5e)

# Conflicts:
#	erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
2026-08-09 10:39:05 +00:00
Mihir Kandoi
c1d198d205 fix: sync open reference forms after Quality Inspection updates them
update_qc_reference() writes the QI link and bumps the reference
document's modified timestamp via raw db writes, which emit no realtime
event. A reference form (Purchase Receipt, Delivery Note, Stock Entry,
Job Card) still open in the browser keeps the old timestamp and fails
the timestamp conflict check on the next save/submit, forcing a manual
refresh after every QI submit/cancel/delete.

Calling notify_update() on the reference publishes the standard
doc_update event, so an open, unedited form silently reloads and syncs
its timestamp. get_lazy_doc skips child table loading since
notify_update only needs the parent row.

(cherry picked from commit 647452c95b)
2026-08-09 10:39:05 +00:00
Mihir Kandoi
db4f6db753 Merge pull request #57909 from frappe/mergify/bp/version-15-hotfix/pr-57876
fix: allow selecting a warehouse for new items in the update items dialog (backport #57876)
2026-08-09 13:17:57 +05:30
Mihir Kandoi
ee27df7d2b Merge pull request #57912 from frappe/mergify/bp/version-15-hotfix/pr-57911
fix: tolerate floating-point drift in sales team allocated percentage  (backport #57911)
2026-08-09 13:07:26 +05:30
Mihir Kandoi
d4ed2074d5 fix: use stock settings for warehouse defaults 2026-08-09 13:01:01 +05:30
Mihir Kandoi
206d291817 chore: resolve conflict 2026-08-09 12:50:38 +05:30
Mihir Kandoi
c23aa72dff chore: resolve conflict 2026-08-09 12:41:55 +05:30
pandiyan
1a89609044 test: sales team allocation totalling 100 in floating point
covers the case where the percentages are correct but the accumulated
sum is 100.00000000000001. two rows can never drift, since the second
reconstructs exactly as 100 - first, so the case needs three rows.

(cherry picked from commit 4afba94d1c)

# Conflicts:
#	erpnext/selling/doctype/sales_order/test_sales_order.py
2026-08-09 06:59:23 +00:00
pandiyan
262fbc52d8 fix: tolerate floating-point drift in sales team allocated percentage
the total of allocated_percentage was compared to 100 with exact float
equality, so a correct allocation could be rejected when the sum drifts
in binary floating point (10.0 + 58.02 + 31.98 -> 100.00000000000001).

round the total to the field precision before comparing, in both
SellingController.calculate_contribution and Customer.validate.

(cherry picked from commit f7b2775829)
2026-08-09 06:59:22 +00:00
mergify[bot]
7d9abee6b4 refactor(accounts)!: rework Purchase Invoice hold actions and enforce them on Journal Entry (backport #57825) (#57867)
Co-authored-by: diptanilsaha <diptanil@frappe.io>
2026-08-09 06:50:44 +00:00
Pandiyan P
76f485ba43 fix: allow selecting a warehouse for new items in the update items dialog (#57876)
(cherry picked from commit 55fe269046)

# Conflicts:
#	erpnext/accounts/services/child_item_update.py
#	erpnext/public/js/utils.js
#	erpnext/selling/doctype/sales_order/test_sales_order.py
2026-08-09 06:01:36 +00:00
Mihir Kandoi
8fc5cb2444 Merge pull request #57907 from frappe/mergify/bp/version-15-hotfix/pr-57832
fix: validate webform for project (backport #57832)
2026-08-09 09:59:47 +05:30
nishkagosalia
680ce70c35 fix: validate webform for project
(cherry picked from commit 126966d1db)
2026-08-09 04:12:10 +00:00
mergify[bot]
af7953a933 fix: set restrict_globals=True in frappe.render_template (backport #57899) (#57901)
Co-authored-by: Diptanil Saha <diptanil@frappe.io>
2026-08-09 00:04:14 +05:30
Mihir Kandoi
de9d306bfd Merge pull request #57891 from mihir-kandoi/backport-57887-v15
fix: repost read stale sibling SLE rate for moving average returns (backport #57887)
2026-08-08 12:02:32 +05:30
Mihir Kandoi
e63a81b269 Merge pull request #57888 from frappe/mergify/bp/version-15-hotfix/pr-57886
fix: incorrect entry detection in Stock Ledger Invariant Check (backport #57886)
2026-08-08 11:43:21 +05:30
Mihir Kandoi
c45ea3545d fix: get_valuation_method takes no company argument on version-15 2026-08-08 11:24:44 +05:30