feat: enhance inventory release logic in ExpirePendingOrdersService and InventoryService
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m27s

This commit is contained in:
masoodafar-web
2026-05-01 00:56:00 +03:30
parent 624ab7ea9f
commit eeb837f32e
2 changed files with 49 additions and 3 deletions
@@ -249,14 +249,23 @@ public class InventoryService : IInventoryService
var quantityBefore = item.ReservedQuantity;
item.ReservedQuantity = Math.Max(0, item.ReservedQuantity - quantity);
var releasedQuantity = quantityBefore - item.ReservedQuantity;
await _context.SaveChangesAsync(ct);
if (releasedQuantity == 0)
{
_logger.LogInformation(
"No reserved units to release for {ProductType} Id={ProductId}, OrderId={OrderId}",
productType, productId, orderId);
return true;
}
// ثبت StockMovement
await LogMovementAsync(
item.Id,
StockMovementType.Released,
quantity,
-releasedQuantity,
quantityBefore,
item.ReservedQuantity,
orderId,
@@ -268,7 +277,7 @@ public class InventoryService : IInventoryService
_logger.LogInformation(
"Released {Quantity} reserved units for {ProductType} Id={ProductId}, OrderId={OrderId}",
quantity, productType, productId, orderId);
releasedQuantity, productType, productId, orderId);
return true;
}