Patch optimization (#13060)

* Patch fixes

* fix codacy

* Update item_barcode_childtable_migrate.py
diff --git a/erpnext/patches/v10_0/item_barcode_childtable_migrate.py b/erpnext/patches/v10_0/item_barcode_childtable_migrate.py
index d985bbf..e925952 100644
--- a/erpnext/patches/v10_0/item_barcode_childtable_migrate.py
+++ b/erpnext/patches/v10_0/item_barcode_childtable_migrate.py
@@ -7,16 +7,20 @@
 
 
 def execute():
-	items_barcode = frappe.db.sql("""SELECT name, barcode FROM tabItem
-		WHERE barcode IS NOT NULL and barcode != ''""", as_dict=1)
+	items_barcode = frappe.get_list('Item', ['name', 'barcode'], { 'barcode': ('!=', '') })
 
 	frappe.reload_doc("stock", "doctype", "item")
 	frappe.reload_doc("stock", "doctype", "item_barcode")
 
 	for item in items_barcode:
-		doc = frappe.get_doc("Item", item.get("name"))
-		if item.get("barcode"):
-			doc.append("barcodes", {"barcode": item.get("barcode")})
-			doc.flags.ignore_validate = True
-			doc.flags.ignore_mandatory = True
-			doc.save()
\ No newline at end of file
+		barcode = item.barcode.strip()
+
+		if barcode and '<' not in barcode:
+			frappe.get_doc({
+				'idx': 0,
+				'doctype': 'Item Barcode',
+				'barcode': barcode,
+				'parenttype': 'Item',
+				'parent': item.name,
+				'parentfield': 'barcodes'
+			}).insert()
diff --git a/erpnext/patches/v10_0/update_reserved_qty_for_purchase_order.py b/erpnext/patches/v10_0/update_reserved_qty_for_purchase_order.py
index beffc19..658cabb 100644
--- a/erpnext/patches/v10_0/update_reserved_qty_for_purchase_order.py
+++ b/erpnext/patches/v10_0/update_reserved_qty_for_purchase_order.py
@@ -12,6 +12,7 @@
 	if not po_item:
 		return
 
+	frappe.reload_doc("stock", "doctype", "bin")
 	frappe.reload_doc("buying", "doctype", "purchase_order_item_supplied")
 	company_warehouse = frappe._dict(frappe.db.sql("""select company, min(name) from `tabWarehouse`
 		where is_group = 0 group by company"""))
@@ -30,7 +31,7 @@
 
 	# Update bin
 	item_wh_bin = frappe.db.sql(("""
-		select distinct poitemsup.rm_item_code as rm_item_code, 
+		select distinct poitemsup.rm_item_code as rm_item_code,
 			poitemsup.reserve_warehouse as reserve_warehouse
 		from `tabPurchase Order` po, `tabPurchase Order Item Supplied` poitemsup
 		where po.name = poitemsup.parent