private IQueryable <PurchaseOrder> FilterPurchaseOrders(PurchaseOrdersFilterModel input, IQueryable <PurchaseOrder> purchaseOrders) { if (input.Id != null) { purchaseOrders = purchaseOrders.Where(x => x.Id == input.Id); } if (input.WarehouseId != null && input.WarehouseId != 0) { purchaseOrders = purchaseOrders.Where(x => x.WarehouseId == input.WarehouseId); } if (input.PurchaseOrderStatus != null) { purchaseOrders = purchaseOrders.Where(x => x.PurchaseOrderStatus == input.PurchaseOrderStatus); } if (input.ReceivingStatus != null) { purchaseOrders = purchaseOrders.Where(x => x.ReceivingStatus == input.ReceivingStatus); } if (input.SKU != null) { purchaseOrders = purchaseOrders.Where(x => x.PurchaseItems.Any(pi => pi.Product.SKU == input.SKU || pi.ProductId.ToString() == input.SKU)); } if (input.VendorId != null && input.VendorId != 0) { purchaseOrders = purchaseOrders.Where(x => x.VendorId == input.VendorId); } return(purchaseOrders); }
public IEnumerable <T> GetAllPurchaseOrders <T>(PurchaseOrdersFilterModel input) { var purchaseOrders = this.context.PurchaseOrders.Where(x => !x.IsDeleted); purchaseOrders = this.FilterPurchaseOrders(input, purchaseOrders).OrderByDescending(x => x.Id); return(purchaseOrders .Skip((input.Page - 1) * GlobalConstants.PageSize) .Take(GlobalConstants.PageSize) .To <T>() .ToList()); }
public IActionResult ManagePurchaseOrders(PurchaseOrdersFilterModel input) { var model = new ManagePurchaseOrdersViewModel { Filters = input, Page = input.Page, PurchaseOrders = this.purchaseOrdersService.GetAllPurchaseOrders <PurchaseOrderSummaryViewModel>(input), PagesCount = (int)Math.Ceiling(this.purchaseOrdersService.GetAllPurchaseOrdersCount() / (double)GlobalConstants.PageSize), }; return(this.View(model)); }