Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }