Merge branch 'stock_reco' of github.com:webnotes/erpnext into stock_reco
diff --git a/patches/january_2013/file_list_rename_returns.py b/patches/january_2013/file_list_rename_returns.py
new file mode 100644
index 0000000..cca7a15
--- /dev/null
+++ b/patches/january_2013/file_list_rename_returns.py
@@ -0,0 +1,66 @@
+import webnotes
+from webnotes.utils import get_base_path
+import os
+
+def execute():
+ # find out when was the file list patch run
+ res = webnotes.conn.sql("""select applied_on from `__PatchLog`
+ where patch='patches.december_2012.file_list_rename' order by applied_on desc limit 1""")
+ if res:
+ patch_date = res[0][0].date()
+ files_path = os.path.join(get_base_path(), "public", "files")
+
+ change_map = {}
+
+ file_data_list = webnotes.conn.sql("""select name, file_name from `tabFile Data`
+ where date(modified) <= %s and ifnull(file_url, '')='' and name like "%%-%%" """,
+ patch_date)
+
+ # print patch_date
+ # print file_data_list
+ # print files_path
+
+ for fid, file_name in file_data_list:
+ if os.path.exists(os.path.join(files_path, fid)):
+ new_fid, new_file_name = fid.replace("-", ""), file_name.replace("-", "")
+
+ try:
+ webnotes.conn.sql("""update `tabFile Data`
+ set name=%s, file_name=%s where name=%s""", (new_fid, new_file_name, fid))
+
+ os.rename(os.path.join(files_path, fid), os.path.join(files_path, new_fid))
+
+ change_map[",".join((file_name, fid))] = ",".join((new_file_name, new_fid))
+ except Exception, e:
+ # if duplicate entry, then dont update
+ if e[0]!=1062:
+ print webnotes.getTraceback()
+ raise e
+
+ print change_map
+
+ changed_keys = change_map.keys()
+
+ for dt in webnotes.conn.sql("""select distinct parent from tabDocField
+ where fieldname='file_list'"""):
+ try:
+ data = webnotes.conn.sql("""select name, file_list from `tab%s`
+ where ifnull(file_list, '')!=''""" % dt[0])
+ for name, file_list in data:
+ new_file_list = []
+ file_list = file_list.split("\n")
+ for f in file_list:
+ if f in changed_keys:
+ new_file_list.append(change_map[f])
+ else:
+ new_file_list.append(f)
+ if new_file_list != file_list:
+ webnotes.conn.sql("""update `tab%s` set file_list=%s
+ where name=%s""" % (dt[0], "%s", "%s"),
+ ("\n".join(new_file_list), name))
+
+ except Exception, e:
+ if e[0]!=1146:
+ print webnotes.getTraceback()
+ raise e
+
\ No newline at end of file
diff --git a/patches/january_2013/stock_reconciliation_patch.py b/patches/january_2013/stock_reconciliation_patch.py
index 0bfcc98..1203595 100644
--- a/patches/january_2013/stock_reconciliation_patch.py
+++ b/patches/january_2013/stock_reconciliation_patch.py
@@ -31,19 +31,29 @@
def store_stock_reco_json():
import os
- import conf
import json
from webnotes.utils.datautils import read_csv_content
- base_path = os.path.dirname(os.path.abspath(conf.__file__))
+ from webnotes.utils import get_base_path
+ files_path = os.path.join(get_base_path(), "public", "files")
+
+ list_of_files = os.listdir(files_path)
+ replaced_list_of_files = [f.replace("-", "") for f in list_of_files]
for reco, file_list in webnotes.conn.sql("""select name, file_list
from `tabStock Reconciliation`"""):
if file_list:
file_list = file_list.split("\n")
stock_reco_file = file_list[0].split(",")[1]
- stock_reco_file = os.path.join(base_path, "public", "files", stock_reco_file)
- if os.path.exists(stock_reco_file):
- with open(stock_reco_file, "r") as open_reco_file:
+ stock_reco_file_path = os.path.join(files_path, stock_reco_file)
+ if not os.path.exists(stock_reco_file_path):
+ if stock_reco_file in replaced_list_of_files:
+ stock_reco_file_path = os.path.join(files_path,
+ list_of_files[replaced_list_of_files.index(stock_reco_file)])
+ else:
+ stock_reco_file_path = ""
+
+ if stock_reco_file_path:
+ with open(stock_reco_file_path, "r") as open_reco_file:
content = open_reco_file.read()
content = read_csv_content(content)
reconciliation_json = json.dumps(content, separators=(',', ': '))
diff --git a/patches/patch_list.py b/patches/patch_list.py
index f9bb97c..e842e16 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -582,4 +582,8 @@
'patch_module': 'patches.january_2013',
'patch_file': 'holiday_list_patch',
},
+ {
+ 'patch_module': 'patches.january_2013',
+ 'patch_file': 'stock_reconciliation_patch',
+ },
]
\ No newline at end of file