Skip to content

Commit

Permalink
fix(pricing rule): free item duplication (#33746)
Browse files Browse the repository at this point in the history
fix(pricing rule): free item duplication (#33746)
  • Loading branch information
mergify[bot] authored Jan 20, 2023
1 parent 89f1eef commit 5a49884
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
18 changes: 14 additions & 4 deletions erpnext/accounts/doctype/pricing_rule/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -681,11 +681,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):
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:
if not items or (args.get("item_code"), args.get("pricing_rules")) not in items:
doc.append("items", args)
for item in doc.items:
if not item.is_free_item:
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:
Expand Down
1 change: 1 addition & 0 deletions erpnext/public/js/controllers/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -1473,6 +1473,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
"parenttype": d.parenttype,
"parent": d.parent,
"pricing_rules": d.pricing_rules,
"is_free_item": d.is_free_item,
"warehouse": d.warehouse,
"serial_no": d.serial_no,
"batch_no": d.batch_no,
Expand Down

0 comments on commit 5a49884

Please sign in to comment.