diff --git a/Distribution/Features/DeliveryRide/DeliveryTaskService.cs b/Distribution/Features/DeliveryRide/DeliveryTaskService.cs index f31ae5a..8d589d6 100644 --- a/Distribution/Features/DeliveryRide/DeliveryTaskService.cs +++ b/Distribution/Features/DeliveryRide/DeliveryTaskService.cs @@ -159,13 +159,15 @@ public class DeliveryTaskService( { foreach (var item in task.Order.OrderItems.Where(i => i.QuantityFulfilled > 0)) { - var vehicleBalance = await stockRepo.GetBalanceAsync(item.FK_ItemId, vehicleId) - ?? throw new InvalidOperationException($"No vehicle stock found for item {item.FK_ItemId}"); + var vehicleBalance = await stockRepo.GetBalanceAsync(item.FK_ItemId, vehicleId); + var availableQuantity = vehicleBalance?.Quantity ?? 0; + var itemName = item.Item?.Name ?? item.FK_ItemId.ToString(); - if (vehicleBalance.Quantity < item.QuantityFulfilled) - throw new InvalidOperationException($"Insufficient vehicle stock for item {item.FK_ItemId}"); + if (availableQuantity < item.QuantityFulfilled) + 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; stockRepo.UpdateBalance(vehicleBalance);