[Patch] Update material transferred for manufacturing for existing entries
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 2104f7b..0d1d0de 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -164,4 +164,5 @@
 erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party
 erpnext.patches.v5_0.portal_fixes
 erpnext.patches.v5_0.reset_values_in_tools
-execute:frappe.delete_doc("Page", "users")
\ No newline at end of file
+execute:frappe.delete_doc("Page", "users")
+erpnext.patches.v5_0.update_material_transferred_for_manufacturing_again
\ No newline at end of file
diff --git a/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py b/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py
new file mode 100644
index 0000000..a74b4bd
--- /dev/null
+++ b/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py
@@ -0,0 +1,18 @@
+import frappe
+
+def execute():
+	pro_order_qty_transferred = frappe._dict()
+	for se in frappe.db.sql("""select production_order, sum(fg_completed_qty) as transferred_qty 
+		from `tabStock Entry`
+		where docstatus=1 and ifnull(production_order, '') != ''
+		and purpose = 'Material Transfer for Manufacture'
+		group by production_order""", as_dict=1):
+			pro_order_qty_transferred.setdefault(se.production_order, se.transferred_qty)
+	
+	for d in frappe.get_all("Production Order", filters={"docstatus": 1}, fields=["name", "qty"]):
+		if d.name in pro_order_qty_transferred:
+			material_transferred_for_manufacturing = pro_order_qty_transferred.get(d.name) \
+				if pro_order_qty_transferred.get(d.name) <= d.qty else d.qty		
+		
+			frappe.db.sql("""update `tabProduction Order` set material_transferred_for_manufacturing=%s
+				where name=%s""", (material_transferred_for_manufacturing, d.name))
\ No newline at end of file