refactor!: Subcontracted Item To Be Received
diff --git a/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py b/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py
index 2e90de6..30f9dec 100644
--- a/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py
+++ b/erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.py
@@ -19,10 +19,10 @@
 def get_columns():
 	return [
 		{
-			"label": _("Purchase Order"),
+			"label": _("Subcontracting Order"),
 			"fieldtype": "Link",
-			"fieldname": "purchase_order",
-			"options": "Purchase Order",
+			"fieldname": "subcontracting_order",
+			"options": "Subcontracting Order",
 			"width": 150,
 		},
 		{"label": _("Date"), "fieldtype": "Date", "fieldname": "date", "hidden": 1, "width": 150},
@@ -57,14 +57,14 @@
 
 
 def get_data(data, filters):
-	po = get_po(filters)
-	po_name = [v.name for v in po]
-	sub_items = get_purchase_order_item_supplied(po_name)
+	sco = get_sco(filters)
+	sco_name = [v.name for v in sco]
+	sub_items = get_subcontracting_order_item_supplied(sco_name)
 	for item in sub_items:
-		for order in po:
+		for order in sco:
 			if order.name == item.parent and item.received_qty < item.qty:
 				row = {
-					"purchase_order": item.parent,
+					"subcontracting_order": item.parent,
 					"date": order.transaction_date,
 					"supplier": order.supplier,
 					"fg_item_code": item.item_code,
@@ -76,22 +76,21 @@
 				data.append(row)
 
 
-def get_po(filters):
+def get_sco(filters):
 	record_filters = [
-		["is_subcontracted", "=", 1],
 		["supplier", "=", filters.supplier],
 		["transaction_date", "<=", filters.to_date],
 		["transaction_date", ">=", filters.from_date],
 		["docstatus", "=", 1],
 	]
 	return frappe.get_all(
-		"Purchase Order", filters=record_filters, fields=["name", "transaction_date", "supplier"]
+		"Subcontracting Order", filters=record_filters, fields=["name", "transaction_date", "supplier"]
 	)
 
 
-def get_purchase_order_item_supplied(po):
+def get_subcontracting_order_item_supplied(sco):
 	return frappe.get_all(
-		"Purchase Order Item",
-		filters=[("parent", "IN", po)],
+		"Subcontracting Order Item",
+		filters=[("parent", "IN", sco)],
 		fields=["parent", "item_code", "item_name", "qty", "received_qty"],
 	)
diff --git a/erpnext/buying/report/subcontracted_item_to_be_received/test_subcontracted_item_to_be_received.py b/erpnext/buying/report/subcontracted_item_to_be_received/test_subcontracted_item_to_be_received.py
index 57f8741..80fd657 100644
--- a/erpnext/buying/report/subcontracted_item_to_be_received/test_subcontracted_item_to_be_received.py
+++ b/erpnext/buying/report/subcontracted_item_to_be_received/test_subcontracted_item_to_be_received.py
@@ -7,18 +7,35 @@
 import frappe
 from frappe.tests.utils import FrappeTestCase
 
-from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_receipt
-from erpnext.buying.doctype.purchase_order.test_purchase_order import create_purchase_order
 from erpnext.buying.report.subcontracted_item_to_be_received.subcontracted_item_to_be_received import (
 	execute,
 )
+from erpnext.controllers.tests.test_subcontracting_controller import (
+	get_subcontracting_order,
+	make_service_item,
+)
 from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
+from erpnext.subcontracting.doctype.subcontracting_order.subcontracting_order import (
+	make_subcontracting_receipt,
+)
 
 
 class TestSubcontractedItemToBeReceived(FrappeTestCase):
 	def test_pending_and_received_qty(self):
-		po = create_purchase_order(item_code="_Test FG Item", is_subcontracted=1)
-		transfer_param = []
+		make_service_item("Subcontracted Service Item 1")
+		service_items = [
+			{
+				"warehouse": "_Test Warehouse - _TC",
+				"item_code": "Subcontracted Service Item 1",
+				"qty": 10,
+				"rate": 500,
+				"fg_item": "_Test FG Item",
+				"fg_item_qty": 10,
+			},
+		]
+		sco = get_subcontracting_order(
+			service_items=service_items, supplier_warehouse="_Test Warehouse 1 - _TC"
+		)
 		make_stock_entry(
 			item_code="_Test Item", target="_Test Warehouse 1 - _TC", qty=100, basic_rate=100
 		)
@@ -28,28 +45,27 @@
 			qty=100,
 			basic_rate=100,
 		)
-		make_purchase_receipt_against_po(po.name)
-		po.reload()
+		make_subcontracting_receipt_against_sco(sco.name)
+		sco.reload()
 		col, data = execute(
 			filters=frappe._dict(
 				{
-					"supplier": po.supplier,
+					"supplier": sco.supplier,
 					"from_date": frappe.utils.get_datetime(
-						frappe.utils.add_to_date(po.transaction_date, days=-10)
+						frappe.utils.add_to_date(sco.transaction_date, days=-10)
 					),
-					"to_date": frappe.utils.get_datetime(frappe.utils.add_to_date(po.transaction_date, days=10)),
+					"to_date": frappe.utils.get_datetime(frappe.utils.add_to_date(sco.transaction_date, days=10)),
 				}
 			)
 		)
 		self.assertEqual(data[0]["pending_qty"], 5)
 		self.assertEqual(data[0]["received_qty"], 5)
-		self.assertEqual(data[0]["purchase_order"], po.name)
-		self.assertEqual(data[0]["supplier"], po.supplier)
+		self.assertEqual(data[0]["subcontracting_order"], sco.name)
+		self.assertEqual(data[0]["supplier"], sco.supplier)
 
 
-def make_purchase_receipt_against_po(po, quantity=5):
-	pr = make_purchase_receipt(po)
-	pr.items[0].qty = quantity
-	pr.supplier_warehouse = "_Test Warehouse 1 - _TC"
-	pr.insert()
-	pr.submit()
+def make_subcontracting_receipt_against_sco(sco, quantity=5):
+	scr = make_subcontracting_receipt(sco)
+	scr.items[0].qty = quantity
+	scr.insert()
+	scr.submit()