public async Task<PagedList<QrCodeAgain_Dto>> FilterQrCodeAgain(PaginationParams param, FilterQrCodeAgainParam filterParam) { var pred_List_Transaction_Main = PredicateBuilder.New<WMSB_Transaction_Main>(true); pred_List_Transaction_Main.And(x => x.Can_Move == "Y"); if (!String.IsNullOrEmpty(filterParam.To_Date) && !String.IsNullOrEmpty(filterParam.From_Date)) { pred_List_Transaction_Main.And(x => x.Transac_Time >= Convert.ToDateTime(filterParam.From_Date + " 00:00:00.000") && x.Transac_Time <= Convert.ToDateTime(filterParam.To_Date + " 23:59:59.997")); } if (!String.IsNullOrEmpty(filterParam.MO_No)) { pred_List_Transaction_Main.And(x => x.MO_No.Trim() == filterParam.MO_No.Trim()); } if (!String.IsNullOrEmpty(filterParam.Rack_Location)) { pred_List_Transaction_Main.And(x => x.Rack_Location.Trim() == filterParam.Rack_Location.Trim()); } if (!String.IsNullOrEmpty(filterParam.Material_ID)) { pred_List_Transaction_Main.And(x => x.Material_ID.Trim() == filterParam.Material_ID.Trim()); } var listTransactionMain = _repoTransactionMain.FindAll(pred_List_Transaction_Main); var packingLists = _repoPackingList.FindAll(); var data = (from a in listTransactionMain join b in packingLists on new { MO_No = a.MO_No.Trim(), Purchase_No = a.Purchase_No.Trim(), Mo_Seq = a.MO_Seq, Material_View_Dto = a.Material_ID.Trim() } equals new { MO_No = b.MO_No.Trim(), Purchase_No = b.Purchase_No.Trim(), Mo_Seq = b.MO_Seq, Material_View_Dto = b.Material_ID.Trim() } select new QrCodeAgain_Dto() { ID = a.ID, Transac_Type = a.Transac_Type, Transac_No = a.Transac_No, Transac_Sheet_No = a.Transac_Sheet_No, Can_Move = a.Can_Move, Transac_Time = a.Transac_Time, QRCode_ID = a.QRCode_ID, QRCode_Version = a.QRCode_Version, MO_No = a.MO_No, Purchase_No = a.Purchase_No, MO_Seq = a.MO_Seq, Material_ID = a.Material_ID, Material_Name = a.Material_Name, Purchase_Qty = a.Purchase_Qty, Transacted_Qty = a.Transacted_Qty, Rack_Location = a.Rack_Location, Missing_No = a.Missing_No, Pickup_No = a.Pickup_No, Supplier_ID = b.Supplier_ID, Supplier_Name = b.Supplier_Name, Updated_By = a.Updated_By, Updated_Time = a.Updated_Time }); if (!String.IsNullOrEmpty(filterParam.Supplier_ID) && filterParam.Supplier_ID.Trim() != "All") { data = data.Where(x => x.Supplier_ID.Trim() == filterParam.Supplier_ID.Trim()); } data = data.Distinct().OrderByDescending(x => x.Updated_Time); return await PagedList<QrCodeAgain_Dto>.CreateAsync(data, param.PageNumber, param.PageSize, false); }
public async Task <PagedList <Transaction_Main_Dto> > FilterQrCodeAgain(PaginationParams param, FilterQrCodeAgainParam filterParam) { var lists = new List <Transaction_Main_Dto>(); var listQrCodeId = await _repoTransactionMain.GetAll() .Select(x => x.QRCode_ID).Distinct().ToListAsync(); var listTransactionMain = await _repoTransactionMain.GetAll().ProjectTo <Transaction_Main_Dto>(_configMapper).ToListAsync(); foreach (var item in listQrCodeId) { // Fix Show Main var transactionItem = listTransactionMain .Where(x => x.QRCode_ID.Trim() == item.Trim() && x.Can_Move == "Y") .OrderByDescending(x => x.QRCode_Version).FirstOrDefault(); if (transactionItem != null) { lists.Add(transactionItem); } } if (filterParam.MO_No != null && filterParam.MO_No != "") { lists = lists.Where(x => x.MO_No.Trim() == filterParam.MO_No.Trim()).ToList(); } if (filterParam.Rack_Location != null && filterParam.Rack_Location != "") { lists = lists.Where(x => x.Rack_Location.Trim() == filterParam.Rack_Location.Trim()).ToList(); } if (filterParam.Material_ID != null && filterParam.Material_ID != "") { lists = lists.Where(x => x.Material_ID.Trim() == filterParam.Material_ID.Trim()).ToList(); } lists = lists.Distinct().OrderByDescending(x => x.Updated_Time).ToList(); return(PagedList <Transaction_Main_Dto> .Create(lists, param.PageNumber, param.PageSize)); }
public async Task <IActionResult> FilterQrCodeAgain([FromQuery] PaginationParams param, FilterQrCodeAgainParam filterParam) { var data = await _service.FilterQrCodeAgain(param, filterParam); Response.AddPagination(data.CurrentPage, data.PageSize, data.TotalCount, data.TotalPages); return(Ok(data)); }