Beispiel #1
0
        //0.ChanTransNo,1.CreateID,2.CreateDate
        //Datatable 欄位 0.item,1.period
        public bool CreateTransIn(string ChanTransNo,string PurchaseNo, string CreateID, string CreateDate, DataTable dtTransIn, DbTransaction RootDBT,out DataTable dtItem,out DataTable dtGift)
        {
            dtItem = null;
            dtGift = null;
            bool IsRootTranscation = false;
            int PID = -1;
            string TranNum = "";
            ArrayList ParameterList = new ArrayList();
                            //取得並UPDATE DATATABLE的內容
                dtItem = MaterDetl();
                dtGift = GIftDetl();

            try
            {
                DBO.MaintainAcceptDBO dbo = new DBO.MaintainAcceptDBO(ref USEDB);
                DBO.MaintainAccept bco = new DBO.MaintainAccept(strConn);

                //判斷是否有傳入Root Transcation 
                IsRootTranscation = (RootDBT == null) ? true : false;

                #region 啟動交易或指定RootTranscation

                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                }
                else
                {
                    DBT = RootDBT;
                }

                #endregion

                //寫入LOG檔
                //LOG 主檔
                ParameterList.Clear();
                ParameterList.Add(ChanTransNo);
                ParameterList.Add(dtTransIn.Rows[0][0].ToString());
                ParameterList.Add(dtTransIn.Rows[0][1].ToString());
                ParameterList.Add(CreateID);
                ParameterList.Add(CreateDate);
                ParameterList.Add(dtTransIn.Rows.Count);
                ParameterList.Add(dtTransIn.Rows[0][2].ToString());
                dbo.CreateDataTransMain(ParameterList, DBT, out PID, out TranNum);

                for (int i = 0; i < dtTransIn.Rows.Count; i++)
                {
                    ParameterList.Clear();
                    ParameterList.Add(PID);
                    ParameterList.Add(ChanTransNo);
                    ParameterList.Add(dtTransIn.Rows[i][0].ToString());
                    ParameterList.Add(dtTransIn.Rows[i][1].ToString());
                    ParameterList.Add(CreateID);
                    ParameterList.Add(CreateDate);
                    ParameterList.Add(dtTransIn.Rows[i][2].ToString());
                    dbo.CreateDataTransDetl(ParameterList, DBT);
                }


                ParameterList.Clear();
                ParameterList.Add(ChanTransNo);
                ParameterList.Add(CreateID);
                DataTable dtTemp = dbo.GetTempSourceData(ParameterList);

                for (int i = 0; i < dtTemp.Rows.Count; i++)
                {
                    bool haveData = false;

                    for (int j = 0; j < dtTransIn.Rows.Count; j++)
                    {
                        string InItem = dtTransIn.Rows[j][0].ToString();
                        string InPeriod = dtTransIn.Rows[j][1].ToString();
                        string InChanSourceNo = dtTransIn.Rows[j][2].ToString();

                        if (InItem == dtTemp.Rows[i]["item"].ToString() && InPeriod == dtTemp.Rows[i]["period"].ToString() && InChanSourceNo == dtTemp.Rows[i]["chan_source_no"].ToString())
                        {
                            haveData = true;
                        }
                    }

                    if (haveData == true)
                    {
                        string BarCode = dtTemp.Rows[i]["barcode"].ToString();
                        string ItemCode = dtTemp.Rows[i]["ItemCode"].ToString();
                        string PeriodCode = dtTemp.Rows[i]["PeriodCode"].ToString();
                        string Item = dtTemp.Rows[i]["item"].ToString();
                        string period = dtTemp.Rows[i]["period"].ToString();
                        string Acc_Qty = dtTemp.Rows[i]["trans_qty"].ToString();
                        string ItemName = dtTemp.Rows[i]["ItemName"].ToString();
                        string package_unit = dtTemp.Rows[i]["package_unit"].ToString();
                        string s_Weight = dtTemp.Rows[i]["s_Weight"].ToString();
                        string s_length = dtTemp.Rows[i]["s_length"].ToString();
                        string s_width = dtTemp.Rows[i]["s_width"].ToString();
                        string s_height = dtTemp.Rows[i]["s_height"].ToString();
                        string p_weight = dtTemp.Rows[i]["p_weight"].ToString();
                        string p_length = dtTemp.Rows[i]["p_length"].ToString();
                        string p_width = dtTemp.Rows[i]["p_width"].ToString();
                        string p_height = dtTemp.Rows[i]["p_height"].ToString();
                        string Product_Source = dtTemp.Rows[i]["Product_Source"].ToString();
                        string Produce_Date = dtTemp.Rows[i]["Produce_Date"].ToString();
                        string Reserved_Period = dtTemp.Rows[i]["Reserved_Period"].ToString();
                        string Valid_Date = dtTemp.Rows[i]["Valid_Date"].ToString();
                        string AllowAccept_Date = dtTemp.Rows[i]["AllowAccept_Date"].ToString();

                        string Pitem = "";
                        string Pperiod = "";

                        string Cost = "";
                        string Price = "";
                        string TaxType = "";
                        string PurchaseQty = "";
                        string PlantAcceptDate = "";
                        string AcceptyQty = "";
                        string Qty = "";
                        string DisQty = "";

                        //if (BarCode.Length == 8 || BarCode.Length == 13)
                        //{
                        //    ItemCode = BarCode;
                        //    PeriodCode = "0000000000000";
                        //}
                        //else if (BarCode.Length == 15)
                        //{
                        //    ItemCode = BarCode.Substring(0, 13);
                        //    PeriodCode = BarCode.Substring(13, 2);
                        //}
                        //else if (BarCode.Length == 18)
                        //{
                        //    ItemCode = BarCode.Substring(0, 13);
                        //    PeriodCode = BarCode.Substring(13, 5);
                        //}

                        bco.QueryItemData(ItemCode, PeriodCode, PurchaseNo, out Pitem, out Pperiod, out Cost, out Price, out TaxType, out PurchaseQty, out PlantAcceptDate, out AcceptyQty, out Qty, out DisQty);

                        DataRow drItem = dtItem.NewRow();
                        drItem["barcode"] = BarCode;
                        drItem["ItemCode"] = ItemCode;
                        drItem["PeriodCode"] = PeriodCode; //2
                        drItem["item"] = Item; //品號
                        drItem["period"] = period; //期別
                        drItem["ItemName"] = ItemName; //5
                        drItem["purchase_Qty"] = PurchaseQty; //採購數量
                        drItem["In_Date"] = PlantAcceptDate; //預進日期
                        drItem["TAcc_Qty"] = Qty; //總驗收數
                        drItem["Acc_Qty"] = Acc_Qty; //驗收數量
                        drItem["Cost"] = Cost; //成本價
                        drItem["Price"] = Price; //零售價
                        drItem["TaxType"] = TaxType; //12 稅別
                        drItem["Package_Unit"] = package_unit; //1包裝數
                        drItem["S_Weight"] = s_Weight; //單品重量
                        drItem["S_Length"] = s_length; //單品長度
                        drItem["S_Width"] = s_width; //單品寬度
                        drItem["S_Height"] = s_height; //單品高度
                        drItem["P_Weight"] = p_weight; //包裝重量
                        drItem["P_Length"] = p_length; //包裝長度
                        drItem["P_Width"] = p_width; //包裝寬度
                        drItem["P_Height"] = p_height; //包裝高度
                        drItem["Product_Source"] = Product_Source; //商品來源
                        drItem["Produce_Date"] = Produce_Date; //製造日期
                        drItem["Reserved_Period"] = Reserved_Period; //保存期限
                        drItem["Valid_Date"] = Valid_Date; //有效日期
                        drItem["AllowAccept_Date"] = AllowAccept_Date; //允收日期
                        dtItem.Rows.Add(drItem);

                        DataTable dtGiftTemp = bco.QueryGift(Item, period, PurchaseNo);

                        for (int x = 0; x < dtGiftTemp.Rows.Count; x++)
                        {
                            DataRow drGift = dtGift.NewRow();
                            drGift["GiftName"] = dtGiftTemp.Rows[x]["GiftName"].ToString();
                            drGift["Barcode"] = BarCode; //0商品條碼
                            drGift["Item"] = Item; //1.品號
                            drGift["Period"] = period; //2.期別
                            drGift["Virtual_Code"] = dtGiftTemp.Rows[x]["VIRTUAL_CODE"].ToString(); //3.虛擬品號
                            drGift["purchase_Qty"] = dtGiftTemp.Rows[x]["PURCHASE_QTY"].ToString(); //4.採購數量
                            drGift["TAcc_Qty"] = dtGiftTemp.Rows[x]["accept_accqty"].ToString(); //X總驗收數
                            drGift["Accept_Qty"] = "0"; //5.驗收數量
                            drGift["Package_Unit"] = "0"; //6.1包裝數
                            drGift["S_Weight"] = "0"; //7.單品重量
                            drGift["S_Length"] = "0"; //8.單品長度
                            drGift["S_Width"] = "0";//9.單品寬度
                            drGift["S_Height"] = "0";//10.單品高度
                            drGift["P_Weight"] = "0"; //11.包裝重量
                            drGift["P_Length"] = "0"; //12.包裝長度
                            drGift["P_Width"] = "0";//13.包裝寬度
                            drGift["P_Height"] = "0"; //14.包裝高度
                        }
                    }
                }

                //刪除暫存資料
                ParameterList.Clear();
                ParameterList.Add(ChanTransNo);
                ParameterList.Add(CreateID);
                dbo.DeleteDataTransTemp(ParameterList, DBT);

                #region 交易成功

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation成立
                    DBT.Commit();
                }

                #endregion

                return true;

            }
            catch (Exception ex)
            {
                #region 交易失敗

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation失敗
                    DBT.Rollback();
                }

                #endregion

                throw ex;
            }
            finally
            {
                #region 判斷是否關閉交易連線

                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation,關閉連線
                    if (Conn.State == ConnectionState.Connecting)
                    {
                        Conn.Close();
                    }
                }

                #endregion
            }
        }
