added validation and clear fields for Apply Rule On Other
(cherry picked from commit ebbbc85fc0f9aa418163f8344d3a234ecbe08488)
This commit is contained in:
parent
e3973a4730
commit
aaed3b988f
@ -17,6 +17,8 @@ from six import string_types
|
|||||||
apply_on_dict = {"Item Code": "items",
|
apply_on_dict = {"Item Code": "items",
|
||||||
"Item Group": "item_groups", "Brand": "brands"}
|
"Item Group": "item_groups", "Brand": "brands"}
|
||||||
|
|
||||||
|
other_fields = ["other_item_code", "other_item_group", "other_brand"]
|
||||||
|
|
||||||
class PricingRule(Document):
|
class PricingRule(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_mandatory()
|
self.validate_mandatory()
|
||||||
@ -47,6 +49,13 @@ class PricingRule(Document):
|
|||||||
if tocheck and not self.get(tocheck):
|
if tocheck and not self.get(tocheck):
|
||||||
throw(_("{0} is required").format(self.meta.get_label(tocheck)), frappe.MandatoryError)
|
throw(_("{0} is required").format(self.meta.get_label(tocheck)), frappe.MandatoryError)
|
||||||
|
|
||||||
|
if self.apply_rule_on_other:
|
||||||
|
o_field = 'other_' + frappe.scrub(self.apply_rule_on_other)
|
||||||
|
if not self.get(o_field) and o_field in other_fields:
|
||||||
|
frappe.throw(_("For the 'Apply Rule On Other' condition the field {0} is mandatory")
|
||||||
|
.format(frappe.bold(self.apply_rule_on_other)))
|
||||||
|
|
||||||
|
|
||||||
if self.price_or_product_discount == 'Price' and not self.rate_or_discount:
|
if self.price_or_product_discount == 'Price' and not self.rate_or_discount:
|
||||||
throw(_("Rate or Discount is required for the price discount."), frappe.MandatoryError)
|
throw(_("Rate or Discount is required for the price discount."), frappe.MandatoryError)
|
||||||
|
|
||||||
@ -93,6 +102,14 @@ class PricingRule(Document):
|
|||||||
if self.mixed_conditions and self.get("same_item"):
|
if self.mixed_conditions and self.get("same_item"):
|
||||||
self.same_item = 0
|
self.same_item = 0
|
||||||
|
|
||||||
|
apply_rule_on_other = frappe.scrub(self.apply_rule_on_other or "")
|
||||||
|
|
||||||
|
cleanup_other_fields = (other_fields if not apply_rule_on_other
|
||||||
|
else [o_field for o_field in other_fields if o_field != 'other_' + apply_rule_on_other])
|
||||||
|
|
||||||
|
for other_field in cleanup_other_fields:
|
||||||
|
self.set(other_field, None)
|
||||||
|
|
||||||
def validate_rate_or_discount(self):
|
def validate_rate_or_discount(self):
|
||||||
for field in ["Rate"]:
|
for field in ["Rate"]:
|
||||||
if flt(self.get(frappe.scrub(field))) < 0:
|
if flt(self.get(frappe.scrub(field))) < 0:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user