Fix delivery task stock check
This commit is contained in:
@@ -159,13 +159,15 @@ public class DeliveryTaskService(
|
|||||||
{
|
{
|
||||||
foreach (var item in task.Order.OrderItems.Where(i => i.QuantityFulfilled > 0))
|
foreach (var item in task.Order.OrderItems.Where(i => i.QuantityFulfilled > 0))
|
||||||
{
|
{
|
||||||
var vehicleBalance = await stockRepo.GetBalanceAsync(item.FK_ItemId, vehicleId)
|
var vehicleBalance = await stockRepo.GetBalanceAsync(item.FK_ItemId, vehicleId);
|
||||||
?? throw new InvalidOperationException($"No vehicle stock found for item {item.FK_ItemId}");
|
var availableQuantity = vehicleBalance?.Quantity ?? 0;
|
||||||
|
var itemName = item.Item?.Name ?? item.FK_ItemId.ToString();
|
||||||
|
|
||||||
if (vehicleBalance.Quantity < item.QuantityFulfilled)
|
if (availableQuantity < item.QuantityFulfilled)
|
||||||
throw new InvalidOperationException($"Insufficient vehicle stock for item {item.FK_ItemId}");
|
throw new InvalidOperationException(
|
||||||
|
$"Insufficient vehicle stock for item '{itemName}': available {availableQuantity}, required {item.QuantityFulfilled}");
|
||||||
|
|
||||||
vehicleBalance.Quantity -= item.QuantityFulfilled;
|
vehicleBalance!.Quantity -= item.QuantityFulfilled;
|
||||||
vehicleBalance.UpdatedAt = DateTime.Now;
|
vehicleBalance.UpdatedAt = DateTime.Now;
|
||||||
stockRepo.UpdateBalance(vehicleBalance);
|
stockRepo.UpdateBalance(vehicleBalance);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user