feat: allow scrap items when backflush based on is Material Transfer
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
index b28292f..4ab0c66 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
@@ -149,41 +149,37 @@
 
 	@frappe.whitelist()
 	def get_scrap_items(self, recalculate_rate=False):
-		if (
-			frappe.db.get_single_value("Buying Settings", "backflush_raw_materials_of_subcontract_based_on")
-			== "BOM"
-		):
-			self.remove_scrap_items()
+		self.remove_scrap_items()
 
-			for item in list(self.items):
-				if item.bom:
-					bom = frappe.get_doc("BOM", item.bom)
-					for scrap_item in bom.scrap_items:
-						qty = flt(item.qty) * (flt(scrap_item.stock_qty) / flt(bom.quantity))
-						self.append(
-							"items",
-							{
-								"is_scrap_item": 1,
-								"reference_name": item.name,
-								"item_code": scrap_item.item_code,
-								"item_name": scrap_item.item_name,
-								"qty": qty,
-								"stock_uom": scrap_item.stock_uom,
-								"recalculate_rate": 0,
-								"rate": scrap_item.rate,
-								"rm_cost_per_qty": 0,
-								"service_cost_per_qty": 0,
-								"additional_cost_per_qty": 0,
-								"scrap_cost_per_qty": 0,
-								"amount": qty * scrap_item.rate,
-								"warehouse": self.set_warehouse,
-								"rejected_warehouse": self.rejected_warehouse,
-							},
-						)
+		for item in list(self.items):
+			if item.bom:
+				bom = frappe.get_doc("BOM", item.bom)
+				for scrap_item in bom.scrap_items:
+					qty = flt(item.qty) * (flt(scrap_item.stock_qty) / flt(bom.quantity))
+					self.append(
+						"items",
+						{
+							"is_scrap_item": 1,
+							"reference_name": item.name,
+							"item_code": scrap_item.item_code,
+							"item_name": scrap_item.item_name,
+							"qty": qty,
+							"stock_uom": scrap_item.stock_uom,
+							"recalculate_rate": 0,
+							"rate": scrap_item.rate,
+							"rm_cost_per_qty": 0,
+							"service_cost_per_qty": 0,
+							"additional_cost_per_qty": 0,
+							"scrap_cost_per_qty": 0,
+							"amount": qty * scrap_item.rate,
+							"warehouse": self.set_warehouse,
+							"rejected_warehouse": self.rejected_warehouse,
+						},
+					)
 
-			if recalculate_rate:
-				self.calculate_additional_costs()
-				self.calculate_items_qty_and_amount()
+		if recalculate_rate:
+			self.calculate_additional_costs()
+			self.calculate_items_qty_and_amount()
 
 	def remove_scrap_items(self, recalculate_rate=False):
 		for item in list(self.items):