Exemplo n.º 1
0
        public InStorageFilters GetFilters()
        {
            var filters = new InStorageFilters()
            {
                Page          = Convert.ToInt32(HttpContext.Request.Query["page"]),
                Limit         = Convert.ToInt32(HttpContext.Request.Query["limit"]),
                OrderNum      = HttpContext.Request.Query["orderNum"],
                Code          = HttpContext.Request.Query["code"],
                Status        = HttpContext.Request.Query["status"],
                StartDateTime = HttpContext.Request.Query["startTime"],
                EndDateTime   = HttpContext.Request.Query["endTime"],
            };

            return(filters);
        }
        public async Task <ResponseModel <InStorageViewModel> > GetListSupReport(InStorageFilters filters, SortCol sortCol
                                                                                 , AccountViewModel acoount)
        {
            var query = _context.InStorage.Where(o => o.IsDelete == 0 && o.CompanyId == acoount.CompanyId);

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

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

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

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

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

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }
 public IQueryable <InStorage> Search(IQueryable <InStorage> query, InStorageFilters 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 <InStorageViewModel> > GetListReport(InStorageFilters filters, SortCol sortCol
                                                                              , AccountViewModel acoount)
        {
            var query = _context.InStorage.Where(o => o.IsDelete == 0 && o.CompanyId == acoount.CompanyId)
                        .Select(o => new InStorage()
            {
                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 InStorageViewModel()
            {
                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.InStorDetail.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.InPrice);
            }
            ResponseModel <InStorageViewModel> result = new ResponseModel <InStorageViewModel>();

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