public async Task <PagedList <TransferLocation_Dto> > Search(TransferLocationParam transferLocationParam, PaginationParams paginationParams) { DateTime t1 = Convert.ToDateTime(transferLocationParam.FromDate); DateTime t2 = DateTime.Parse(transferLocationParam.ToDate + " 23:59:59");// ép về kiểu ngày truyền vào và giờ là 23h59' var model = _repoTransactionMain.FindAll(x => x.Transac_Time >= t1 && x.Transac_Time <= t2 && x.Transac_Type != "R"); if (transferLocationParam.Status != string.Empty && transferLocationParam.Status != null) { model = model.Where(x => x.Transac_Type.Trim() == transferLocationParam.Status.Trim()); } var data = model.Select(x => new TransferLocation_Dto { Batch = x.MO_Seq, FromLocation = "", Qty = _repoTransactionDetail.GetQtyByTransacNo(x.Transac_No), UpdateBy = x.Updated_By, TransferNo = x.Transac_No.Trim(), TransacTime = x.Transac_Time, PlanNo = x.MO_No, MatId = x.Material_ID, MatName = x.Material_Name, ToLocation = x.Rack_Location, Id = x.ID, TransacType = x.Transac_Type.Trim() }); return(await PagedList <TransferLocation_Dto> .CreateAsync(data, paginationParams.PageNumber, paginationParams.PageSize)); }
public async Task <PagedList <TransferLocation_Dto> > Search(TransferLocationParam transferLocationParam, PaginationParams paginationParams) { var pred_Transaction_Main = PredicateBuilder.New <WMSB_Transaction_Main>(true); var packingList = _repoPackingList.FindAll(); pred_Transaction_Main.And(x => x.Transac_Type.Trim() != "R"); if (transferLocationParam.FromDate != "" && transferLocationParam.ToDate != "") { DateTime t1 = Convert.ToDateTime(transferLocationParam.FromDate + " 00:00:00.000"); DateTime t2 = DateTime.Parse(transferLocationParam.ToDate + " 23:59:59");// ép về kiểu ngày truyền vào và giờ là 23h59' pred_Transaction_Main.And(x => x.Transac_Time >= t1 && x.Transac_Time <= t2); } if (!String.IsNullOrEmpty(transferLocationParam.Status)) { pred_Transaction_Main.And(x => x.Transac_Type.Trim() == transferLocationParam.Status.Trim()); } if (!String.IsNullOrEmpty(transferLocationParam.MoNo)) { pred_Transaction_Main.And(x => x.MO_No.Trim() == transferLocationParam.MoNo.Trim()); } if (!String.IsNullOrEmpty(transferLocationParam.MaterialId)) { pred_Transaction_Main.And(x => x.Material_ID.Trim() == transferLocationParam.MaterialId.Trim()); } var model = _repoTransactionMain.FindAll(pred_Transaction_Main).ProjectTo <Transaction_Main_Dto>(_configMapper); if (!String.IsNullOrEmpty(transferLocationParam.Supplier_ID) && transferLocationParam.Supplier_ID.Trim() != "All") { packingList = packingList.Where(x => x.Supplier_ID.Trim() == transferLocationParam.Supplier_ID.Trim()); } var packingListQuery = packingList.Select(x => new { x.MO_No, x.Purchase_No, x.MO_Seq, x.Material_ID }).Distinct(); var data = (from a in model join b in packingListQuery on new { Mono = a.MO_No.Trim(), PurchaseNo = a.Purchase_No.Trim(), Batch = a.MO_Seq, MaterialID = a.Material_ID.Trim() } equals new { Mono = b.MO_No.Trim(), PurchaseNo = b.Purchase_No.Trim(), Batch = b.MO_Seq, MaterialID = b.Material_ID.Trim() } select new TransferLocation_Dto() { Batch = a.MO_Seq, FromLocation = "", Qty = a.Transac_Type.Trim() == "O" ? _repoTransactionDetail.GetTransQtyByTransacNo(a.Transac_No) : _repoTransactionDetail.GetQtyByTransacNo(a.Transac_No), UpdateBy = a.Updated_By, TransferNo = a.Transac_No.Trim(), TransacTime = a.Transac_Time, PlanNo = a.MO_No.Trim(), MatId = a.Material_ID.Trim(), MatName = a.Material_Name, ToLocation = a.Rack_Location, Id = a.ID, TransacType = a.Transac_Type.Trim() }).OrderBy(x => x.TransacType).ThenBy(x => x.MatId).ThenByDescending(x => x.TransacTime); return(await PagedList <TransferLocation_Dto> .CreateAsync(data, paginationParams.PageNumber, paginationParams.PageSize)); }
public async Task <IActionResult> Search([FromQuery] PaginationParams paginationParams, TransferLocationParam transferLocationParam) { var result = await _service.Search(transferLocationParam, paginationParams); Response.AddPagination(result.CurrentPage, result.PageSize, result.TotalCount, result.TotalPages); return(Ok(result)); }