/// <summary>
        /// 傳入參數 : @月結月份, @月結功能代號
        /// 
        /// 呼叫:ChanMonthCloseYN.ChanMonthCloseYN
        /// 
        /// IF FLAG=N THEN
        ///       回傳訊息:「此月份尚未月結,不允許執行解除月結作業」
        /// ELSE
        ///      (1)依條件FUNC_NO=@月結功能代號 AND
        /// MONTH_CLOSE=@月結月份,將資料異動回資料庫VDS_CAA_MON_SETTING(月結設定檔)
        ///         ENABLE = 0
        ///         UPDATEUID =  登入系統之使用者ID
        ///         UPDATEDATE = 取AP系統日期
        ///      (2)依INVOICE_MONTH=@月結月份,異動資料庫VDS_CAA_INVOICE_TRACK
        ///       異動欄位:
        ///       (2.1) CLOSEUID = ""
        ///       (2.2) CLOSEDATE = ""
        ///       (2.3) UPDATEUID =  登入系統之使用者ID
        ///       (2.4) UPDATEDATE = 取AP系統日期
        /// End IF
        /// </summary>
        public ArrayList RecordingByOpen(ArrayList ParameterList,
                                         DbTransaction RootDBT,
                                         string ConntionDB
                                        )
        {
            try
            {
                string strResult = string.Empty;
                string strMsg = string.Empty;
                ArrayList ary = new ArrayList();

                ParameterList1.Clear();
                ParameterList1.Add(GetValueSetParameter(ParameterList[0].ToString(), "string", false)); //V_MONTH_CLOSE
                ParameterList1.Add(GetValueSetParameter(ParameterList[1].ToString(), "string", false)); //V_FUNC_NO

                CAAModel.ChanMonthCloseYN BCO = new CAAModel.ChanMonthCloseYN(ConntionDB);
                ArrayList aryResult = BCO.GetChanMonthCloseStatus(ParameterList, null);

                //設定檔 Y:已月結 N:未月結
                if (aryResult[0].ToString() == "Y")
                {
                    strMsg = "此月份尚未月結,不允許執行解除月結作業!";
                    ary.Add(aryResult[0].ToString());
                    ary.Add(strMsg);
                    return ary;
                }
                else
                {
                    bool IsRootTranscation = false;

                    try
                    {
                        CAA_InvTrackDBO DBO = new CAA_InvTrackDBO(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 arrRec = DBO.RecordingByOpen(ParameterList, DBT);

                        #region 交易成功

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

                        #endregion

                        return arrRec;

                    }
                    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
                    }

                }

            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
        /// <summary>
        /// TABLE:VDS_CAA_MON_SETTING(月結設定檔)
        /// 說明:檢查MONTH_CLOSE=@結帳年月且FUNC_NO=@功能號且ENABLE=1,如果有值表示已經月結了,如果沒有值表示還沒月結,回傳檢查狀態@月結狀態
        /// FLAG(有值傳Y,無值傳N)。
        /// 傳入值:
        /// @結帳年月
        /// @功能號
        /// 回傳值:
        /// @月結狀態FLAG
        /// </summary>
        public ArrayList GetChanMonthCloseStatus(ArrayList ParameterList,
                                                 DbTransaction RootDBT
                                                )
        {
            bool IsRootTranscation = false;

            try
            {
                CAA_InvTrackDBO DBO = new CAA_InvTrackDBO(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 ary = DBO.GetChanMonthCloseStatus(ParameterList, DBT);

                #region 交易成功

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

                #endregion

                return ary;

            }
            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
            }
        }
 /// <summary>
 /// 傳入參數:@依照頁面輸入的查詢條件(沒有輸入的條件不為條件判斷)
 /// **文字型態採用模糊查詢**
 /// 
 /// 回傳資料:@回傳gridview 參照web ui spec
 /// 
 /// Table:
 /// VDS_CAA_INVOICE_TRACK
 /// </summary>
 public DataTable QueryInvTrackByLike(ArrayList ParameterList)
 {
     try
     {
         CAA_InvTrackDBO DBO = new CAA_InvTrackDBO(ref USEDB);
         DataTable dt = DBO.QueryInvTrackByLike(ParameterList);
         return dt;
     }
     catch (Exception ex)
     { throw ex; }
 }