Optimize patch (#15263)
This commit is contained in:
parent
d982e8fcda
commit
3df2639a32
@ -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))
|
Loading…
x
Reference in New Issue
Block a user