Merge pull request #3868 from nabinhait/price_list_rate
[fix] Reset price list rate based on Pricing Rule type
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
index 70d6fb9..349a89b 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
@@ -147,6 +147,7 @@
if pricing_rule:
item_details.pricing_rule = pricing_rule.name
+ item_details.pricing_rule_for = pricing_rule.price_or_discount
if pricing_rule.price_or_discount == "Price":
item_details.update({
"price_list_rate": pricing_rule.price/flt(args.conversion_rate) \
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index ecd9e1a..2c9e7d4 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -153,9 +153,10 @@
item.set(fieldname, value)
if ret.get("pricing_rule"):
- for field in ["base_price_list_rate", "price_list_rate",
- "discount_percentage", "base_rate", "rate"]:
- item.set(field, ret.get(field))
+ item.set("discount_percentage", ret.get("discount_percentage"))
+ if ret.get("pricing_rule_for") == "Price":
+ item.set("pricing_list_rate", ret.get("pricing_list_rate"))
+
def set_taxes(self):
if not self.meta.get_field("taxes"):