Patch fixes
diff --git a/erpnext/patches/v4_2/party_model.py b/erpnext/patches/v4_2/party_model.py
index be681a8..bb4ff0b 100644
--- a/erpnext/patches/v4_2/party_model.py
+++ b/erpnext/patches/v4_2/party_model.py
@@ -80,13 +80,16 @@
for dt in ["Journal Entry Account", "GL Entry"]:
records = frappe.db.sql("""select name, account from `tab%s` where account in (%s)""" %
(dt, ", ".join(['%s']*len(account_map))), tuple(account_map.keys()), as_dict=1)
- for d in records:
+ for i, d in enumerate(records):
account_details = account_map.get(d.account, {})
account_type = "Receivable" if account_details.get("master_type")=="Customer" else "Payable"
new_account = receivable_payable_accounts[account_details.get("company")][account_type]
frappe.db.sql("update `tab{0}` set account=%s, party_type=%s, party=%s where name=%s".format(dt),
(new_account, account_details.get("master_type"), account_details.get("master_name"), d.name))
+
+ if i%500 == 0:
+ frappe.db.commit()
def delete_individual_party_account():
frappe.db.sql("""delete from `tabAccount` where ifnull(master_type, '') in ('Customer', 'Supplier')
diff --git a/erpnext/patches/v5_0/convert_stock_reconciliation.py b/erpnext/patches/v5_0/convert_stock_reconciliation.py
index cc9135a..8a0b93d 100644
--- a/erpnext/patches/v5_0/convert_stock_reconciliation.py
+++ b/erpnext/patches/v5_0/convert_stock_reconciliation.py
@@ -4,7 +4,9 @@
# stock reco now amendable
frappe.db.sql("""update tabDocPerm set `amend` = 1 where parent='Stock Reconciliation' and submit = 1""")
-
+ frappe.reload_doc("stock", "doctype", "stock_reconciliation_item")
+ frappe.reload_doctype("Stock Reconciliation")
+
if frappe.db.has_column("Stock Reconciliation", "reconciliation_json"):
for sr in frappe.db.get_all("Stock Reconciliation", ["name"],
{"reconciliation_json": ["!=", ""]}):
@@ -15,8 +17,8 @@
sr.append("items", {
"item_code": row[0],
"warehouse": row[1],
- "qty": row[3] if len(row) > 2 else None,
- "valuation_rate": row[4] if len(row) > 3 else None
+ "qty": row[2] if len(row) > 2 else None,
+ "valuation_rate": row[3] if len(row) > 3 else None
})
elif row[0]=="Item Code":
diff --git a/erpnext/patches/v5_0/update_item_description_and_image.py b/erpnext/patches/v5_0/update_item_description_and_image.py
index d91c918..7e61314 100644
--- a/erpnext/patches/v5_0/update_item_description_and_image.py
+++ b/erpnext/patches/v5_0/update_item_description_and_image.py
@@ -7,16 +7,46 @@
import re
def execute():
+ item_details = frappe._dict()
+ for d in frappe.db.sql("select name, description_html, description from `tabItem`", as_dict=1):
+ description = cstr(d.description_html).strip() or cstr(d.description).strip()
+ image_url, new_desc = extract_image_and_description(description)
+
+ item_details.setdefault(d.name, frappe._dict({
+ "old_description": description,
+ "new_description": new_desc,
+ "image_url": image_url
+ }))
+
+
dt_list= ["Purchase Order Item","Supplier Quotation Item", "BOM", "BOM Explosion Item" , \
"BOM Item", "Opportunity Item" , "Quotation Item" , "Sales Order Item" , "Delivery Note Item" , \
"Material Request Item" , "Purchase Receipt Item" , "Stock Entry Detail"]
for dt in dt_list:
frappe.reload_doctype(dt)
- names = frappe.db.sql("""select name, description from `tab{0}` where description is not null""".format(dt),as_dict=1)
- for d in names:
- data = cstr(d.description)
- image_url = find_first_image(data)
- desc = re.sub("\<img[^>]+\>", "", data)
+ records = frappe.db.sql("""select name, `{0}` as item_code, description from `tab{1}`
+ where description is not null and image is null and description like '%%<img%%'"""
+ .format("item" if dt=="BOM" else "item_code", dt), as_dict=1)
+
+ count = 1
+ for d in records:
+ if cstr(d.description) == item_details.get(d.item_code).old_description:
+ image_url = item_details.get(d.item_code).image_url
+ desc = item_details.get(d.item_code).new_description
+ else:
+ image_url, desc = extract_image_and_description(cstr(d.description))
- frappe.db.sql("""update `tab{0}` set description = %s, image = %s
- where name = %s """.format(dt), (desc, image_url, d.name))
+ if image_url:
+ frappe.db.sql("""update `tab{0}` set description = %s, image = %s
+ where name = %s """.format(dt), (desc, image_url, d.name))
+
+ count += 1
+ if count % 500 == 0:
+ frappe.db.commit()
+
+
+def extract_image_and_description(data):
+ image_url = find_first_image(data)
+ desc = re.sub("\<img[^>]+\>", "", data)
+
+ return image_url, desc
\ No newline at end of file