Example #1
0
 public DataTable QueryByDisNo(ArrayList ParameterList)
 {
     #region
     try
     {
         VDS_ALO_DIS_MAIN_DBO DBO = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);
         return DBO.doQueryByDisNo(ParameterList);
     }
     catch (Exception ex)
     {
         throw GetNewException(ex);
     }
     #endregion
 }
 public DataTable QueryDisCRMMainByFind(ArrayList ParameterList)
 {
     #region
     try
     {
         VDS_ALO_DIS_MAIN_DBO DBO = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);
         DataTable dt = DBO.doQueryDisCRMMainByFind(ParameterList);
         return dt;
     }
     catch (Exception ex)
     {
         throw GetNewException(ex);
     }
     #endregion
 }
Example #3
0
        /// <summary>
        /// ALO11依配本序號查詢配本第一筆配本序號
        /// </summary>
        /// <returns>回傳查詢結果</returns>
        public DataTable QueryDisMainFirstFor111()
        {
            #region

            try
            {
                VDS_ALO_DIS_MAIN_DBO DBO = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);
                return DBO.doQueryDisMainFirstFor111();
            }
            catch (Exception ex)
            {
                throw GetNewException(ex);
            }

            #endregion
        }
Example #4
0
        /// <summary>
        /// 更新配本主檔
        /// </summary>
        /// <param name="OldDisMainDt">舊資料</param>
        /// <param name="NewDisMainDt">新資料</param>
        /// <param name="RootDBT">交易判斷</param>
        /// <returns>回傳成功失敗</returns>
        public bool UpdateDisMainFor111(DataTable OldDisMainDt,
                                        DataTable NewDisMainDt,
                                        DbTransaction RootDBT
                                        )
        {
            bool bResult = false;
            bool IsRootTranscation = false;

            try
            {
                VDS_ALO_DIS_MAIN_DBO ALOM = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);

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


                #region 啟動交易或指定RootTranscation

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

                #endregion
                ArrayList ParameterList = new ArrayList();
                if ( (OldDisMainDt != null) && 
                     (OldDisMainDt.Rows.Count > 0) &&
                     (NewDisMainDt != null) &&
                     (NewDisMainDt.Rows.Count > 0) 
                   )
                {
                    ParameterList.Clear();
                    //old
                    ParameterList.Add(OldDisMainDt.Rows[0]["ID"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["CODE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["CREATEDATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["CREATEUID"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["UPDATEDATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["UPDATEUID"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["STATUS"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["DIS_NO"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["DIS_SORT"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["DIS_DATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["ST_ACCEPT_DATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["APPROVE_DATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["RCHAN_NO"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["PO_SOURCE_NO"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["TRANS_ST_ACCEPT_DATE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["DATA_SOURCE"]);
                    ParameterList.Add(OldDisMainDt.Rows[0]["MEMO"]);
                    //new
                    ParameterList.Add(NewDisMainDt.Rows[0]["DIS_NO"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["DIS_SORT"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["DIS_DATE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["ST_ACCEPT_DATE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["APPROVE_DATE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["RCHAN_NO"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["PO_SOURCE_NO"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["TRANS_ST_ACCEPT_DATE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["DATA_SOURCE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["MEMO"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["UPDATEDATE"]);
                    ParameterList.Add(NewDisMainDt.Rows[0]["UPDATEUID"]);

                    ALOM.doUpdateDisMainFor111(ParameterList, DBT);
                }

                #region 交易成功

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

                #endregion

                bResult = true;
            }
            catch (Exception ex)
            {
                #region 交易失敗

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
        }
Example #5
0
        public bool CreateDisMainFor111(DataTable dtDisMain, ref string vDisNo, DbTransaction RootDBT)
        {
            bool bResult = false;
            bool IsRootTranscation = false;

            try
            {
                VDS_ALO_DIS_MAIN_DBO ALOM = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);

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


                #region 啟動交易或指定RootTranscation

                if (IsRootTranscation)
                {
                    //獨立呼叫啟動Transcation
                    Conn = USEDB.CreateConnection();
                    Conn.Open();
                    DBT = Conn.BeginTransaction();
                    System.Web.HttpContext.Current.Trace.Warn(string.Format("使用者:{0} 於{1}.CreateDisMainFor111.Open Connetction:{2} ",
                                                                     System.Web.HttpContext.Current.Session["UID"].ToString(),
                                                                      DateTime.Now.ToString(),
                                                                      DBT.GetHashCode().ToString())
                                                              );

                }
                else
                {
                    DBT = RootDBT;
                    System.Web.HttpContext.Current.Trace.Warn(string.Format("使用者:{0} 於{1}.CreateDisMainFor111.Used Old Connetction:{2} ",
                                                                     System.Web.HttpContext.Current.Session["UID"].ToString(),
                                                                      DateTime.Now.ToString(),
                                                                      DBT.GetHashCode().ToString())
                                                              );

                }

                #endregion
                ArrayList ParameterList = new ArrayList();
                if (dtDisMain != null && dtDisMain.Rows.Count > 0)
                {
                    for (Int32 i = 0; i <= dtDisMain.Rows.Count - 1; i++)
                    {
                        ParameterList.Add(dtDisMain.Rows[i]["DIS_DATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["ST_ACCEPT_DATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["UPDATEDATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["UPDATEUID"]);
                        vDisNo = ALOM.doCreateDisMainFor111(ParameterList, DBT);
                    }
                }

                #region 交易成功

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

                #endregion

                bResult = true;
            }
            catch (Exception ex)
            {
                #region 交易失敗

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
        }
Example #6
0
        public bool CheckPOSourceNoIsExisted(ArrayList ParameterList, out string str_ErrMsg)
        {
            #region

            try
            {
                VDS_ALO_DIS_MAIN_DBO DBO = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);
                return DBO.doCheckPOSourceNoIsExisted(ParameterList, out str_ErrMsg);
            }
            catch (Exception ex)
            {
                throw GetNewException(ex);
            }

            #endregion
        }
        public bool CreateDisCRMRecord(DataTable dtDisMain, DataTable dtDisItem, DataTable dtDisStore, out string vDisNo, DbTransaction RootDBT)
        {
            #region
            bool bResult = false;
            bool IsRootTranscation = false;

            try
            {
                VDS_ALO_DIS_MAIN_DBO DBO_MAIN = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);
                VDS_ALO_DIS_ITEM_DBO DBO_ITEM = new VDS_ALO_DIS_ITEM_DBO(ref USEDB);
                VDS_ALO_DIS_CHAN_DBO DBO_CHAN = new VDS_ALO_DIS_CHAN_DBO(ref USEDB);
                VDS_ALO_DIS_STORE_DBO DBO_STORE = new VDS_ALO_DIS_STORE_DBO(ref USEDB);
                VDS_ALO_COMMON_DBO DBO_COMM = new VDS_ALO_COMMON_DBO(ref USEDB);


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


                #region 啟動交易或指定RootTranscation

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

                #endregion

                vDisNo = "";
                string strCode = "", strCodeLast = "";

                ArrayList ParameterList = new ArrayList();

                //配本主檔:VDS_ALO_DIS_MAIN                           

                if (dtDisMain != null && dtDisMain.Rows.Count > 0)
                {
                    ParameterList.Clear();
                    ParameterList.Add(dtDisMain.Rows[0]["UPDATEDATE"]);
                    ParameterList.Add(dtDisMain.Rows[0]["UPDATEUID"]);
                    ParameterList.Add(dtDisMain.Rows[0]["DIS_DATE"]);
                    ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);
                    ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                    ParameterList.Add(dtDisMain.Rows[0]["PO_SOURCE_NO"]);

                    vDisNo = DBO_MAIN.doCreateDisCRMMain(ParameterList, DBT);
                }

                if (vDisNo != "")
                {
                    foreach (DataRow dr in dtDisItem.Rows)
                    {
                        #region 配本商品檔:VDS_ALO_DIS_ITEM
                        ParameterList.Clear();
                        ParameterList.Add(dr["CREATEDATE"]);
                        ParameterList.Add(dr["CREATEUID"]);
                        ParameterList.Add(vDisNo);
                        ParameterList.Add(dr["ITEM"]);
                        ParameterList.Add(dr["PERIOD"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(dr["DIS_QTY"]);
                        ParameterList.Add(dr["ACCEPT_QTY"]);
                        ParameterList.Add(dr["DIS_STO_QTY"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(dr["TAX_TYPE"]);
                        ParameterList.Add(dr["ROOT_NO"]);
                        ParameterList.Add(dr["PMA"]);
                        ParameterList.Add(dr["PATTERN_NO"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(DBNull.Value);
                        bResult = DBO_ITEM.doCreateDisItem(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("寫入 {0} 發生失敗", "配本商品檔:VDS_ALO_DIS_ITEM"));

                        #endregion

                        #region 配本通路檔:VDS_ALO_DIS_CHAN
                        ParameterList.Clear();
                        ParameterList.Add(vDisNo);
                        ParameterList.Add(dr["ITEM"]);
                        ParameterList.Add(dr["PERIOD"]);
                        ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                        ParameterList.Add(DBNull.Value);
                        ParameterList.Add(dr["CREATEDATE"]);
                        ParameterList.Add(dr["CREATEUID"]);
                        ParameterList.Add(DBNull.Value); //2009-05-04 cyhsu add for V_DIS_PRE_CQTY
                        ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);
                        bResult = DBO_CHAN.doCreateDisChan(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("寫入 {0} 發生失敗", "配本通路檔:VDS_ALO_DIS_CHAN"));

                        #endregion

                        #region 配本門市檔:VDS_ALO_DIS_STORE
                        if (dtDisStore != null && dtDisStore.Rows.Count > 0)
                        {
                            foreach (DataRow dr2 in dtDisStore.Rows)
                            {
                                strCode = string.Format("{0}_{1}_{2}_{3}_{4}",
                                    vDisNo, dr2["ITEM"].ToString().Trim(), dr2["PERIOD"].ToString().Trim(), dtDisMain.Rows[0]["RCHAN_NO"].ToString().Trim(), dr2["STORE"].ToString().Trim());

                                if (strCode != strCodeLast)
                                {
                                    ParameterList.Clear();
                                    ParameterList.Add(strCode);
                                    ParameterList.Add(dr2["UPDATEDATE"]);
                                    ParameterList.Add(dr2["UPDATEUID"]);
                                    ParameterList.Add(vDisNo);
                                    ParameterList.Add(dr2["ITEM"]);
                                    ParameterList.Add(dr2["PERIOD"]);
                                    ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                                    ParameterList.Add(dr2["STORE"]);
                                    //ParameterList.Add(dr2["ROUTE"]);//是否需要? doCreateDisCRMStore 參數不相符
                                    //ParameterList.Add(dr2["STEP"]);
                                    ParameterList.Add(dr2["DIS_QTY"]);
                                    ParameterList.Add(dr2["PO_SOURCE_NO"]);
                                    ParameterList.Add(dtDisMain.Rows[0]["ST_ACCEPT_DATE"]);

                                    bResult = DBO_STORE.doCreateDisCRMStore(ParameterList, DBT);
                                }

                                strCodeLast = string.Format("{0}_{1}_{2}_{3}_{4}",
                                    vDisNo, dr2["ITEM"].ToString().Trim(), dr2["PERIOD"].ToString().Trim(), dtDisMain.Rows[0]["RCHAN_NO"].ToString().Trim(), dr2["STORE"].ToString().Trim());
                            }

                        }

                        if (!bResult)
                            throw new Exception(string.Format("寫入 {0} 發生失敗", "配本門市檔:VDS_ALO_DIS_STORE"));

                        #endregion

                        #region 呼叫 PKG_VDS_ALO_COMM.lf_area_qty
                        ParameterList.Clear();
                        ParameterList.Add(vDisNo);
                        ParameterList.Add(dr["ITEM"]);
                        ParameterList.Add(dr["PERIOD"]);
                        ParameterList.Add(dtDisMain.Rows[0]["RCHAN_NO"]);
                        ParameterList.Add("X");
                        bResult = DBO_COMM.doLp_area_disqty(ParameterList, DBT);

                        if (!bResult)
                            throw new Exception(string.Format("{0} 發生失敗", "呼叫 PKG_VDS_ALO_COMM.lf_area_qty"));
                        #endregion

                    }
                }
                else
                {
                    throw new Exception(string.Format("{0} 發生失敗", "呼叫 PKG_VDS_ALO_DIS_MAIN.CreateDisCRMMain"));
                }

                #region 交易成功

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

                #endregion

                bResult = true;
            }
            catch (Exception ex)
            {
                #region 交易失敗

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
            #endregion
        }
        public bool UpdateDisCRMRecord(
            DataTable dtDisMainNew, DataTable dtDisMainOld,
            DataTable dtDisItemNew, DataTable dtDisItemOld,
            DataTable dtDisChanNew, DataTable dtDisChanOld,
            DataTable dtDisStoreNew, DataTable dtDisStoreOld,
            DbTransaction RootDBT)
        {
            bool bResult = false;
            bool IsRootTranscation = false;

            try
            {
                VDS_ALO_DIS_MAIN_DBO ALOM = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);

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


                #region 啟動交易或指定RootTranscation

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

                #endregion
                ArrayList ParameterList = new ArrayList();
                //if (dtDisMainDiff != null && dtDisMainDiff.Rows.Count > 0)
                //{
                //    ParameterList.Clear();
                //    //old
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["ID", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["CODE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["CREATEDATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["CREATEUID", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["UPDATEDATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["UPDATEUID", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["STATUS", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_NO", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_SORT", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_DATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["ST_ACCEPT_DATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["APPROVE_DATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["RCHAN_NO", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["PO_SOURCE_NO", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["TRANS_ST_ACCEPT_DATE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DATA_SOURCE", DataRowVersion.Original]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["MEMO", DataRowVersion.Original]);
                //    //new
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_NO", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_SORT", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DIS_DATE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["ST_ACCEPT_DATE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["APPROVE_DATE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["RCHAN_NO", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["PO_SOURCE_NO", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["TRANS_ST_ACCEPT_DATE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["DATA_SOURCE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["MEMO", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["UPDATEDATE", DataRowVersion.Current]);
                //    ParameterList.Add(dtDisMainDiff.Rows[0]["UPDATEUID", DataRowVersion.Current]);

                //    ALOM.doUpdateDisMainFor111(ParameterList, DBT);
                //}

                #region 交易成功

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

                #endregion

                bResult = true;
            }
            catch (Exception ex)
            {
                #region 交易失敗

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
        }
        public bool CreateDisCRMRecord(DataTable dtDisMain, DataTable dtDisItem, DataTable dtDisChan, DataTable dtDisStore, DbTransaction RootDBT)
        {
            bool bResult = false;
            bool IsRootTranscation = false;

            try
            {
                VDS_ALO_DIS_MAIN_DBO DBO_MAIN = new VDS_ALO_DIS_MAIN_DBO(ref USEDB);

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


                #region 啟動交易或指定RootTranscation

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

                #endregion

                string vDisNo = ""; 


                //4.1) 新增手開單配本記錄
                //  a) PKG_VDS_ALO_DIS_MAIN.CreateDisCRMMain
                           
                ArrayList ParameterList = new ArrayList();
                if (dtDisMain != null && dtDisMain.Rows.Count > 0)
                {
                    for (Int32 i = 0; i <= dtDisMain.Rows.Count - 1; i++)
                    {
                        ParameterList.Add(dtDisMain.Rows[i]["UPDATEDATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["UPDATEUID"]);
                        ParameterList.Add(dtDisMain.Rows[i]["DIS_DATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["ST_ACCEPT_DATE"]);
                        ParameterList.Add(dtDisMain.Rows[i]["RCHAN_NO"]);
                        ParameterList.Add(dtDisMain.Rows[i]["PO_SOURCE_NO"]);

                        vDisNo = DBO_MAIN.doCreateDisCRMMain(ParameterList, DBT);
                    }
                }

                #region 交易成功

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

                #endregion

                bResult = true;
            }
            catch (Exception ex)
            {
                #region 交易失敗

                bResult = false;

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

                #endregion

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

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

                #endregion

            }

            return bResult;
        }