fix(projects): ignore cancelled invoices in timesheet portal (backport #58501) (#58503)

Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
This commit is contained in:
mergify[bot]
2026-08-27 13:24:40 +00:00
committed by GitHub
parent 099a5a71d9
commit 5a518951e4

View File

@@ -546,8 +546,14 @@ def get_timesheets_list(doctype, txt, filters, limit_start, limit_page_length=20
customer = contact.get_link_for("Customer")
if customer:
sales_invoices = frappe.get_all("Sales Invoice", filters={"customer": customer}, pluck="name")
sales_invoices = frappe.get_all(
"Sales Invoice",
filters={"customer": customer, "docstatus": ["!=", 2]},
pluck="name",
)
projects = frappe.get_all("Project", filters={"customer": customer}, pluck="name")
if not (sales_invoices or projects):
return []
# Return timesheet related data to web portal.
table = frappe.qb.DocType("Timesheet")
@@ -577,10 +583,7 @@ def get_timesheets_list(doctype, txt, filters, limit_start, limit_page_length=20
if projects:
conditions.append(child_table.project.isin(projects))
if conditions:
query = query.where(frappe.qb.terms.Criterion.any(conditions))
return query.run(as_dict=True)
return query.where(frappe.qb.terms.Criterion.any(conditions)).run(as_dict=True)
else:
return {}