feat: get consumed bins from Fifo queue on pop
diff --git a/erpnext/stock/valuation.py b/erpnext/stock/valuation.py
index 42a122f..6e885ab 100644
--- a/erpnext/stock/valuation.py
+++ b/erpnext/stock/valuation.py
@@ -48,8 +48,8 @@
 
 		return _round_off_if_near_zero(total_qty), _round_off_if_near_zero(total_value)
 
-	def add_stock(self, qty: float, rate: float) -> List[FifoBin]:
-		"""Update fifo queue with new stock and return queue.
+	def add_stock(self, qty: float, rate: float) -> None:
+		"""Update fifo queue with new stock.
 
 			args:
 				qty: new quantity to add
@@ -71,12 +71,11 @@
 					self.queue[-1] = [qty, rate]
 				else:  # new balance qty is still negative, maintain same rate
 					self.queue[-1][QTY] = qty
-		return self.get_state()
 
 	def remove_stock(
 		self, qty: float, rate: float, rate_generator: Callable[[], float]
 	) -> List[FifoBin]:
-		"""Remove stock from the queue and return queue.
+		"""Remove stock from the queue and return popped bins.
 
 		args:
 			qty: quantity to remove
@@ -84,6 +83,7 @@
 			rate_generator: function to be called if queue is not found and rate is required.
 		"""
 
+		consumed_bins = []
 		while qty:
 			if not len(self.queue):
 				# rely on rate generator.
@@ -111,19 +111,22 @@
 			if qty >= fifo_bin[QTY]:
 				# consume current bin
 				qty = _round_off_if_near_zero(qty - fifo_bin[QTY])
-				self.queue.pop(index)
+				to_consume = self.queue.pop(index)
+				consumed_bins.append(list(to_consume))
+
 				if not self.queue and qty:
 					# stock finished, qty still remains to be withdrawn
 					# negative stock, keep in as a negative bin
 					self.queue.append([-qty, rate or fifo_bin[RATE]])
+					consumed_bins.append([qty, rate or fifo_bin[RATE]])
 					break
-
 			else:
 				# qty found in current bin consume it and exit
 				fifo_bin[QTY] = _round_off_if_near_zero(fifo_bin[QTY] - qty)
+				consumed_bins.append([qty, fifo_bin[RATE]])
 				qty = 0
 
-		return self.get_state()
+		return consumed_bins
 
 
 def _round_off_if_near_zero(number: float, precision: int = 7) -> float: