Update tax amount after discount in existing documents
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 13d8538..bd89582 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -52,3 +52,4 @@
# WATCHOUT: This patch reload's documents
erpnext.patches.v4_0.reset_permissions_for_masters
+erpnext.patches.v4_0.update_tax_amount_after_discount
diff --git a/erpnext/patches/v4_0/update_tax_amount_after_discount.py b/erpnext/patches/v4_0/update_tax_amount_after_discount.py
new file mode 100644
index 0000000..37f082b
--- /dev/null
+++ b/erpnext/patches/v4_0/update_tax_amount_after_discount.py
@@ -0,0 +1,19 @@
+# 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
+
+def execute():
+ docs_with_discount_amount = frappe._dict()
+ for dt in ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]:
+ records = frappe.db.sql_list("""select name from `tab%s`
+ where ifnull(discount_amount, 0) > 0 and docstatus=1""" % dt)
+ docs_with_discount_amount[dt] = records
+
+ for dt, discounted_records in docs_with_discount_amount.items():
+ frappe.db.sql("""update `tabSales Taxes and Charges`
+ set tax_amount_after_discount_amount = tax_amount
+ where parenttype = %s and parent not in (%s)""" %
+ ('%s', ', '.join(['%s']*(len(discounted_records)+1))),
+ tuple([dt, ''] + discounted_records))