Beispiel #1
0
    }//btn_Add_Click

    protected void btn_Save_Click(object sender, EventArgs e)
    {
        #region
        try
        {
            #region

            CurrentEditingGridview = EditingGridview.None;

            SaveCurrentGridviewValue();

            if (CheckDetailIsExisted() && CheckDetailDataIntervalIsValid())//2011/04/29 add CheckDetailDataIntervalIsValid() for Checking Interval 
            {

                TRNModel.VDS_TRN13_BCO BCO = new TRNModel.VDS_TRN13_BCO(ConnectionDB);
                string strErrMsg = "";
                ArrayList ParameterList = new ArrayList();

                for (int i = 0; i <= dtRoute.Rows.Count - 1; i++)
                {
                    if (dtRoute.Rows[i].RowState != DataRowState.Deleted)
                    {
                        ParameterList.Clear();
                        ParameterList.Add(dtRoute.Rows[i]["TRANS_NO"].ToString());
                        ParameterList.Add(dtRoute.Rows[i]["ROUTE"].ToString());
                        DataTable dtUse = BCO.CHECK_ROUTE_USE(ParameterList);
                        if (dtUse.Rows.Count > 0)
                        {

                            strErrMsg += "[" + dtRoute.Rows[i]["ROUTE"].ToString() + "]路線已存在路線運費歸屬檔,運輸代碼= " + dtUse.Rows[0]["TRANS_NO"].ToString() + "中<BR>";

                        }

                    }
                }
                if (strErrMsg != "")
                {
                    ErrorMsgLabel.Text = strErrMsg;
                    return;
                }


                string strPK = "";
                DataRow[] drAry = null;
                bool bResult = false;
                Int32 i32PID, i32PID_C;

                TRNModel.TRNCommon BCOCommon = new TRNModel.TRNCommon();
                System.Data.Common.DbTransaction DBT = BCOCommon.OpenAndGetConnection(ConnectionDB).BeginTransaction();




                if (CurrentPageMode == PageCurrentMode.Insert)
                {
                    #region
                    try
                    {
                        #region 新增
                        for (Int32 i = 0; i <= dtRoute.Rows.Count - 1; i++)
                        {
                            if (dtRoute.Rows[i].RowState != DataRowState.Deleted)
                            {
                                if (strErrMsg == "")
                                {
                                    //TRNAS_ROUTE_MAIN
                                    ParameterList.Clear();
                                    ParameterList.Add(dtRoute.Rows[i]["TRANS_NO"].ToString());
                                    ParameterList.Add(dtRoute.Rows[i]["ROUTE"].ToString());
                                    ParameterList.Add(dtRoute.Rows[i]["STATUS"].ToString());
                                    ParameterList.Add(Session["UID"].ToString());
                                    bResult = BCO.ADD_TRANS_ROUTE_MAIN(ParameterList, DBT, out i32PID, out strErrMsg);

                                    for (Int32 k = 0; k <= dtPay.Rows.Count - 1; k++)
                                    {
                                        if (dtPay.Rows[k].RowState != DataRowState.Deleted)
                                        {
                                            //PAY_CODE
                                            ParameterList.Clear();
                                            ParameterList.Add(i32PID);
                                            ParameterList.Add(dtPay.Rows[k]["TRANS_NO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PAY_NO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PAY_MEMO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["START_DATE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["END_DATE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PRICE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["UNIT"].ToString());
                                            ParameterList.Add(Session["UID"].ToString());
                                            bResult = BCO.ADD_PAY_CODE(ParameterList, DBT, out i32PID_C, out strErrMsg);

                                            if (dtTransPayRoute != null)
                                            {
                                                strPK = string.Format("TRANS_NO = '{0}' and PAY_NO = '{1}'", dtRoute.Rows[i]["TRANS_NO"].ToString(), dtPay.Rows[k]["PAY_NO"].ToString());

                                                drAry = dtTransPayRoute.Select(strPK);

                                                if (drAry != null)
                                                {
                                                    for (Int32 m = 0; m <= drAry.GetUpperBound(0); m++)
                                                    {
                                                        //PAY_ROUTE
                                                        ParameterList.Clear();
                                                        ParameterList.Add(i32PID_C);
                                                        ParameterList.Add(drAry[m]["TRANS_NO"].ToString());
                                                        ParameterList.Add(drAry[m]["PAY_NO"].ToString());
                                                        ParameterList.Add(drAry[m]["ROUTE"].ToString());
                                                        ParameterList.Add(Session["UID"].ToString());
                                                        bResult = BCO.ADD_PAY_ROUTE(ParameterList, DBT, out strErrMsg);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    break;
                                    DBT.Rollback();//交易失敗
                                }
                            }
                        }
                        #endregion

                        DBT.Commit();//交易成功
                    }
                    catch (Exception ex)
                    {
                        DBT.Rollback();//交易失敗
                        throw ex;
                    }


                    if (bResult && strErrMsg == "")
                    {
                        CurrentPageMode = PageCurrentMode.Readonly;
                        SetControlsByCurrentPageMode();
                        QueryData();
                        ErrorMsgLabel.Text = "新增成功";
                    }
                    else
                    {
                        ErrorMsgLabel.Text = strErrMsg;
                    }
                    #endregion
                }
                else if (CurrentPageMode == PageCurrentMode.Edit)
                {
                    #region
                    try
                    {

                        bResult = true;

                        #region 刪除
                        DataTable dtDeleted_ROUTE = dtRoute.GetChanges(DataRowState.Deleted); ;
                        DataTable dtDeleted_PAY = dtPay.GetChanges(DataRowState.Deleted); ;
                        DataTable dtDeleted_PAY_ROUTE = dtTransPayRoute.GetChanges(DataRowState.Deleted); ;

                        if (dtDeleted_PAY_ROUTE != null)
                        {
                            for (Int32 j = 0; j <= dtDeleted_PAY_ROUTE.Rows.Count - 1; j++)
                            {
                                if (bResult)
                                {
                                    ParameterList.Clear();
                                    ParameterList.Add(dtDeleted_PAY_ROUTE.Rows[j]["TRANS_NO", DataRowVersion.Original].ToString());
                                    ParameterList.Add(dtDeleted_PAY_ROUTE.Rows[j]["PAY_NO", DataRowVersion.Original].ToString());
                                    ParameterList.Add(dtDeleted_PAY_ROUTE.Rows[j]["ROUTE", DataRowVersion.Original].ToString());
                                    ParameterList.Add(Session["UID"].ToString());
                                    BCO.DEL_PAY_ROUTE(ParameterList, DBT);
                                }
                                else
                                {
                                    break;
                                    DBT.Rollback();//交易失敗
                                }
                            }
                        }

                        if (dtDeleted_PAY != null)
                        {
                            for (Int32 j = 0; j <= dtDeleted_PAY.Rows.Count - 1; j++)
                            {
                                if (bResult)
                                {
                                    ParameterList.Clear();
                                    ParameterList.Add(dtDeleted_PAY.Rows[j]["TRANS_NO", DataRowVersion.Original].ToString());
                                    ParameterList.Add(dtDeleted_PAY.Rows[j]["PAY_NO", DataRowVersion.Original].ToString());
                                    ParameterList.Add(Session["UID"].ToString());
                                    BCO.DEL_PAY_CODE(ParameterList, DBT);
                                }
                                else
                                {
                                    break;
                                    DBT.Rollback();//交易失敗
                                }
                            }
                        }
                        if (dtDeleted_ROUTE != null)
                        {
                            for (Int32 j = 0; j <= dtDeleted_ROUTE.Rows.Count - 1; j++)
                            {
                                if (bResult)
                                {
                                    ParameterList.Clear();
                                    ParameterList.Add(dtDeleted_ROUTE.Rows[j]["TRANS_NO", DataRowVersion.Original].ToString());
                                    ParameterList.Add(dtDeleted_ROUTE.Rows[j]["ROUTE", DataRowVersion.Original].ToString());
                                    ParameterList.Add(Session["UID"].ToString());
                                    BCO.DEL_TRANS_ROUTE_MAIN(ParameterList, DBT);
                                }
                                else
                                {
                                    break;
                                    DBT.Rollback();//交易失敗
                                }
                            }
                        }
                        #endregion

                        #region 修改
                        for (Int32 i = 0; i <= dtRoute.Rows.Count - 1; i++)
                        {
                            if (dtRoute.Rows[i].RowState != DataRowState.Deleted)
                            {
                                if (strErrMsg == "")
                                {
                                    //TRNAS_ROUTE_MAIN
                                    ParameterList.Clear();
                                    ParameterList.Add(dtRoute.Rows[i]["TRANS_NO"].ToString());
                                    ParameterList.Add(dtRoute.Rows[i]["ROUTE"].ToString());
                                    ParameterList.Add(dtRoute.Rows[i]["STATUS"].ToString());
                                    ParameterList.Add(Session["UID"].ToString());
                                    bResult = BCO.ADD_TRANS_ROUTE_MAIN(ParameterList, DBT, out i32PID, out strErrMsg);

                                    for (Int32 k = 0; k <= dtPay.Rows.Count - 1; k++)
                                    {
                                        if (dtPay.Rows[k].RowState != DataRowState.Deleted)
                                        {
                                            //PAY_CODE
                                            ParameterList.Clear();
                                            ParameterList.Add(i32PID);
                                            ParameterList.Add(dtPay.Rows[k]["TRANS_NO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PAY_NO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PAY_MEMO"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["START_DATE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["END_DATE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["PRICE"].ToString());
                                            ParameterList.Add(dtPay.Rows[k]["UNIT"].ToString());
                                            ParameterList.Add(Session["UID"].ToString());
                                            bResult = BCO.ADD_PAY_CODE(ParameterList, DBT, out i32PID_C, out strErrMsg);

                                            if (dtTransPayRoute != null)
                                            {
                                                strPK = string.Format("TRANS_NO = '{0}' and PAY_NO = '{1}'", dtRoute.Rows[i]["TRANS_NO"].ToString(), dtPay.Rows[k]["PAY_NO"].ToString());

                                                drAry = dtTransPayRoute.Select(strPK);

                                                if (drAry != null)
                                                {
                                                    for (Int32 m = 0; m <= drAry.GetUpperBound(0); m++)
                                                    {
                                                        //PAY_ROUTE
                                                        ParameterList.Clear();
                                                        ParameterList.Add(i32PID_C);
                                                        ParameterList.Add(drAry[m]["TRANS_NO"].ToString());
                                                        ParameterList.Add(drAry[m]["PAY_NO"].ToString());
                                                        ParameterList.Add(drAry[m]["ROUTE"].ToString());
                                                        ParameterList.Add(Session["UID"].ToString());
                                                        bResult = BCO.ADD_PAY_ROUTE(ParameterList, DBT, out strErrMsg);
                                                    }
                                                }
                                            }
                                        }
                                    }


                                }
                                else
                                {
                                    break;
                                    DBT.Rollback();//交易失敗
                                }
                            }
                        }
                        #endregion

                        DBT.Commit();//交易成功

                    }
                    catch (Exception ex)
                    {
                        DBT.Rollback();//交易失敗
                        throw ex;
                    }


                    if (bResult && strErrMsg == "")
                    {
                        CurrentPageMode = PageCurrentMode.Readonly;
                        SetControlsByCurrentPageMode();
                        QueryData();
                        ErrorMsgLabel.Text = "更新成功";
                    }
                    else
                    {
                        ErrorMsgLabel.Text = strErrMsg;
                    }
                    #endregion
                }
                //}
            }
            #endregion
        }
        catch (Exception ex)
        {
            gv_Pay.DataSource = dtPay;
            gv_Pay.DataBind();

            gv_Route.DataSource = dtRoute;
            gv_Route.DataBind();

            ErrorMsgLabel.Text = ex.Message;
            UpdatePanel_ALL.Update();
        }
        #endregion
    }//btn_Save_Click