fix: incorrect Difference Amount (backport #42008) (#42013)

fix: incorrect Difference Amount (#42008)

(cherry picked from commit 7d91c6cbd5)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
mergify[bot]
2024-06-24 17:04:24 +05:30
committed by GitHub
parent 68b318a94b
commit 838cc5b72a
2 changed files with 13 additions and 5 deletions

View File

@@ -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):

View File

@@ -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