//結案或是結案解除
        //strWASH_STATUS 2:結案 1:結案解除
        private bool RecordCloseOrOpen(string strWASH_STATUS, ArrayList ParameterList)
        {
            bool IsRootTranscation = false;
            DbTransaction RootDBT = null;
            int iResult = 0;
            bool bResult = false;
            try
            {
                CAA_AccountRecordDBO DBO = new CAA_AccountRecordDBO(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


                DataRow[] drPays = (DataRow[])ParameterList[0];
                DataRow[] drInvDisTmps = (DataRow[])ParameterList[1];
                string strUPDATEUID = ParameterList[2].ToString();
                string strUPDATEDATE = ParameterList[3].ToString();

                //繳款資料 結案/結案解除
                ArrayList ParaPay = new ArrayList();
                foreach (DataRow drPay in drPays)
                {
                    ParaPay.Clear();
                    ParaPay.Add(Get_WashTypeNo(drPay["PAY_TYPE"].ToString()));  //單別                                     
                    ParaPay.Add(drPay["COLL_NO"].ToString());                   //單號                    
                    ParaPay.Add(strWASH_STATUS);                                //結案狀態      
                    ParaPay.Add(strUPDATEUID);                                  //UPDATEUID                                                            
                    ParaPay.Add(ConvertDB_Date(strUPDATEDATE));                 //UPDATEDATE   
                    iResult = DBO.ChangeRecordByOpenClosePay(DBT, ParaPay);
                }

                //發票/折讓/暫收 結案/結案解除
                ArrayList ParaInv = new ArrayList();
                foreach (DataRow drInvDisTm in drInvDisTmps)
                {
                    ParaInv.Clear();
                    ParaInv.Add(Get_CubeTypeNo(drInvDisTm["CUBE_TYPE"].ToString())); //單別                                     
                    ParaInv.Add(drInvDisTm["CUBE_NO"].ToString());                   //單號                    
                    ParaInv.Add(strWASH_STATUS);                                     //結案狀態
                    ParaInv.Add(strUPDATEUID);                                       //UPDATEUID                                                            
                    ParaInv.Add(ConvertDB_Date(strUPDATEDATE));                      //UPDATEDATE   
                    iResult = DBO.ChangeRecordByOpenCloseInv(DBT, ParaInv);
                }


                #region 交易成功

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

                #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 bResult;
        }