repost stock reconciliation
diff --git a/erpnext/patches/v4_2/repost_stock_reconciliation.py b/erpnext/patches/v4_2/repost_stock_reconciliation.py
new file mode 100644
index 0000000..eb4de53
--- /dev/null
+++ b/erpnext/patches/v4_2/repost_stock_reconciliation.py
@@ -0,0 +1,31 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+import json
+
+def execute():
+ existing_allow_negative_stock = frappe.db.get_default("allow_negative_stock")
+ frappe.db.set_default("allow_negative_stock", 1)
+
+ head_row = ["Item Code", "Warehouse", "Quantity", "Valuation Rate"]
+ stock_reco_to_be_reposted = []
+ for d in frappe.db.sql("""select name, reconciliation_json from `tabStock Reconciliation`
+ where docstatus=1 and creation > '2014-03-01'""", as_dict=1):
+ data = json.loads(d.reconciliation_json)
+ for row in data[data.index(head_row)+1:]:
+ if row[3] in ["", None]:
+ stock_reco_to_be_reposted.append(d.name)
+ break
+
+ for dn in stock_reco_to_be_reposted:
+ reco = frappe.get_doc("Stock Reconciliation", dn)
+ reco.docstatus = 2
+ reco.on_cancel()
+
+ reco.docstatus = 1
+ reco.validate()
+ reco.on_submit()
+
+ frappe.db.set_default("allow_negative_stock", existing_allow_negative_stock)