Esempio 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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 public async Task <object> GetAllSubcon() => await _iPackingListRepository.FindAll(x => x.Subcon_ID != "")
 .Select(x => new { x.Subcon_ID, x.Subcon_Name }).Distinct().ToListAsync();