Update tax amount after discount in existing documents

This commit is contained in:
Nabin Hait 2014-06-09 12:49:09 +05:30
parent 00976cfe47
commit b63e99eb43
2 changed files with 20 additions and 0 deletions

View File

@ -52,3 +52,4 @@ erpnext.patches.v4_0.fix_address_template
# WATCHOUT: This patch reload's documents
erpnext.patches.v4_0.reset_permissions_for_masters
erpnext.patches.v4_0.update_tax_amount_after_discount

View File

@ -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))