feat: enhance inventory release logic in ExpirePendingOrdersService and InventoryService
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m27s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m27s
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user