Merge pull request #33238 from frappe/mergify/bp/version-14-hotfix/pr-33192

fix: Bundle item rates (backport #33192)
This commit is contained in:
Deepesh Garg
2022-12-06 18:57:08 +05:30
committed by GitHub
2 changed files with 5 additions and 5 deletions

View File

@@ -48,7 +48,7 @@ def make_packing_list(doc):
update_packed_item_from_cancelled_doc(item_row, bundle_item, pi_row, doc) update_packed_item_from_cancelled_doc(item_row, bundle_item, pi_row, doc)
if set_price_from_children: # create/update bundle item wise price dict if set_price_from_children: # create/update bundle item wise price dict
update_product_bundle_rate(parent_items_price, pi_row) update_product_bundle_rate(parent_items_price, pi_row, item_row)
if parent_items_price: if parent_items_price:
set_product_bundle_rate_amount(doc, parent_items_price) # set price in bundle item set_product_bundle_rate_amount(doc, parent_items_price) # set price in bundle item
@@ -247,7 +247,7 @@ def get_cancelled_doc_packed_item_details(old_packed_items):
return prev_doc_packed_items_map return prev_doc_packed_items_map
def update_product_bundle_rate(parent_items_price, pi_row): def update_product_bundle_rate(parent_items_price, pi_row, item_row):
""" """
Update the price dict of Product Bundles based on the rates of the Items in the bundle. Update the price dict of Product Bundles based on the rates of the Items in the bundle.
@@ -259,7 +259,7 @@ def update_product_bundle_rate(parent_items_price, pi_row):
if not rate: if not rate:
parent_items_price[key] = 0.0 parent_items_price[key] = 0.0
parent_items_price[key] += flt(pi_row.rate) parent_items_price[key] += flt((pi_row.rate * pi_row.qty) / item_row.stock_qty)
def set_product_bundle_rate_amount(doc, parent_items_price): def set_product_bundle_rate_amount(doc, parent_items_price):

View File

@@ -126,8 +126,8 @@ class TestPackedItem(FrappeTestCase):
so.packed_items[1].rate = 200 so.packed_items[1].rate = 200
so.save() so.save()
self.assertEqual(so.items[0].rate, 350) self.assertEqual(so.items[0].rate, 700)
self.assertEqual(so.items[0].amount, 700) self.assertEqual(so.items[0].amount, 1400)
def test_newly_mapped_doc_packed_items(self): def test_newly_mapped_doc_packed_items(self):
"Test impact on packed items in newly mapped DN from SO." "Test impact on packed items in newly mapped DN from SO."