/// <summary>
        /// 傳入參數:@畫面上所有欄位資料
        /// 
        /// 處理:
        /// 1.新增一筆資料至資料庫VDS_CAA_TEMP_MAIN(欄位對應資料請參閱畫面規格)
        /// 
        /// (1) 暫收單號	= TEMP_NO
        /// (2) 來源	    = SOURCE_TYPE
        /// (3) 來源單號	= SOURCE_NO
        /// (4) 店群	    = 不儲存
        /// (5) 客戶店號	= STORE_ID
        /// (6) 營業所	    = 不儲存
        /// (7) 統一編號	= 不儲存
        /// (8) 營業人員	= 不儲存
        /// (9) 帳務人員	= 不儲存
        /// (10)商品群分類	= ROOT_NO
        /// (11)稅別	    = TAX_TYPE
        /// (12) 暫收金額	= TEMP_AMT
        /// (13) 累計沖帳金額	= SUM_TEMP_AMT
        /// (14) 暫收餘額	= TEMP_REMAIN_AMT
        /// (15) 備註說明	= MEMO
        /// (16) 結帳年月	= CLOSE_MONTH
        /// (17) 轉其它收入	= CHG_INCOME_TYPE
        /// (18) 轉其它收入日期	= CHG_INCOME_DATE
        /// (19) 建立日期	= CREATEDATE (系統抓取目前AP機器之時間)
        /// (20) 建立人員	= CREATEUID  (系統抓取登入之使用者ID)
        /// 
        /// 
        /// 回傳:
        /// 新增是否成功
        /// </summary>
        public int CreateTempRecord(ArrayList ParameterList, DbTransaction RootDBT, out string TEMP_NO, out string ID)
        {
            int iResult;
            bool IsRootTranscation = false;
            try
            {
                CAA_MaintainTempRecordDBO DBO = new CAA_MaintainTempRecordDBO(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

                iResult = DBO.CreateTempRecord(ParameterList, RootDBT, out TEMP_NO, out ID);

                #region 交易成功

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

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

            }
            return iResult;
        }
 /// <summary>
 /// 依照畫面輸入的[店號],取得相關資料
 /// </summary>
 /// <param name="ParameterList"></param>
 /// <returns></returns>
 public DataTable GET_STORE_RELATE_DATA(ArrayList ParameterList)
 {
     try
     {
         CAA_MaintainTempRecordDBO DBO = new CAA_MaintainTempRecordDBO(ref USEDB);
         return DBO.GET_STORE_RELATE_DATA(ParameterList);
     }
     catch (Exception ex)
     { throw ex; }
 }
 /// <summary>
 //回傳SourceType
 /// </summary>
 public DataTable GetSourceType()
 {
     try
     {
         CAA_MaintainTempRecordDBO DBO = new CAA_MaintainTempRecordDBO(ref USEDB);
         DataTable dt = DBO.GetSourceType();
         return dt;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 /// <summary>
 /// 取得商品群分類資料
 /// </summary>
 /// <param name="ParameterList"></param>
 /// <returns></returns>
 public DataTable GetRootData(ArrayList ParameterList)
 {
     try
     {
         CAA_MaintainTempRecordDBO DBO = new CAA_MaintainTempRecordDBO(ref USEDB);
         DataTable dt = DBO.GetRootData(ParameterList);
         return dt;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 /// <summary>
 /// 傳入參數:
 /// 〔@依照頁面輸入的查詢條件〕
 /// 傳回訊息:
 /// 〔@回傳以下欄位〕
 /// 
 /// Table:
 /// VM=VDS_CAA_TEMP_MAIN (暫收款主檔)
 /// VU=VDS_STM_STORE(門市主檔)
 /// VS=VDS_STM_STOREGROUP(店群)
 /// PV=VDS_STM_ACCOUNT_PROPERTY(帳務特性主檔)
 /// 
 /// 查詢條件:(若有輸入則組成過濾條件,無輸入則不過濾)
 /// (1) 暫收單號	= VM.TEMP_NO
 /// (2) 來源	    = VM.SOURCE_TYPE
 /// (3) 來源單號    = VM.SOURCE_NO
 /// (4) 店群	    = VU.GROUP_NO
 /// (5) 客戶店號	= VM.STORE_ID
 /// (6) 營業所	    = VU.Z_O
 /// (7) 統一編號	= PV.RFNO
 /// (8) 營業人員	= VU.SAL_ID
 /// (9) 帳務人員	= VU.AC_UID
 /// (10) 暫收金額	= VM.TEMP_AMT
 /// (11) 累計沖帳金額	= VM.SUM_TEMP_AMT
 /// (12) 暫收餘額	= VM.TEMP_REMAIN_AMT
 /// (13) 備註說明	= VM.MEMO
 /// (14) 結帳年月	= VM.CLOSE_MONTH
 /// (15) 轉其他收入 = VM.CHG_INCOME_TYPE
 ///     IF @轉其他收入="ALL" THEN
 ///        不判斷
 ///     ELSEIF @轉其他收入="是" THEN
 ///        VM.CHG_INCOME_TYPE = 1
 ///     ELSE
 ///        VM.CHG_INCOME_TYPE = 0
 ///     END IF
 /// (16) 轉其他收入日期
 ///     CHG_INCOME_DATE >=@其他收入日期(起) AND CHG_INCOME_DATE <=@其他收入日期(迄)
 /// (17) 建立日期	= VM.CREATEDATE
 /// (18) 建立人員	= VM.CREATEUID
 /// (19) 維護日期	= VM.UPDATEDATE
 /// (20) 維護人員	= VM.UPDATEUID
 /// (21) VM.ENABLE = 1
 /// (22) VM.STORE_ID = VU.STORE
 /// (23) VM.STORE_ID = PV.STORE
 /// (24) VU.MDC_STAR_DATE <= VM.CREATEDATE AND VU.MDC_END_DATE >=VM.CREATEDATE
 /// (25) PV.EFF_DATE_FROM <= VM.CREATEDATE AND PV.EFF_DATE_TO >=VM.CREATDATE
 /// 
 /// 
 /// 欄位:
 /// (1) 暫收單號 = VM.TEMP_NO
 /// (2) 來源	 = ENUMTYPENAME
 ///               SELECT ENUMTYPENAME FROM SYS_ENUMBASE WHERE MODULE='CAA' AND
 /// ENUM='SourceType' AND ENUMVALUE=VM.SOURCE_TYPE
 /// (3) 來源單號 = VM.SOURCE_NO
 /// (4) 店群	 = VU.GROUP_NO + VS.NAME
 ///               NAME => SELECT NAME FROM VDS_STM_STOREGROUP WHERE CODE = VU.
 /// GROUP_NO
 /// (5) 店號     = VM.STORE_ID + VU.STORE_NAME
 /// (6) 統一編號 = PV.RFNO
 /// (7) 商品群分類 = VM.ROOT_NO
 /// (8) 稅收 = VM.TAX_TYPE
 /// (9) 暫收金額  =VM.TEMP_AMT
 /// (10) 累計暫收金額 = VM.SUM_TEMP_AMT
 /// (11) 暫收餘額 =VM.TEMP_REMAIN_AMT
 /// </summary>
 public DataTable QueryTempByFind(ArrayList ParameterList)
 {
     //Like部分直接在資料庫Procedure和前台做字串處理,所以查詢部分只呼叫QueryTempByFind,不用呼叫QueryTempByLike
     try
     {
         CAA_MaintainTempRecordDBO DBO = new CAA_MaintainTempRecordDBO(ref USEDB);
         DataTable dt = DBO.QueryTemp(ParameterList);
         return dt;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }