diff --git a/erpnext/patches/v10_0/set_discount_amount.py b/erpnext/patches/v10_0/set_discount_amount.py index 019d245d45..eb8bb2d48f 100644 --- a/erpnext/patches/v10_0/set_discount_amount.py +++ b/erpnext/patches/v10_0/set_discount_amount.py @@ -15,42 +15,20 @@ def execute(): buying_doctypes = ["Purchase Order Item", "Purchase Invoice Item", "Purchase Receipt Item", "Supplier Quotation Item"] for doctype in selling_doctypes: - values = frappe.db.sql(''' - SELECT - discount_percentage, rate_with_margin, price_list_rate, name - FROM - `tab%s` - WHERE - ifnull(discount_percentage, 0) > 0 - ''' % (doctype), as_dict=True) - calculate_discount(doctype, values) - - for doctype in buying_doctypes: - values = frappe.db.sql(''' - SELECT - discount_percentage, price_list_rate, name - FROM - `tab%s` - WHERE - discount_percentage > 0 - ''' % (doctype), as_dict=True) - calculate_discount(doctype, values) - -def calculate_discount(doctype, values): - rate = None - if not values: return - for d in values: - if d.rate_with_margin and d.rate_with_margin > 0: - rate = d.rate_with_margin - else: - rate = d.price_list_rate - - discount_value = rate * d.get('discount_percentage') / 100 frappe.db.sql(''' UPDATE `tab%s` SET - discount_amount = %s + discount_amount = if(rate_with_margin > 0, rate_with_margin, price_list_rate) * discount_percentage / 100 WHERE - name = '%s' - ''' % (doctype, discount_value, d.get('name'))) + discount_percentage > 0 + ''' % (doctype)) + for doctype in buying_doctypes: + frappe.db.sql(''' + UPDATE + `tab%s` + SET + discount_amount = price_list_rate * discount_percentage / 100 + WHERE + discount_percentage > 0 + ''' % (doctype)) \ No newline at end of file