Example #1
0
        public async Task <HistoryDetail_Dto> GetDetailTransaction(string transacNo)
        {
            var transactionMain = _repoTransactionMain.FindSingle(x => x.Transac_No.Trim() == transacNo.Trim());

            // lấy ra tất cả transaction detail dựa vào transacno
            var model             = _repoTransactionDetail.FindAll(x => x.Transac_No.Trim() == transacNo.Trim());
            var transactionDetail = await model.ProjectTo <TransferLocationDetail_Dto>(_configMapper).OrderBy(x => x.Tool_Size).ToListAsync();

            HistoryDetail_Dto data = new HistoryDetail_Dto();

            data.listTransactionDetail = transactionDetail;
            data.transactionMain       = _mapper.Map <Transaction_Main_Dto>(transactionMain);

            return(data);
        }
Example #2
0
        public async Task <OutputDetail_Dto> GetDetailOutput(string transacNo)
        {
            var transactionMain   = _repoTransactionMain.FindSingle(x => x.Transac_No.Trim() == transacNo.Trim());
            var transactionDetail = await _repoTransactionDetail.FindAll(x => x.Transac_No.Trim() == transactionMain.Transac_No.Trim()).ProjectTo <TransferLocationDetail_Dto>(_configMapper).OrderBy(x => x.Tool_Size).ToListAsync();

            // Lấy ra những thuộc tính cần
            OutputDetail_Dto result = new OutputDetail_Dto();

            result.Id                = transactionMain.ID;
            result.QrCodeId          = transactionMain.QRCode_ID;
            result.PlanNo            = transactionMain.MO_No;
            result.MatId             = transactionMain.Material_ID;
            result.MatName           = transactionMain.Material_Name;
            result.Batch             = transactionMain.MO_Seq;
            result.TransactionDetail = transactionDetail;

            return(result);
        }
Example #3
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;
        }
Example #4
0
        public async Task <bool> SubmitTransfer(List <TransferLocation_Dto> lists)
        {
            DateTime timeNow = DateTime.Now;

            if (lists.Count > 0)
            {
                foreach (var item in lists)
                {
                    // Tìm ra TransactionMain theo id
                    var transactionMain = _repoTransactionMain.FindSingle(x => x.ID == item.Id);
                    // tạo biến lấy ra Transac_No của TransactionMain
                    var transacNo = transactionMain.Transac_No;

                    // Update TransactionMain cũ:  Can_Move = "N"
                    transactionMain.Can_Move = "N";
                    _repoTransactionMain.Update(transactionMain);
                    await _repoTransactionMain.SaveAll();

                    // Thêm TransactionMain mới dựa vào TransactionMain cũ: thêm mới chỉ thay đổi mấy trường dưới còn lại giữ nguyên
                    transactionMain.ID               = 0; // Trong DB có identity tự tăng
                    transactionMain.Transac_Type     = "M";
                    transactionMain.Can_Move         = "Y";
                    transactionMain.Rack_Location    = item.ToLocation;
                    transactionMain.Updated_By       = item.UpdateBy;
                    transactionMain.Updated_Time     = timeNow;
                    transactionMain.Transac_Time     = item.TransacTime;
                    transactionMain.Transac_No       = item.TransferNo;
                    transactionMain.Transac_Sheet_No = item.TransferNo;
                    _repoTransactionMain.Add(transactionMain);

                    // Thêm TransactionDetail mới dựa vào TransactionDetail của TransactionMain cũ(có bao nhiêu TransactionDetail cũ là thêm bấy nhiêu TransactionDetail mới): chỉ thay đổi Transac_No thành của TransactionMain mới
                    var transactionDetails = await _repoTransactionDetail.FindAll(x => x.Transac_No.Trim() == transacNo.Trim()).ToListAsync();

                    foreach (var transactionDetail in transactionDetails)
                    {
                        // thêm mới chỉ thay đổi mấy trường dưới, còn lại giữ nguyên
                        transactionDetail.ID           = 0; // Trong DB có identity tự tăng
                        transactionDetail.Transac_No   = item.TransferNo;
                        transactionDetail.Updated_Time = timeNow;
                        transactionDetail.Updated_By   = item.UpdateBy;
                        _repoTransactionDetail.Add(transactionDetail);
                    }
                }
                return(await _repoTransactionMain.SaveAll());
            }

            return(false);
        }
