Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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));
        }