[taxes and charges] [item wise tax detail] patch to store this as json
diff --git a/patches/may_2013/p08_change_item_wise_tax.py b/patches/may_2013/p08_change_item_wise_tax.py
new file mode 100644
index 0000000..dbb949e
--- /dev/null
+++ b/patches/may_2013/p08_change_item_wise_tax.py
@@ -0,0 +1,23 @@
+import webnotes
+import json
+from webnotes.utils import flt
+
+def execute():
+ for doctype in ["Purchase Taxes and Charges", "Sales Taxes and Charges"]:
+ for tax_name, item_wise_tax_detail in \
+ webnotes.conn.sql("""select name, item_wise_tax_detail from `tab%s`""" % doctype):
+ if not item_wise_tax_detail or not isinstance(item_wise_tax_detail, basestring):
+ continue
+
+ try:
+ json.loads(item_wise_tax_detail)
+ except ValueError:
+ out = {}
+ for t in item_wise_tax_detail.split("\n"):
+ if ":" in t:
+ account_head, amount = t.split(":")
+ out[account_head.strip()] = flt(amount.strip())
+
+ if out:
+ webnotes.conn.sql("""update `tab%s` set item_wise_tax_detail=%s
+ where name=%s""" % (doctype, "%s", "%s"), (json.dumps(out), tax_name))
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 75e5744..e877b92 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -255,4 +255,5 @@
"patches.may_2013.p05_update_cancelled_gl_entries",
"patches.may_2013.p06_make_notes",
"patches.may_2013.p07_move_update_stock_to_pos",
+ "patches.may_2013.p08_change_item_wise_tax",
]
\ No newline at end of file