20 lines
813 B
Python
20 lines
813 B
Python
|
# 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))
|