Beispiel #2
0
    private void GiftBind()
    {
        try
        {
            ErrorMsgLabel.Text = "";
            VGIModel.MaintainAccept dbo = new VGIModel.MaintainAccept(ConntionDB);
            DataTable dtTemp = dbo.QueryGift(SLP_SKU.Text, txtPeriod.Text, txtPurNo.Text);
            DataTable dtResult;

            //新增模式時,如果採購數量為零時不顯示
            if (PageMode == "1" || PageMode == "")
            {
                dtResult = dtTemp.Clone();

                DataRow[] Dr_Array = dtTemp.Select("PURCHASE_QTY <> 0 ");

                foreach (DataRow DrOld in Dr_Array)
                {
                    dtResult.ImportRow(DrOld);
                }
            }
            else
            {
                dtResult = dtTemp;
            }

            dtResult.DefaultView.Sort = "VIRTUAL_CODE asc";
            dlGift.DataSource = dtResult.DefaultView;
            dlGift.DataBind();

            string strItem = SLP_SKU.Text;
            string strPeriod = txtPeriod.Text;

            DataTable dtGift;

            if (Session["GiftOLDData_" + PageTimeStamp.Value] != null)
            {
                dtGift = (DataTable)Session["GiftOLDData_" + PageTimeStamp.Value];

                for (int i = 0; i < dtGift.Rows.Count; i++)
                {
                    for (int j = 0; j < dlGift.Items.Count; j++)
                    {
                        if (dtGift.Rows[i]["VIRTUAL_CODE"].ToString() == ((Label)dlGift.Items[j].FindControl("lblVirtualCode")).Text && dtGift.Rows[i]["ITEM"].ToString() == strItem && dtGift.Rows[i]["PERIOD"].ToString() == strPeriod)
                        {
                            ((PIC.VDS2G.WebUI.SLP.SLPNumber)dlGift.Items[j].FindControl("SLP_GiftAccQty")).Text = dtGift.Rows[i]["Accept_Qty"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPack")).Text = dtGift.Rows[i]["Package_Unit"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSWe")).Text = dtGift.Rows[i]["S_Weight"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSL")).Text = dtGift.Rows[i]["S_Length"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSWi")).Text = dtGift.Rows[i]["S_Width"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSH")).Text = dtGift.Rows[i]["S_Height"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPWe")).Text = dtGift.Rows[i]["P_Weight"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPL")).Text = dtGift.Rows[i]["P_Length"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPWi")).Text = dtGift.Rows[i]["P_Width"].ToString();
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPH")).Text = dtGift.Rows[i]["P_Height"].ToString();
                            ((HiddenField)dlGift.Items[j].FindControl("GiftAccQty_Old")).Value = dtGift.Rows[i]["Old_Qty"].ToString();
                        }
                        else
                        {
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPack")).Text = SLP_PackNum.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSWe")).Text = SLP_SWeight.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSL")).Text = SLP_SLength.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSWi")).Text = SLP_SWidth.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftSH")).Text = SLP_SHeigh.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPWe")).Text = SLP_PWeight.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPL")).Text = SLP_PLength.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPWi")).Text = SLP_PWidth.Text;
                            ((TextBox)dlGift.Items[j].FindControl("txt_GiftPH")).Text = SLP_PHeigh.Text;
                        }
                    }
                }
            }
            else
            {
                for (int x = 0; x < dlGift.Items.Count; x++)
                {
                    string strGiftItem = strItem;
                    string strGiftPeriod = strPeriod;
                    string strGiftVirCode = ((Label)dlGift.Items[x].FindControl("lblVirtualCode")).Text;

                    ParameterList.Clear();
                    ParameterList.Add(strGiftItem);
                    ParameterList.Add(strGiftPeriod);
                    ParameterList.Add(strGiftVirCode);
                    ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd"));
                    DataTable Dt_Temp = dbo.GetGiftDetail(ParameterList);

                    if (Dt_Temp.Rows.Count > 0)
                    {
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPack")).Text = Dt_Temp.Rows[0]["package_unit"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSWe")).Text = Dt_Temp.Rows[0]["s_weight"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSL")).Text = Dt_Temp.Rows[0]["s_length"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSWi")).Text = Dt_Temp.Rows[0]["s_width"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSH")).Text = Dt_Temp.Rows[0]["s_height"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPWe")).Text = Dt_Temp.Rows[0]["p_weight"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPL")).Text = Dt_Temp.Rows[0]["p_length"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPWi")).Text = Dt_Temp.Rows[0]["p_Width"].ToString();
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPH")).Text = Dt_Temp.Rows[0]["p_height"].ToString();
                    }
                    else
                    {
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPack")).Text = SLP_PackNum.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSWe")).Text = SLP_SWeight.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSL")).Text = SLP_SLength.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSWi")).Text = SLP_SWidth.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftSH")).Text = SLP_SHeigh.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPWe")).Text = SLP_PWeight.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPL")).Text = SLP_PLength.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPWi")).Text = SLP_PWidth.Text;
                        ((TextBox)dlGift.Items[x].FindControl("txt_GiftPH")).Text = SLP_PHeigh.Text;
                    }
                }
            }


        }
        catch (Exception ex)
        {
            ErrorMsgLabel.Text = ex.Message;
        }
    }