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); }
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); }
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); }
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); }