fix: incorrect Difference Amount (#42008)
(cherry picked from commit 7d91c6cbd5)
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
@@ -404,7 +404,9 @@ class StockReconciliation(StockController):
|
||||
fields=["total_qty as qty", "avg_rate as rate"],
|
||||
)[0]
|
||||
|
||||
bundle_data.qty = abs(bundle_data.qty)
|
||||
self.calculate_difference_amount(item, bundle_data)
|
||||
|
||||
return True
|
||||
|
||||
inventory_dimensions_dict = {}
|
||||
@@ -464,11 +466,16 @@ class StockReconciliation(StockController):
|
||||
frappe.msgprint(_("Removed items with no change in quantity or value."))
|
||||
|
||||
def calculate_difference_amount(self, item, item_dict):
|
||||
self.difference_amount += flt(item.qty, item.precision("qty")) * flt(
|
||||
item.valuation_rate or item_dict.get("rate"), item.precision("valuation_rate")
|
||||
) - flt(item_dict.get("qty"), item.precision("qty")) * flt(
|
||||
item_dict.get("rate"), item.precision("valuation_rate")
|
||||
)
|
||||
qty_precision = item.precision("qty")
|
||||
val_precision = item.precision("valuation_rate")
|
||||
|
||||
new_qty = flt(item.qty, qty_precision)
|
||||
new_valuation_rate = flt(item.valuation_rate or item_dict.get("rate"), val_precision)
|
||||
|
||||
current_qty = flt(item_dict.get("qty"), qty_precision)
|
||||
current_valuation_rate = flt(item_dict.get("rate"), val_precision)
|
||||
|
||||
self.difference_amount += (new_qty * new_valuation_rate) - (current_qty * current_valuation_rate)
|
||||
|
||||
def validate_data(self):
|
||||
def _get_msg(row_num, msg):
|
||||
|
||||
@@ -1109,6 +1109,7 @@ class TestStockReconciliation(FrappeTestCase, StockTestMixin):
|
||||
)
|
||||
|
||||
sr.reload()
|
||||
self.assertEqual(sr.difference_amount, 98900.0)
|
||||
|
||||
self.assertTrue(sr.items[0].current_valuation_rate)
|
||||
current_sabb = sr.items[0].current_serial_and_batch_bundle
|
||||
|
||||
Reference in New Issue
Block a user