fix(patch): force reload child docs (#18672)
This commit is contained in:
		
							parent
							
								
									43dc351209
								
							
						
					
					
						commit
						214815eb62
					
				| @ -5,67 +5,67 @@ from __future__ import unicode_literals | ||||
| 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)) | ||||
| 		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)) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user