fix: update reserved qty for production/ s/c
diff --git a/erpnext/patches/v13_0/add_bin_unique_constraint.py b/erpnext/patches/v13_0/add_bin_unique_constraint.py
index 979fcf5..57fbaae 100644
--- a/erpnext/patches/v13_0/add_bin_unique_constraint.py
+++ b/erpnext/patches/v13_0/add_bin_unique_constraint.py
@@ -6,8 +6,8 @@
 	get_ordered_qty,
 	get_planned_qty,
 	get_reserved_qty,
-	update_bin_qty,
 )
+from erpnext.stock.utils import get_bin
 
 
 def execute():
@@ -32,10 +32,12 @@
 	""", as_dict=1)
 
 	for duplicate_bin in duplicate_bins:
+		item_code = duplicate_bin.item_code
+		warehouse = duplicate_bin.warehouse
 		existing_bins = frappe.get_list("Bin",
 				filters={
-					"item_code": duplicate_bin.item_code,
-					"warehouse": duplicate_bin.warehouse
+					"item_code": item_code,
+					"warehouse": warehouse
 					},
 				fields=["name"],
 				order_by="creation",)
@@ -47,11 +49,15 @@
 			frappe.delete_doc("Bin", broken_bin.name)
 
 		qty_dict = {
-			"reserved_qty": get_reserved_qty(duplicate_bin.item_code, duplicate_bin.warehouse),
-			"indented_qty": get_indented_qty(duplicate_bin.item_code, duplicate_bin.warehouse),
-			"ordered_qty": get_ordered_qty(duplicate_bin.item_code, duplicate_bin.warehouse),
-			"planned_qty": get_planned_qty(duplicate_bin.item_code, duplicate_bin.warehouse),
-			"actual_qty": get_balance_qty_from_sle(duplicate_bin.item_code, duplicate_bin.warehouse)
+			"reserved_qty": get_reserved_qty(item_code, warehouse),
+			"indented_qty": get_indented_qty(item_code, warehouse),
+			"ordered_qty": get_ordered_qty(item_code, warehouse),
+			"planned_qty": get_planned_qty(item_code, warehouse),
+			"actual_qty": get_balance_qty_from_sle(item_code, warehouse)
 		}
 
-		update_bin_qty(duplicate_bin.item_code, duplicate_bin.warehouse, qty_dict)
+		bin = get_bin(item_code, warehouse)
+		bin.update(qty_dict)
+		bin.update_reserved_qty_for_production()
+		bin.update_reserved_qty_for_sub_contracting()
+		bin.db_update()