test: item price on remove pricing rule
(cherry picked from commit b8c41e3030)
# Conflicts:
# erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
This commit is contained in:
committed by
mergify-bot
parent
78c5f34286
commit
fc67f02ffc
@@ -424,6 +424,7 @@ def remove_pricing_rule_for_item(pricing_rules, item_details, item_code=None):
|
|||||||
item_details.applied_on_items = ','.join(items)
|
item_details.applied_on_items = ','.join(items)
|
||||||
|
|
||||||
item_details.pricing_rules = ''
|
item_details.pricing_rules = ''
|
||||||
|
item_details.pricing_rule_removed = True
|
||||||
|
|
||||||
return item_details
|
return item_details
|
||||||
|
|
||||||
|
|||||||
@@ -630,6 +630,7 @@ class TestPricingRule(unittest.TestCase):
|
|||||||
for doc in [si, si1]:
|
for doc in [si, si1]:
|
||||||
doc.delete()
|
doc.delete()
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
def test_multiple_pricing_rules_with_min_qty(self):
|
def test_multiple_pricing_rules_with_min_qty(self):
|
||||||
make_pricing_rule(discount_percentage=20, selling=1, priority=1, min_qty=4,
|
make_pricing_rule(discount_percentage=20, selling=1, priority=1, min_qty=4,
|
||||||
apply_multiple_pricing_rules=1, title="_Test Pricing Rule with Min Qty - 1")
|
apply_multiple_pricing_rules=1, title="_Test Pricing Rule with Min Qty - 1")
|
||||||
@@ -649,6 +650,48 @@ class TestPricingRule(unittest.TestCase):
|
|||||||
|
|
||||||
frappe.delete_doc_if_exists("Pricing Rule", "_Test Pricing Rule with Min Qty - 1")
|
frappe.delete_doc_if_exists("Pricing Rule", "_Test Pricing Rule with Min Qty - 1")
|
||||||
frappe.delete_doc_if_exists("Pricing Rule", "_Test Pricing Rule with Min Qty - 2")
|
frappe.delete_doc_if_exists("Pricing Rule", "_Test Pricing Rule with Min Qty - 2")
|
||||||
|
=======
|
||||||
|
def test_remove_pricing_rule(self):
|
||||||
|
item = make_item("Water Flask")
|
||||||
|
make_item_price("Water Flask", "_Test Price List", 100)
|
||||||
|
|
||||||
|
pricing_rule_record = {
|
||||||
|
"doctype": "Pricing Rule",
|
||||||
|
"title": "_Test Water Flask Rule",
|
||||||
|
"apply_on": "Item Code",
|
||||||
|
"price_or_product_discount": "Price",
|
||||||
|
"items": [{
|
||||||
|
"item_code": "Water Flask",
|
||||||
|
}],
|
||||||
|
"selling": 1,
|
||||||
|
"currency": "INR",
|
||||||
|
"rate_or_discount": "Discount Percentage",
|
||||||
|
"discount_percentage": 20,
|
||||||
|
"company": "_Test Company"
|
||||||
|
}
|
||||||
|
rule = frappe.get_doc(pricing_rule_record)
|
||||||
|
rule.insert()
|
||||||
|
|
||||||
|
si = create_sales_invoice(do_not_save=True, item_code="Water Flask")
|
||||||
|
si.selling_price_list = "_Test Price List"
|
||||||
|
si.save()
|
||||||
|
|
||||||
|
self.assertEqual(si.items[0].price_list_rate, 100)
|
||||||
|
self.assertEqual(si.items[0].discount_percentage, 20)
|
||||||
|
self.assertEqual(si.items[0].rate, 80)
|
||||||
|
|
||||||
|
si.ignore_pricing_rule = 1
|
||||||
|
si.save()
|
||||||
|
|
||||||
|
self.assertEqual(si.items[0].discount_percentage, 0)
|
||||||
|
self.assertEqual(si.items[0].rate, 100)
|
||||||
|
|
||||||
|
si.delete()
|
||||||
|
rule.delete()
|
||||||
|
frappe.get_doc("Item Price", {"item_code": "Water Flask"}).delete()
|
||||||
|
item.delete()
|
||||||
|
|
||||||
|
>>>>>>> b8c41e3030 (test: item price on remove pricing rule)
|
||||||
|
|
||||||
test_dependencies = ["Campaign"]
|
test_dependencies = ["Campaign"]
|
||||||
|
|
||||||
|
|||||||
@@ -408,6 +408,14 @@ class AccountsController(TransactionBase):
|
|||||||
if item_qty != len(get_serial_nos(item.get('serial_no'))):
|
if item_qty != len(get_serial_nos(item.get('serial_no'))):
|
||||||
item.set(fieldname, value)
|
item.set(fieldname, value)
|
||||||
|
|
||||||
|
elif ret.get("pricing_rule_removed") and value is not None \
|
||||||
|
and fieldname in [
|
||||||
|
'discount_percentage', 'discount_amount', 'rate',
|
||||||
|
'margin_rate_or_amount', 'margin_type', 'remove_free_item'
|
||||||
|
]:
|
||||||
|
# reset pricing rule fields if pricing_rule_removed
|
||||||
|
item.set(fieldname, value)
|
||||||
|
|
||||||
if self.doctype in ["Purchase Invoice", "Sales Invoice"] and item.meta.get_field('is_fixed_asset'):
|
if self.doctype in ["Purchase Invoice", "Sales Invoice"] and item.meta.get_field('is_fixed_asset'):
|
||||||
item.set('is_fixed_asset', ret.get('is_fixed_asset', 0))
|
item.set('is_fixed_asset', ret.get('is_fixed_asset', 0))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user