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 0000000000..dbb949e3b2 --- /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 75e5744039..e877b92e8f 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -255,4 +255,5 @@ patch_list = [ "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