|
|
@@ -405,7 +405,7 @@ namespace PRSDesktop
|
|
|
|
|
|
private StockMovementBatch CreateBatch()
|
|
|
{
|
|
|
- StockMovementBatch batch = new StockMovementBatch();
|
|
|
+ var batch = new StockMovementBatch();
|
|
|
batch.Notes = "Stocktake";
|
|
|
batch.Employee.ID = EmployeeID;
|
|
|
batch.Type = StockMovementBatchType.Stocktake;
|
|
|
@@ -414,30 +414,28 @@ namespace PRSDesktop
|
|
|
|
|
|
return batch;
|
|
|
}
|
|
|
- private List<StockMovement> CompareHoldingsAndCreateMovements(Guid batchID)
|
|
|
+ private IEnumerable<StockMovement> CompareHoldingsAndCreateMovements(Guid batchID)
|
|
|
{
|
|
|
- List<StockMovement> movements = new List<StockMovement>();
|
|
|
- foreach (var holding in StockTakeHoldings)
|
|
|
+ return StockTakeHoldings.Select(holding =>
|
|
|
{
|
|
|
- StockHolding original = OriginalHoldings.Find(x => x.ID == holding.ID);
|
|
|
+ var original = OriginalHoldings.Find(x => x.ID == holding.ID);
|
|
|
if (holding.NewQty < 0.001 && holding.NewQty > 0)
|
|
|
holding.NewQty = 0;
|
|
|
- if (original != null)
|
|
|
- movements.Add(CreateMovement(holding, holding.NewQty - holding.OriginalQty, batchID));
|
|
|
+ if (original != null)
|
|
|
+ return CreateMovement(holding, holding.NewQty - holding.OriginalQty, batchID, holding.NewQty);
|
|
|
else
|
|
|
- movements.Add(CreateMovement(holding, holding.NewQty, batchID));
|
|
|
- }
|
|
|
- return movements;
|
|
|
+ return CreateMovement(holding, holding.NewQty, batchID, holding.NewQty);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
- private StockMovement CreateMovement(StockTakeHolding holding, double qty, Guid batchID)
|
|
|
+ private StockMovement CreateMovement(StockTakeHolding holding, double qty, Guid batchID, double balance)
|
|
|
{
|
|
|
- var movement = CreateBaseMovement(holding, batchID);
|
|
|
+ var movement = CreateBaseMovement(holding, batchID, balance);
|
|
|
|
|
|
return DetermineMovementType(movement, qty);
|
|
|
}
|
|
|
|
|
|
- private StockMovement CreateBaseMovement(StockTakeHolding holding, Guid batchID)
|
|
|
+ private StockMovement CreateBaseMovement(StockTakeHolding holding, Guid batchID, double balance)
|
|
|
{
|
|
|
var movement = new StockMovement();
|
|
|
|
|
|
@@ -455,6 +453,7 @@ namespace PRSDesktop
|
|
|
movement.Location.ID = holding.Location.ID;
|
|
|
movement.IsRemnant = false;
|
|
|
movement.Type = StockMovementType.StockTake;
|
|
|
+ movement.Balance = balance;
|
|
|
|
|
|
return movement;
|
|
|
}
|