diff --git a/Distribution/Features/Order/OrderRepository.cs b/Distribution/Features/Order/OrderRepository.cs index 20fe8bb..3016483 100644 --- a/Distribution/Features/Order/OrderRepository.cs +++ b/Distribution/Features/Order/OrderRepository.cs @@ -28,8 +28,10 @@ public class OrderRepository(AppDBContext context) : IOrderRepository context.Orders.Update(entity); } - public async Task> GetItemsByOrderIdAsync(Guid orderId) => - await context.OrderItems.Where(oi => oi.FK_OrderId == orderId).ToListAsync(); + public async Task> GetItemsByOrderIdAsync(Guid orderId, bool includeHistory = false) => + await context.OrderItems + .Where(oi => oi.FK_OrderId == orderId && (includeHistory || oi.IsActive)) + .ToListAsync(); public async Task> GetByStoreIdAsync(Guid storeId) => await context.Orders.Where(o => o.FK_StoreId == storeId && o.IsActive).ToListAsync(); @@ -40,10 +42,21 @@ public class OrderRepository(AppDBContext context) : IOrderRepository public async Task> GetPendingByRouteIdAsync(Guid routeId) => await context.Orders .Include(o => o.Store) - .Include(o => o.OrderItems) + .Include(o => o.OrderItems.Where(i => i.IsActive)) .ThenInclude(i => i.Item) .Where(o => o.IsActive && o.Store.FK_RouteId == routeId && (o.Status == OrderStatus.Pending || o.Status == OrderStatus.PartiallyFulfilled)) .ToListAsync(); + + public async Task> GetConfirmedAsync(Guid? agentId, Guid? routeId, Guid? storeId) => + await context.Orders + .Include(o => o.Store) + .Where(o => o.IsActive + && o.ConfirmedAt != null + && o.Status != OrderStatus.Cancelled + && (agentId == null || o.CreatedByUserId == agentId) + && (routeId == null || o.Store.FK_RouteId == routeId) + && (storeId == null || o.FK_StoreId == storeId)) + .ToListAsync(); }