Ejemplo n.º 1
0
        public async Task <bool> CreateInput(Transaction_Detail_Dto model)
        {
            var qrCodeModel = await _repoQRCodeMain.GetByQRCodeID(model.QrCode_Id);

            if (qrCodeModel != null && qrCodeModel.Valid_Status == "Y")
            {
                var listQrCodeDetails = await _repoQRCodeDetail.GetByQRCodeIDAndVersion(qrCodeModel.QRCode_ID, qrCodeModel.QRCode_Version);

                Random ran = new Random();
                int    num = ran.Next(100, 999);
                var    packingListModel = await _repoPackingList.GetByReceiveNo(qrCodeModel.Receive_No);

                WMSB_Transaction_Main inputModel = new WMSB_Transaction_Main();
                inputModel.Transac_Type   = "I";
                inputModel.Transac_No     = model.Input_No;
                inputModel.Transac_Time   = DateTime.Now;
                inputModel.QRCode_ID      = qrCodeModel.QRCode_ID;
                inputModel.QRCode_Version = qrCodeModel.QRCode_Version;
                inputModel.MO_No          = packingListModel.MO_No;
                inputModel.MO_Seq         = packingListModel.MO_Seq;
                inputModel.Purchase_No    = packingListModel.Purchase_No;
                inputModel.Material_ID    = packingListModel.Material_ID;
                inputModel.Material_Name  = packingListModel.Material_Name;
                inputModel.Purchase_Qty   = model.Accumated_Qty;
                inputModel.Transacted_Qty = model.Trans_In_Qty;
                inputModel.Rack_Location  = model.Rack_Location;
                inputModel.Can_Move       = "Y";
                inputModel.Updated_By     = "Emma";
                inputModel.Updated_Time   = DateTime.Now;
                _repoTransactionMain.Add(inputModel);

                var i = 0;
                foreach (var item in model.Detail_Size)
                {
                    WMSB_Transaction_Detail inputDetailModel = new WMSB_Transaction_Detail();
                    inputDetailModel.Transac_No    = inputModel.Transac_No;
                    inputDetailModel.Tool_Size     = listQrCodeDetails[i].Tool_Size;
                    inputDetailModel.Model_Size    = listQrCodeDetails[i].Model_Size;
                    inputDetailModel.Order_Size    = listQrCodeDetails[i].Order_Size;
                    inputDetailModel.Spec_Size     = listQrCodeDetails[i].Spec_Size;
                    inputDetailModel.Qty           = listQrCodeDetails[i].Qty;
                    inputDetailModel.Trans_Qty     = item.Qty;
                    inputDetailModel.Instock_Qty   = item.Qty;
                    inputDetailModel.Untransac_Qty = inputDetailModel.Qty - inputDetailModel.Trans_Qty;
                    inputDetailModel.Updated_By    = "Nam";
                    inputDetailModel.Updated_Time  = DateTime.Now;
                    _repoTransactionDetail.Add(inputDetailModel);
                    i += 1;
                }
                return(await _repoTransactionMain.SaveAll());
            }
            return(false);
        }
Ejemplo n.º 2
0
        public async Task<bool> IntegrationInputSubmit(List<IntegrationInputModel> data, string user)
        {
            data = data.Where(x => !string.IsNullOrEmpty(x.Rack_Location)).ToList();
            foreach (var item in data)
            {
                // Update Table WMSB_QRCode_Main
                var qrCodeModels = await _repoQRCodeMain.FindAll(x => x.QRCode_ID.Trim() == item.QRCode_ID.Trim() &&
                                                    x.Is_Scanned.Trim() == "N" &&
                                                    x.Receive_No.Trim() == item.Receive_No.Trim()).FirstOrDefaultAsync();
                if (qrCodeModels != null)
                {
                    qrCodeModels.Is_Scanned = "Y";
                }


                //---------------------------- Check TransactionMain-------------------------------//
                var transationMainCheck = await _repoTransactionMain.FindAll(x => x.QRCode_ID.Trim() == item.QRCode_ID.Trim() &&
                                                x.MO_No.Trim() == item.MO_No.Trim() &&
                                                x.Purchase_No.Trim() == item.Purchase_No.Trim() &&
                                                x.Material_ID.Trim() == item.Material_ID.Trim()).FirstOrDefaultAsync();
                if (transationMainCheck == null)
                {
                    string Transac_Sheet_No, Transac_No;
                    do
                    {
                        string num = CodeUtility.RandomNumber(3);
                        Transac_Sheet_No = "IB" + DateTime.Now.ToString("yyyyMMdd") + num;
                    } while (await _repoTransactionMain.CheckTranSheetNo(Transac_Sheet_No));
                    do
                    {
                        string num1 = CodeUtility.RandomNumber(3);
                        Transac_No = "IB" + item.MO_No.Trim() + num1;
                    } while (await _repoTransactionMain.CheckTransacNo(Transac_No));

                    // Tạo New Model để Add vào Table WMSB_Transaction_Main
                    var transactionMainModel = new WMSB_Transaction_Main();
                    transactionMainModel.Transac_Type = "I";
                    transactionMainModel.Transac_No = Transac_No;
                    transactionMainModel.Transac_Sheet_No = Transac_Sheet_No;
                    transactionMainModel.Can_Move = "Y";
                    transactionMainModel.Transac_Time = DateTime.Now;
                    transactionMainModel.QRCode_ID = item.QRCode_ID;
                    transactionMainModel.QRCode_Version = item.QRCode_Version;
                    transactionMainModel.MO_No = item.MO_No.Trim();
                    transactionMainModel.Purchase_No = item.Purchase_No.Trim();
                    transactionMainModel.MO_Seq = item.MO_Seq;
                    transactionMainModel.Material_ID = item.Material_ID.Trim();
                    transactionMainModel.Material_Name = item.Material_Name.Trim();
                    transactionMainModel.Purchase_Qty = item.Receive_Qty;
                    transactionMainModel.Transacted_Qty = item.Receive_Qty;
                    transactionMainModel.Rack_Location = item.Rack_Location;
                    transactionMainModel.Is_Transfer_Form = "N";
                    transactionMainModel.Updated_Time = DateTime.Now;
                    transactionMainModel.Updated_By = user;
                    _repoTransactionMain.Add(transactionMainModel);

                    // Add vào table WMSB_Transaction_Detail             
                    foreach (var item1 in item.PackingListDetailItem)
                    {
                        var transactionDetailModel = new WMSB_Transaction_Detail();
                        transactionDetailModel.Transac_No = Transac_No.Trim();
                        transactionDetailModel.Tool_Size = item1.Tool_Size;
                        transactionDetailModel.Order_Size = item1.Order_Size;
                        transactionDetailModel.Model_Size = item1.Model_Size;
                        transactionDetailModel.Spec_Size = item1.Spec_Size;
                        transactionDetailModel.Qty = item1.Received_Qty;
                        transactionDetailModel.Trans_Qty = item1.Received_Qty;
                        transactionDetailModel.Instock_Qty = item1.Received_Qty;
                        transactionDetailModel.Untransac_Qty = 0;
                        transactionDetailModel.Updated_Time = DateTime.Now;
                        transactionDetailModel.Updated_By = user;
                        _repoTransactionDetail.Add(transactionDetailModel);
                    }
                }
            }
            return await _repoTransactionDetail.SaveAll();
        }