Example #5
0
        public async Task <bool> GenerateTransferForm(List <Transfer_Form_Generate_Dto> generateTransferForm, string updateBy)
        {
            DateTime timeNow = DateTime.Now;
            var      generateTransferFormGroupBy = generateTransferForm.GroupBy(x => new { x.MO_No, x.MO_Seq, x.Material_ID });

            foreach (var itemGroup in generateTransferFormGroupBy)
            {
                string collectTransNo;
                do
                {
                    string num = CodeUtility.RandomNumber(3);
                    // Mã xưởng+T+mã nhà cc T3+yymmdd(ngày mà sản sinh ra mã chuyển giao)+3 số random
                    // VD: CTV057200922001
                    // Nếu T3 là = null: Mã xưởng+T+ZZZZ+yymmdd(ngày mà sản sinh ra mã chuyển giao)+3 số random
                    var t3_Supplier = itemGroup.FirstOrDefault().T3_Supplier.Trim() == "" ? "ZZZZ" : itemGroup.FirstOrDefault().T3_Supplier.Trim();
                    collectTransNo = itemGroup.FirstOrDefault().Factory_ID.Trim() + "T" + t3_Supplier + DateTime.Now.ToString("yyyyMMdd") + num;
                } while (await _transferFormRepository.CheckCollectTransNo(collectTransNo));
                foreach (var item in itemGroup.ToList())
                {
                    WMSB_Transfer_Form transferForm = new WMSB_Transfer_Form();
                    transferForm.Collect_Trans_No = collectTransNo;
                    transferForm.Transac_No       = item.Transac_No;
                    transferForm.Generate_Time    = timeNow;
                    transferForm.T3_Supplier      = item.T3_Supplier;
                    transferForm.T3_Supplier_Name = item.T3_Supplier_Name;
                    transferForm.Is_Release       = "N";
                    transferForm.Release_By       = null;
                    transferForm.Release_Time     = null;
                    transferForm.Update_By        = updateBy;
                    transferForm.Update_Time      = timeNow;
                    transferForm.MO_No            = item.MO_No;
                    transferForm.MO_Seq           = item.MO_Seq;
                    transferForm.Material_ID      = item.Material_ID;
                    transferForm.Material_Name    = item.Material_Name;

                    _transferFormRepository.Add(transferForm);

                    var transactionMain = _transactionMainRepo.FindSingle(x => x.Transac_No.Trim() == item.Transac_No.Trim());
                    transactionMain.Is_Transfer_Form = "Y";

                    _transactionMainRepo.Update(transactionMain);
                }
                await _transferFormRepository.SaveAll();
            }

            return(true);
        }
Example #6
0
        public async Task <MissingPrint_Dto> GetMaterialPrint(string missingNo)
        {
            var materialMissingModel = await _repoMaterialMissing.FindAll(x => x.Missing_No.Trim() == missingNo.Trim()).ProjectTo <Material_Dto>(_configMapper).FirstOrDefaultAsync();

            var transactionMainModel         = _repoTransactionMain.FindSingle(x => x.Missing_No.Trim() == missingNo.Trim() && x.Transac_Type.Trim() == "I");
            var transactionDetailByMissingNo = await _repoTransactionDetail.FindAll(x => x.Transac_No.Trim() == transactionMainModel.Transac_No.Trim()).ProjectTo <TransferLocationDetail_Dto>(_configMapper).OrderBy(x => x.Tool_Size).ToListAsync();

            var materialPurchaseModel = await _repoMaterialView.FindAll().Where(x => x.Plan_No.Trim() == materialMissingModel.MO_No.Trim() && x.Purchase_No.Trim() == materialMissingModel.Purchase_No.Trim() && x.Mat_.Trim() == materialMissingModel.Material_ID.Trim()).FirstOrDefaultAsync();

            materialMissingModel.Custmoer_Name = materialPurchaseModel.Custmoer_Name;
            // Lấy ra những thuộc tính cần in
            MissingPrint_Dto result = new MissingPrint_Dto();

            result.MaterialMissing = materialMissingModel;
            result.TransactionDetailByMissingNo = transactionDetailByMissingNo;

            return(result);
        }