Пример #1
0
        public OutStorageFilters GetFilters()
        {
            var filters = new OutStorageFilters()
            {
                Page          = Convert.ToInt32(HttpContext.Request.Query["page"]),
                Limit         = Convert.ToInt32(HttpContext.Request.Query["limit"]),
                OrderNum      = HttpContext.Request.Query["orderNum"],
                Code          = HttpContext.Request.Query["code"],
                StartDateTime = HttpContext.Request.Query["startTime"],
                EndDateTime   = HttpContext.Request.Query["endTime"],
            };

            return(filters);
        }
        public async Task <ResponseModel <OutStorageViewModel> > GetList(OutStorageFilters filters, SortCol sortCol, AccountViewModel acoount)
        {
            var query = _context.OutStorage.Where(o => o.CompanyId == acoount.CompanyId && o.IsDelete == 0);

            query = Search(query, filters);
            query = Sort(query, sortCol);
            var vms = await query.Skip((filters.Page - 1) *filters.Limit).Take(filters.Limit)
                      .ProjectTo <OutStorageViewModel>().ToListAsync();

            foreach (var vm in vms)
            {
                vm.RealNum = _context.OutStoDetail.Where(o => o.OrderNum == vm.OrderNum).Sum(o => o.RealNum);
                vm.PutNum  = (double)_context.OutStoDetail.Where(o => o.OrderNum == vm.OrderNum).Sum(o => o.PutRealNum);
            }
            ResponseModel <OutStorageViewModel> result = new ResponseModel <OutStorageViewModel>();

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }
 public IQueryable <OutStorage> Search(IQueryable <OutStorage> query, OutStorageFilters filters)
 {
     if (!string.IsNullOrWhiteSpace(filters.OrderNum))
     {
         query = query.Where(o => o.OrderNum.Contains(filters.OrderNum));
     }
     if (!string.IsNullOrWhiteSpace(filters.Status))
     {
         var status = Convert.ToInt32(filters.Status);
         query = query.Where(o => o.Status == status);
     }
     if (!string.IsNullOrWhiteSpace(filters.StartDateTime))
     {
         var startTime = Convert.ToDateTime(filters.StartDateTime);
         query = query.Where(o => o.CreateTime >= startTime);
     }
     if (!string.IsNullOrWhiteSpace(filters.EndDateTime))
     {
         var endTime = Convert.ToDateTime(filters.EndDateTime);
         query = query.Where(o => o.CreateTime < endTime);
     }
     return(query);
 }
        public async Task <ResponseModel <OutStorageViewModel> > GetListReport(OutStorageFilters filters, SortCol sortCol
                                                                               , AccountViewModel acoount)
        {
            var query = _context.OutStorage.Where(o => o.IsDelete == 0 && o.CompanyId == acoount.CompanyId)
                        .Select(o => new OutStorage()
            {
                OrderNum   = o.OrderNum,
                Num        = o.Num,
                CreateTime = o.CreateTime.Date
            });

            query = Search(query, filters);
            var orderNums = await query.Select(o => o.OrderNum).ToListAsync();

            var _query = query.GroupBy(o => o.CreateTime).Select(o => new OutStorageViewModel()
            {
                CreateTime = o.Key, Num = o.Count()
            });
            var vms = await _query.Skip((filters.Page - 1) *filters.Limit).Take(filters.Limit).ToListAsync();

            foreach (var vm in vms)
            {
                var details = _context.OutStoDetail.Where(o => orderNums.Contains(o.OrderNum) &&
                                                          o.CreateTime > vm.CreateTime && o.CreateTime < vm.CreateTime.AddDays(1)).ToList();
                vm.CreateTimeStr = vm.CreateTime.ToString("yyyy-MM-dd");
                vm.Num           = details.Sum(o => (double)o.PutRealNum);
                vm.Price         = details.Sum(o => o.OutPrice);
            }
            ResponseModel <OutStorageViewModel> result = new ResponseModel <OutStorageViewModel>();

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }
        public async Task <ResponseModel <OutStorageViewModel> > GetListCustomerReport(OutStorageFilters filters, SortCol sortCol
                                                                                       , AccountViewModel acoount)
        {
            var query = _context.OutStorage.Where(o => o.IsDelete == 0 && o.CompanyId == acoount.CompanyId);

            query = Search(query, filters);
            var _query = query.GroupBy(o => o.CusName).Select(o => new OutStorageViewModel()
            {
                CusName = o.Key, Num = o.Count()
            });
            var vms = await _query.Skip((filters.Page - 1) *filters.Limit).Take(filters.Limit).ToListAsync();

            ResponseModel <OutStorageViewModel> result = new ResponseModel <OutStorageViewModel>();

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }