From f9d430c4aadee57f3618f3c5fb1312e80175881d Mon Sep 17 00:00:00 2001 From: Loic Oberle Date: Sat, 23 May 2026 08:07:09 +0200 Subject: [PATCH] refactor(supplier_scorecard): replace sql with orm (#55169) --- .../supplier_scorecard/supplier_scorecard.py | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.py b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.py index bca1c74e380..ae32c2537d3 100644 --- a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.py +++ b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.py @@ -140,28 +140,20 @@ class SupplierScorecard(Document): @frappe.whitelist() def get_timeline_data(doctype: str, name: str): # Get a list of all the associated scorecards - scs = frappe.get_doc(doctype, name) + out = {} timeline_data = {} - scorecards = frappe.db.sql( - """ - SELECT - sc.name - FROM - `tabSupplier Scorecard Period` sc - WHERE - sc.scorecard = %(scs)s - AND sc.docstatus = 1""", - {"scs": scs.name}, - as_dict=1, + + scorecards = frappe.get_all( + "Supplier Scorecard Period", + fields=["name", "start_date", "end_date", "total_score"], + filters={"scorecard": name, "docstatus": 1}, + order_by="end_date desc", ) for sc in scorecards: - start_date, end_date, total_score = frappe.db.get_value( - "Supplier Scorecard Period", sc.name, ["start_date", "end_date", "total_score"] - ) - for single_date in daterange(start_date, end_date): - timeline_data[time.mktime(single_date.timetuple())] = total_score + for single_date in daterange(sc.start_date, sc.end_date): + timeline_data[time.mktime(single_date.timetuple())] = sc.total_score out["timeline_data"] = timeline_data return out