fix(patch): force reload child docs (#18672)

diff --git a/erpnext/patches/v12_0/update_pricing_rule_fields.py b/erpnext/patches/v12_0/update_pricing_rule_fields.py
index 8f8349e..985613a 100644
--- a/erpnext/patches/v12_0/update_pricing_rule_fields.py
+++ b/erpnext/patches/v12_0/update_pricing_rule_fields.py
@@ -5,67 +5,67 @@
 import frappe
 
 parentfield = {
-    'item_code': 'items',
-    'item_group': 'item_groups',
-    'brand': 'brands'
+	'item_code': 'items',
+	'item_group': 'item_groups',
+	'brand': 'brands'
 }
 
 def execute():
 
-    if not frappe.get_all('Pricing Rule', limit=1):
-        return
+	if not frappe.get_all('Pricing Rule', limit=1):
+		return
 
-    frappe.reload_doc('accounts', 'doctype', 'pricing_rule_detail')
-    doctypes = {'Supplier Quotation': 'buying', 'Purchase Order': 'buying', 'Purchase Invoice': 'accounts',
-        'Purchase Receipt': 'stock', 'Quotation': 'selling', 'Sales Order': 'selling',
-        'Sales Invoice': 'accounts', 'Delivery Note': 'stock'}
+	frappe.reload_doc('accounts', 'doctype', 'pricing_rule_detail')
+	doctypes = {'Supplier Quotation': 'buying', 'Purchase Order': 'buying', 'Purchase Invoice': 'accounts',
+		'Purchase Receipt': 'stock', 'Quotation': 'selling', 'Sales Order': 'selling',
+		'Sales Invoice': 'accounts', 'Delivery Note': 'stock'}
 
-    for doctype, module in doctypes.items():
-        frappe.reload_doc(module, 'doctype', frappe.scrub(doctype))
+	for doctype, module in doctypes.items():
+		frappe.reload_doc(module, 'doctype', frappe.scrub(doctype))
 
-        child_doc = frappe.scrub(doctype) + '_item'
-        frappe.reload_doc(module, 'doctype', child_doc)
+		child_doc = frappe.scrub(doctype) + '_item'
+		frappe.reload_doc(module, 'doctype', child_doc, force=True)
 
-        child_doctype = doctype + ' Item'
+		child_doctype = doctype + ' Item'
 
-        frappe.db.sql(""" UPDATE `tab{child_doctype}` SET pricing_rules = pricing_rule
-            WHERE docstatus < 2 and pricing_rule is not null and pricing_rule != ''
-        """.format(child_doctype= child_doctype))
+		frappe.db.sql(""" UPDATE `tab{child_doctype}` SET pricing_rules = pricing_rule
+			WHERE docstatus < 2 and pricing_rule is not null and pricing_rule != ''
+		""".format(child_doctype= child_doctype))
 
-        data = frappe.db.sql(""" SELECT pricing_rule, name, parent,
-                parenttype, creation, modified, docstatus, modified_by, owner, name
-            FROM `tab{child_doc}` where docstatus < 2 and pricing_rule is not null
-            and pricing_rule != ''""".format(child_doc=child_doctype), as_dict=1)
+		data = frappe.db.sql(""" SELECT pricing_rule, name, parent,
+				parenttype, creation, modified, docstatus, modified_by, owner, name
+			FROM `tab{child_doc}` where docstatus < 2 and pricing_rule is not null
+			and pricing_rule != ''""".format(child_doc=child_doctype), as_dict=1)
 
-        values = []
-        for d in data:
-            values.append((d.pricing_rule, d.name, d.parent, 'pricing_rules', d.parenttype,
-                d.creation, d.modified, d.docstatus, d.modified_by, d.owner, frappe.generate_hash("", 10)))
+		values = []
+		for d in data:
+			values.append((d.pricing_rule, d.name, d.parent, 'pricing_rules', d.parenttype,
+				d.creation, d.modified, d.docstatus, d.modified_by, d.owner, frappe.generate_hash("", 10)))
 
-        if values:
-            frappe.db.sql(""" INSERT INTO
-                `tabPricing Rule Detail` (`pricing_rule`, `child_docname`, `parent`, `parentfield`, `parenttype`,
-                `creation`, `modified`, `docstatus`, `modified_by`, `owner`, `name`)
-            VALUES {values} """.format(values=', '.join(['%s'] * len(values))), tuple(values))
+		if values:
+			frappe.db.sql(""" INSERT INTO
+				`tabPricing Rule Detail` (`pricing_rule`, `child_docname`, `parent`, `parentfield`, `parenttype`,
+				`creation`, `modified`, `docstatus`, `modified_by`, `owner`, `name`)
+			VALUES {values} """.format(values=', '.join(['%s'] * len(values))), tuple(values))
 
-    frappe.reload_doc('accounts', 'doctype', 'pricing_rule')
+	frappe.reload_doc('accounts', 'doctype', 'pricing_rule')
 
-    for doctype, apply_on in {'Pricing Rule Item Code': 'Item Code',
-        'Pricing Rule Item Group': 'Item Group', 'Pricing Rule Brand': 'Brand'}.items():
-        frappe.reload_doc('accounts', 'doctype', frappe.scrub(doctype))
+	for doctype, apply_on in {'Pricing Rule Item Code': 'Item Code',
+		'Pricing Rule Item Group': 'Item Group', 'Pricing Rule Brand': 'Brand'}.items():
+		frappe.reload_doc('accounts', 'doctype', frappe.scrub(doctype))
 
-        field = frappe.scrub(apply_on)
-        data = frappe.get_all('Pricing Rule', fields=[field, "name", "creation", "modified",
-            "owner", "modified_by"], filters= {'apply_on': apply_on})
+		field = frappe.scrub(apply_on)
+		data = frappe.get_all('Pricing Rule', fields=[field, "name", "creation", "modified",
+			"owner", "modified_by"], filters= {'apply_on': apply_on})
 
-        values = []
-        for d in data:
-            values.append((d.get(field), d.name, parentfield.get(field), 'Pricing Rule',
-                d.creation, d.modified, d.owner, d.modified_by, frappe.generate_hash("", 10)))
+		values = []
+		for d in data:
+			values.append((d.get(field), d.name, parentfield.get(field), 'Pricing Rule',
+				d.creation, d.modified, d.owner, d.modified_by, frappe.generate_hash("", 10)))
 
-        if values:
-            frappe.db.sql(""" INSERT INTO
-                `tab{doctype}` ({field}, parent, parentfield, parenttype, creation, modified,
-                    owner, modified_by, name)
-            VALUES {values} """.format(doctype=doctype,
-                field=field, values=', '.join(['%s'] * len(values))), tuple(values))
\ No newline at end of file
+		if values:
+			frappe.db.sql(""" INSERT INTO
+				`tab{doctype}` ({field}, parent, parentfield, parenttype, creation, modified,
+					owner, modified_by, name)
+			VALUES {values} """.format(doctype=doctype,
+				field=field, values=', '.join(['%s'] * len(values))), tuple(values))