diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index f4e8f40ebf6..3457d963b69 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -1048,84 +1048,6 @@ class StockReconciliation(StockController): else: self._cancel() - def recalculate_current_qty(self, voucher_detail_no, sle_creation, add_new_sle=False): - for row in self.items: - if voucher_detail_no != row.name: - continue - - if row.current_qty < 0: - return - - val_rate = 0.0 - current_qty = 0.0 - if row.current_serial_and_batch_bundle: - current_qty = self.get_current_qty_for_serial_or_batch(row, sle_creation) - elif row.serial_no: - item_dict = get_stock_balance_for( - row.item_code, - row.warehouse, - self.posting_date, - self.posting_time, - row=row, - company=self.company, - ) - - current_qty = item_dict.get("qty") - row.current_serial_no = item_dict.get("serial_nos") - row.current_valuation_rate = item_dict.get("rate") - val_rate = item_dict.get("rate") - elif row.batch_no: - current_qty = get_batch_qty_for_stock_reco( - row.item_code, - row.warehouse, - row.batch_no, - self.posting_date, - self.posting_time, - self.name, - sle_creation, - ) - - precesion = row.precision("current_qty") - if flt(current_qty, precesion) != flt(row.current_qty, precesion): - if not row.serial_no: - val_rate = get_incoming_rate( - frappe._dict( - { - "item_code": row.item_code, - "warehouse": row.warehouse, - "qty": current_qty * -1, - "serial_and_batch_bundle": row.current_serial_and_batch_bundle, - "batch_no": row.batch_no, - "voucher_type": self.doctype, - "voucher_no": self.name, - "company": self.company, - "posting_date": self.posting_date, - "posting_time": self.posting_time, - } - ) - ) - - row.current_valuation_rate = val_rate - row.current_qty = current_qty - row.db_set( - { - "current_qty": row.current_qty, - "current_valuation_rate": row.current_valuation_rate, - "current_amount": flt(row.current_qty * row.current_valuation_rate), - } - ) - - if add_new_sle and not frappe.db.get_value( - "Stock Ledger Entry", - {"voucher_detail_no": row.name, "actual_qty": ("<", 0), "is_cancelled": 0}, - "name", - ): - if not row.current_serial_and_batch_bundle: - self.set_current_serial_and_batch_bundle(voucher_detail_no, save=True) - row.reload() - - self.add_missing_stock_ledger_entry(row, voucher_detail_no, sle_creation) - def add_missing_stock_ledger_entry(self, row, voucher_detail_no, sle_creation): if row.current_qty == 0: return diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py index 25107ae12e6..2ad1fb42f13 100644 --- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py @@ -1044,7 +1044,7 @@ class TestStockReconciliation(ERPNextTestSuite, StockTestMixin): sr.reload() self.assertTrue(sr.items[0].serial_and_batch_bundle) - self.assertTrue(sr.items[0].current_serial_and_batch_bundle) + self.assertFalse(sr.items[0].current_serial_and_batch_bundle) def test_not_reconcile_all_batch(self): from erpnext.stock.doctype.batch.batch import get_batch_qty diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index f0d622de19f..83c7aecd38d 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1061,7 +1061,6 @@ class update_entries_after: def reset_actual_qty_for_stock_reco(self, sle): doc = frappe.get_doc("Stock Reconciliation", sle.voucher_no) - doc.recalculate_current_qty(sle.voucher_detail_no, sle.creation, sle.actual_qty > 0) if sle.actual_qty < 0: doc.reload()