feat: added option to enforce free item qty in pricing rule

(cherry picked from commit 19c01b1457)
This commit is contained in:
Mihir Kandoi
2025-02-05 18:48:52 +05:30
committed by Mergify
parent 617a24d61e
commit 8fb9228871
3 changed files with 12 additions and 2 deletions

View File

@@ -53,6 +53,7 @@
"column_break_42",
"free_item_uom",
"round_free_qty",
"enforce_free_item_qty",
"is_recursive",
"recurse_for",
"apply_recursion_over",
@@ -643,12 +644,19 @@
"fieldname": "has_priority",
"fieldtype": "Check",
"label": "Has Priority"
},
{
"default": "0",
"depends_on": "eval:doc.price_or_product_discount == 'Product'",
"fieldname": "enforce_free_item_qty",
"fieldtype": "Check",
"label": "Enforce Free Item Qty"
}
],
"icon": "fa fa-gift",
"idx": 1,
"links": [],
"modified": "2024-09-16 18:14:51.314765",
"modified": "2025-02-05 18:05:03.886828",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Pricing Rule",

View File

@@ -60,6 +60,7 @@ class PricingRule(Document):
disable: DF.Check
discount_amount: DF.Currency
discount_percentage: DF.Float
enforce_free_item_qty: DF.Check
for_price_list: DF.Link | None
free_item: DF.Link | None
free_item_rate: DF.Currency

View File

@@ -713,7 +713,8 @@ def apply_pricing_rule_for_free_items(doc, pricing_rule_args):
args.pop((item.item_code, item.pricing_rules))
for free_item in args.values():
doc.append("items", free_item)
if frappe.get_value("Pricing Rule", free_item["pricing_rules"], "enforce_free_item_qty"):
doc.append("items", free_item)
def get_pricing_rule_items(pr_doc, other_items=False) -> list: