public BadReportFilters GetFilters()
        {
            var filters = new BadReportFilters()
            {
                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);
        }
Esempio n. 2
0
        public async Task <ResponseModel <BadReportViewModel> > GetList(BadReportFilters filters, SortCol sortCol, AccountViewModel acoount)
        {
            var query = _context.BadReport.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 <BadReportViewModel>().ToListAsync();

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

            result.status  = 0;
            result.message = "";
            result.total   = query.Count();
            result.data    = vms;
            return(result);
        }
Esempio n. 3
0
 public IQueryable <BadReport> Search(IQueryable <BadReport> query, BadReportFilters 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);
 }
Esempio n. 4
0
        public async Task <ResponseModel <BadReportDetailViewModel> > GetListReport(BadReportFilters filters, SortCol sortCol
                                                                                    , AccountViewModel acoount)
        {
            var query = _context.BadReport.Where(o => o.IsDelete == 0 && o.CompanyId == acoount.CompanyId)
                        .Select(o => new BadReport()
            {
                OrderNum   = o.OrderNum,
                Num        = o.Num,
                CreateTime = o.CreateTime.Date
            });

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

            var details = _context.BadReportDetail.Where(o => orderNums.Contains(o.OrderNum)).ToList();
            var _query  = details.GroupBy(o => o.ProductNum).Select(o => new BadReportDetailViewModel()
            {
                ProductNum = o.Key, Num = o.Count()
            });
            var vms = _query.Skip((filters.Page - 1) * filters.Limit).Take(filters.Limit).ToList();

            foreach (var vm in vms)
            {
                var detail = details.FirstOrDefault(o => o.ProductNum == vm.ProductNum);
                vm.ProductName = detail.ProductName;
                vm.BarCode     = detail.BarCode;
                vm.Num         = details.Where(o => o.ProductNum == vm.ProductNum).Sum(o => o.Num);
            }
            ResponseModel <BadReportDetailViewModel> result = new ResponseModel <BadReportDetailViewModel>();

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