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 <TransferLocation_Dto> GetByQrCodeId(object qrCodeId, string updateBy) { TransferLocation_Dto model = new TransferLocation_Dto(); // Lấy ra TransactionMain cùng QRCode_ID và Can_Move == "Y" và QRCode_Version mới nhất var transactionModel = await _repoTransactionMain.FindAll(x => x.QRCode_ID.Trim() == qrCodeId.ToString().Trim() && x.Can_Move == "Y" && (x.Transac_Type.Trim() == "I" || x.Transac_Type.Trim() == "M" || x.Transac_Type.Trim() == "R")).OrderByDescending(x => x.QRCode_Version).FirstOrDefaultAsync(); var qrCodeModel = await _repoQRCodeMain.GetByQRCodeID(qrCodeId); if (transactionModel != null) { var packingListModel = await _repoPackingList.FindAll(x => x.MO_No.Trim() == transactionModel.MO_No.Trim()).FirstOrDefaultAsync(); var materialPurchaseModel = await _repoMaterialView.FindAll(x => x.Plan_No.Trim() == transactionModel.MO_No.Trim() && x.Purchase_No.Trim() == transactionModel.Purchase_No.Trim() && x.Mat_.Trim() == transactionModel.Material_ID.Trim()).FirstOrDefaultAsync(); model.Id = transactionModel.ID; model.QrCodeId = transactionModel.QRCode_ID.Trim(); model.TransferNo = "TB" + DateTime.Now.ToString("yyyyMMdd") + "001"; model.PlanNo = transactionModel.MO_No.Trim(); model.ReceiveNo = qrCodeModel.Receive_No.Trim(); model.Batch = transactionModel.MO_Seq; model.MatId = transactionModel.Material_ID.Trim(); model.MatName = transactionModel.Material_Name.Trim(); model.FromLocation = transactionModel.Rack_Location.Trim(); model.Qty = _repoTransactionDetail.GetQtyByTransacNo(transactionModel.Transac_No); model.UpdateBy = updateBy; model.TransacTime = DateTime.Now; model.ModelName = packingListModel.Model_Name; model.ModelNo = packingListModel.Model_No; model.Article = packingListModel.Article; model.CustmoerPart = materialPurchaseModel.Custmoer_Part; model.CustmoerName = materialPurchaseModel.Custmoer_Name; } return(model); }
public async Task <List <Transfer_Form_Print_Dto> > GetInfoTransferFormPrintDetail(List <Transfer_Form_Generate_Dto> generateTransferForm) { List <Transfer_Form_Print_Dto> listTransferFormPrint = new List <Transfer_Form_Print_Dto>(); var transationMain = _transactionMainRepo.FindAll(); var packingList = _packingListRepository.FindAll(); var qrCodeMain = _qRCodeMainRepository.FindAll(); var data = generateTransferForm.GroupJoin( transationMain, x => x.Transac_No, y => y.Transac_No, (x, y) => new { GenerateTransferForm = x, TransationMain = y }) .SelectMany( x => x.TransationMain.DefaultIfEmpty(), (x, y) => new { GenerateTransferForm = x.GenerateTransferForm, TransationMain = y }) .GroupJoin( qrCodeMain, x => new { QRCode_ID = x.TransationMain.QRCode_ID, QRCode_Version = x.TransationMain.QRCode_Version }, y => new { QRCode_ID = y.QRCode_ID, QRCode_Version = y.QRCode_Version }, (x, y) => new { GenerateTransferFormTransactionMain = x, QrCodeMain = y }) .SelectMany( x => x.QrCodeMain.DefaultIfEmpty(), (x, y) => new { GenerateTransferFormTransactionMain = x.GenerateTransferFormTransactionMain, QrCodeMain = y }) .GroupJoin( packingList, x => x.QrCodeMain.Receive_No, y => y.Receive_No, (x, y) => new { GenerateTransferFormTransactionMainQrCodeMain = x, PackingList = y }) .SelectMany( x => x.PackingList.DefaultIfEmpty(), (x, y) => new Transfer_Form_Print_Dto { Rack_Location = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.TransationMain.Rack_Location, Collect_Trans_No = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.GenerateTransferForm.Collect_Trans_No, MO_No = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.TransationMain.MO_No, MO_Seq = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.TransationMain.MO_Seq, Material_ID = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.TransationMain.Material_ID, Material_Name = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.TransationMain.Material_Name, T3_Supplier = y.T3_Supplier, T3_Supplier_Name = y.T3_Supplier_Name, Supplier_ID = y.Supplier_ID, Supplier_Name = y.Supplier_Name, Article = y.Article, Subcon_ID = y.Subcon_ID, Subcon_Name = y.Subcon_Name, Model_Name = y.Model_Name, Model_No = y.Model_No, Custmoer_Part = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.GenerateTransferForm.Custmoer_Part, Custmoer_Name = x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.GenerateTransferForm.Custmoer_Name, Line_ASY = _cacheRepository.GetLineASY(y.MO_No, y.MO_Seq, y.Material_ID, y.Purchase_No), Line_STF = _materialViewRepository.GetLineSTF(y.MO_No, y.MO_Seq, y.Material_ID, y.Purchase_No), TransferFormQty = GetTransferFormPrintQty(x.GenerateTransferFormTransactionMainQrCodeMain.GenerateTransferFormTransactionMain.GenerateTransferForm.Collect_Trans_No) }).ToList(); return(await Task.FromResult(data)); }
public async Task <List <QRCodeMainViewModel> > GetListQrCodeMainView(List <QrCodeIDVersion> data) { var listQrCode = data.Select(x => x.QRCode_ID).ToList(); var listBatch = data.Select(x => x.MO_Seq).ToList(); var packingList = _repoPackingList.FindAll(); var listMono = data.Select(x => x.MO_No.Trim()).ToList(); var listQrCodeMain = _repoQrcode .FindAll(x => listQrCode.Contains(x.QRCode_ID)); var viewMaterialPurchase = _repoMaterialView.FindAll(x => listBatch.Contains(x.MO_Seq) && listMono.Contains(x.Plan_No.Trim())); var listQrCodeModel = await(from x in listQrCodeMain join y in packingList on x.Receive_No.Trim() equals y.Receive_No.Trim() join z in viewMaterialPurchase on new { Purchase_No = y.Purchase_No.Trim(), PlanNo = y.MO_No.Trim() } equals new { Purchase_No = z.Purchase_No.Trim(), PlanNo = z.Plan_No.Trim() } select new QRCodeMainViewModel() { QRCode_ID = x.QRCode_ID, MO_No = y.MO_No, Receive_No = x.Receive_No, Receive_Date = y.Receive_Date, Supplier_ID = y.Supplier_ID, Supplier_Name = y.Supplier_Name, T3_Supplier = y.T3_Supplier, T3_Supplier_Name = y.T3_Supplier_Name, Subcon_ID = y.Subcon_ID, Subcon_Name = y.Subcon_Name, Model_Name = y.Model_Name, Model_No = y.Model_No, Article = y.Article, MO_Seq = z.MO_Seq, Material_ID = y.Material_ID, Material_Name = y.Material_Name, Stockfiting_Date = z.Stockfiting_Date, Assembly_Date = z.Assembly_Date, CRD = z.CRD, Line_ASY = z.Line_ASY, Custmoer_Part = z.Custmoer_Part, Custmoer_Name = z.Custmoer_Name }).ToListAsync(); return(listQrCodeModel); }
public async Task <PagedList <WMSB_Packing_List> > Search(PaginationParams param, FilterPackingListParam filterParam) { var pred_Packing_List = PredicateBuilder.New <WMSB_Packing_List>(true); pred_Packing_List.And(x => x.Generated_QRCode.Trim() == "N"); if (filterParam.From_Date != null && filterParam.To_Date != null) { pred_Packing_List.And(x => x.Receive_Date >= DateTime.Parse(filterParam.From_Date + " 00:00:00.000") && x.Receive_Date <= DateTime.Parse(filterParam.To_Date + " 23:59:59.000")); } if (!String.IsNullOrEmpty(filterParam.MO_No)) { pred_Packing_List.And(x => x.MO_No.Trim() == filterParam.MO_No.Trim()); } if (filterParam.Supplier_ID != "All" && !String.IsNullOrEmpty(filterParam.Supplier_ID)) { pred_Packing_List.And(x => x.Supplier_ID.Trim() == filterParam.Supplier_ID.Trim()); } var data = _repoPackingList.FindAll(pred_Packing_List); return(await PagedList <WMSB_Packing_List> .CreateAsync(data, param.PageNumber, param.PageSize, false)); }
public async Task <QRCodeMainViewModel> GetQrCodeInfor(string qrCodeId, string moSeq) { var packingListQuery = _repoPackingList.FindAll(); var qrCodeMainQuery = _repoQRCodeMain.FindAll(); var viewMaterialPurchaseQuery = _repoMaterialView.FindAll(); var qrCodeModel = await(from x in qrCodeMainQuery join y in packingListQuery on x.Receive_No.Trim() equals y.Receive_No.Trim() join z in viewMaterialPurchaseQuery on new { Purchase_No = y.Purchase_No.Trim(), PlanNo = y.MO_No.Trim() } equals new { Purchase_No = z.Purchase_No.Trim(), PlanNo = z.Plan_No.Trim() } select new QRCodeMainViewModel() { QRCode_ID = x.QRCode_ID, MO_No = y.MO_No, Receive_No = x.Receive_No, Receive_Date = y.Receive_Date, Supplier_ID = y.Supplier_ID, Supplier_Name = y.Supplier_Name, T3_Supplier = y.T3_Supplier, T3_Supplier_Name = y.T3_Supplier_Name, Subcon_ID = y.Subcon_ID, Subcon_Name = y.Subcon_Name, Model_Name = y.Model_Name, Model_No = y.Model_No, Article = y.Article, MO_Seq = y.MO_Seq, Material_ID = y.Material_ID, Material_Name = y.Material_Name, Stockfiting_Date = z.Stockfiting_Date, Assembly_Date = z.Assembly_Date, CRD = z.CRD, Line_ASY = z.Line_ASY, Custmoer_Part = z.Custmoer_Part, Custmoer_Name = z.Custmoer_Name }).Where(x => x.QRCode_ID.Trim() == qrCodeId.Trim() && x.MO_Seq == moSeq).FirstOrDefaultAsync(); return(qrCodeModel); }
public async Task<QRCodePrint_Dto> GetQrCodePrint(string qrCodeId, int qrCodeVersion) { var qrCodeModel = _repoQrcode.FindSingle(x => x.QRCode_ID.Trim() == qrCodeId.Trim() && x.QRCode_Version == qrCodeVersion); var packingListModel = await _repoPacking.FindAll(x => x.Receive_No.Trim() == qrCodeModel.Receive_No.Trim()).ProjectTo<Packing_List_Dto>(_configMapper).FirstOrDefaultAsync(); var transactionMainModel = _repoTransactionMain.FindSingle(x => x.QRCode_ID.Trim() == qrCodeModel.QRCode_ID.Trim() && x.QRCode_Version == qrCodeModel.QRCode_Version && (x.Transac_Type.Trim() == "I" || x.Transac_Type.Trim() == "R")); var transactionDetailModel = await _repoTransactionDetail.FindAll(x => x.Transac_No.Trim() == transactionMainModel.Transac_No.Trim()).ProjectTo<TransferLocationDetail_Dto>(_configMapper).OrderBy(x => x.Tool_Size).ToListAsync(); // Lấy ra những thuộc tính cần in QRCodePrint_Dto result = new QRCodePrint_Dto(); result.TransactionDetailByQrCodeId = transactionDetailModel; result.PackingListByQrCodeId = packingListModel; result.RackLocation = transactionMainModel.Rack_Location; return result; }
public async Task <bool> AddListQRCode(List <string> listReceiveNo, string updateBy) { listReceiveNo = listReceiveNo.Select(x => x.Trim()).ToList(); var packingLists = await _repoPacking.FindAll(x => listReceiveNo.Contains(x.Receive_No.Trim())).ToListAsync(); var checkCreate = true; foreach (var item in listReceiveNo) { // Tạo QrCodeMain để thêm vào database var qrCodeDto = new QRCode_Main_Dto(); var packing = packingLists.Where(x => x.Receive_No.Trim() == item).FirstOrDefault(); // Nếu Generated_QrCode khác Y thì mới Tạo QrCode if (packing.Generated_QRCode != "Y") { packing.Generated_QRCode = "Y"; string qrCodeId = ""; if (packing.Sheet_Type.Trim() == "R" || packing.Sheet_Type.Trim() == "M") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "A" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } else if (packing.Sheet_Type.Trim() == "B") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "B" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } qrCodeDto.QRCode_ID = qrCodeId; qrCodeDto.Receive_No = packing.Receive_No.Trim(); qrCodeDto.QRCode_Version = 1; qrCodeDto.Valid_Status = "Y"; qrCodeDto.Is_Scanned = "N"; qrCodeDto.QRCode_Type = packing.Sheet_Type.Trim(); qrCodeDto.Updated_By = updateBy; await _repoPacking.SaveAll(); var qrCodeMain = _mapper.Map <WMSB_QRCode_Main>(qrCodeDto); _repoQrcode.Add(qrCodeMain); // Tạo QrCodeDetail để thêm vào database var listPackingDetail = await _repoPackingDetail.FindAll(x => x.Receive_No.Trim() == item).ToListAsync(); foreach (var packingItem in listPackingDetail) { var qrCodeDetailDto = new QRCode_Detail_Dto(); qrCodeDetailDto.QRCode_ID = qrCodeId; qrCodeDetailDto.QRCode_Version = 1; qrCodeDetailDto.Order_Size = packingItem.Order_Size; qrCodeDetailDto.Model_Size = packingItem.Model_Size; qrCodeDetailDto.Tool_Size = packingItem.Tool_Size; qrCodeDetailDto.Spec_Size = packingItem.Spec_Size; qrCodeDetailDto.Qty = packingItem.Received_Qty; qrCodeDetailDto.Updated_By = updateBy; var qrCodeDetail = _mapper.Map <WMSB_QRCode_Detail>(qrCodeDetailDto); _repoQrCodeDetail.Add(qrCodeDetail); if (!await _repoQrCodeDetail.SaveAll()) { checkCreate = false; break; } } } } await _repoQrcode.SaveAll(); return(checkCreate); }
public async Task <List <ReceiveNoMain> > ReceiveNoMain(MaterialMainViewModel model) { var packingList = _repoPackingList.FindAll(x => x.MO_No.Trim() == model.MO_No.Trim()); var packingListDetail = _repoPackingListDetail.FindAll(); var materialList = new List <Material_Dto>(); if (model.Missing_No == "") { materialList = await _repoPurchase.FindAll(x => x.Purchase_No.Trim() == model.Purchase_No.Trim() && x.MO_No.Trim() == model.MO_No.Trim() && x.Biz_Tflag.Trim() != "D" && (x.MO_Qty != 0 || x.Purchase_Qty != 0)) .ProjectTo <Material_Dto>(_configMapper) .ToListAsync(); } else { materialList = await _repoMissing.FindAll().ProjectTo <Material_Dto>(_configMapper) .Where(x => x.Purchase_No.Trim() == model.Purchase_No.Trim() && x.MO_No.Trim() == model.MO_No.Trim()).ToListAsync(); } var dataModel = await(from a in packingList join b in packingListDetail on a.Receive_No.Trim() equals b.Receive_No.Trim() where a.Purchase_No.Trim() == model.Purchase_No.Trim() select new { Status = model.Status, Purchase_No = model.Purchase_No, Delivery_No = a.Delivery_No, Missing_No = model.Missing_No, MO_No = model.MO_No, Receive_No = a.Receive_No, MO_Seq = a.MO_Seq, Material_ID = a.Material_ID, Material_Name = a.Material_Name, Receive_Date = a.Receive_Date, Purchase_Qty = b.Purchase_Qty, Received_Qty = b.Received_Qty, Generated_QRCode = a.Generated_QRCode, Sheet_Type = a.Sheet_Type, Updated_By = a.Updated_By }).ToListAsync(); var data = dataModel.GroupBy(x => x.Receive_No).Select(cl => new ReceiveNoMain() { MO_No = cl.FirstOrDefault().MO_No, Missing_No = cl.FirstOrDefault().Missing_No, Purchase_No = cl.FirstOrDefault().Purchase_No, Delivery_No = cl.FirstOrDefault().Delivery_No, Receive_No = cl.FirstOrDefault().Receive_No, MO_Seq = cl.FirstOrDefault().MO_Seq, Material_ID = cl.FirstOrDefault().Material_ID, Material_Name = cl.FirstOrDefault().Material_Name, Receive_Date = cl.FirstOrDefault().Receive_Date, Purchase_Qty = cl.Sum(c => c.Purchase_Qty), Accumated_Qty = cl.Sum(c => c.Received_Qty), Generated_QRCode = cl.FirstOrDefault().Generated_QRCode, Sheet_Type = cl.FirstOrDefault().Sheet_Type, Updated_By = cl.FirstOrDefault().Updated_By }).OrderByDescending(x => x.Receive_Date).ToList(); foreach (var item1 in data) { var materialByPurchaseBath = materialList.Where(x => x.MO_Seq == item1.MO_Seq); var list1 = materialByPurchaseBath.GroupBy(x => x.Purchase_No).Select(cl => new { Accumated_Qty = cl.Sum(x => x.Accumlated_In_Qty) }).ToList(); item1.Accumated_Qty_All = list1[0].Accumated_Qty; } data = data.OrderByDescending(x => x.Receive_Date).ThenBy(x => x.MO_Seq).ToList(); return(data); }
public async Task <object> GetAllSubcon() => await _iPackingListRepository.FindAll(x => x.Subcon_ID != "") .Select(x => new { x.Subcon_ID, x.Subcon_Name }).Distinct().ToListAsync();