fix(pricing rule): free item duplication (#33746)
* fix(pricing rule): free item duplication * chore: linting issues
This commit is contained in:
parent
597ef0a498
commit
1e607cd4c7
@ -687,11 +687,21 @@ def get_product_discount_rule(pricing_rule, item_details, args=None, doc=None):
|
|||||||
|
|
||||||
def apply_pricing_rule_for_free_items(doc, pricing_rule_args):
|
def apply_pricing_rule_for_free_items(doc, pricing_rule_args):
|
||||||
if pricing_rule_args:
|
if pricing_rule_args:
|
||||||
items = tuple((d.item_code, d.pricing_rules) for d in doc.items if d.is_free_item)
|
args = {(d["item_code"], d["pricing_rules"]): d for d in pricing_rule_args}
|
||||||
|
|
||||||
for args in pricing_rule_args:
|
for item in doc.items:
|
||||||
if not items or (args.get("item_code"), args.get("pricing_rules")) not in items:
|
if not item.is_free_item:
|
||||||
doc.append("items", args)
|
continue
|
||||||
|
|
||||||
|
free_item_data = args.get((item.item_code, item.pricing_rules))
|
||||||
|
if free_item_data:
|
||||||
|
free_item_data.pop("item_name")
|
||||||
|
free_item_data.pop("description")
|
||||||
|
item.update(free_item_data)
|
||||||
|
args.pop((item.item_code, item.pricing_rules))
|
||||||
|
|
||||||
|
for free_item in args.values():
|
||||||
|
doc.append("items", free_item)
|
||||||
|
|
||||||
|
|
||||||
def get_pricing_rule_items(pr_doc, other_items=False) -> list:
|
def get_pricing_rule_items(pr_doc, other_items=False) -> list:
|
||||||
|
@ -1473,6 +1473,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
|
|||||||
"parenttype": d.parenttype,
|
"parenttype": d.parenttype,
|
||||||
"parent": d.parent,
|
"parent": d.parent,
|
||||||
"pricing_rules": d.pricing_rules,
|
"pricing_rules": d.pricing_rules,
|
||||||
|
"is_free_item": d.is_free_item,
|
||||||
"warehouse": d.warehouse,
|
"warehouse": d.warehouse,
|
||||||
"serial_no": d.serial_no,
|
"serial_no": d.serial_no,
|
||||||
"batch_no": d.batch_no,
|
"batch_no": d.batch_no,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user