예제 #1
0
        public void UpdateItmPeriodProfile_2(string UserID, string UpdateDate, ArrayList ParameterList, DbTransaction RootDBT, out int accept_days, out int out_days)
        {
            DBO.MaintainAcceptDBO dbo = new DBO.MaintainAcceptDBO(ref USEDB);

            string ValidDate = ParameterList[13].ToString();
            string AllowAccept_Date = ParameterList[14].ToString();

            accept_days = -1;
            out_days = -1;

            if (ValidDate != string.Empty && AllowAccept_Date != string.Empty)
            {
                DateTime dtValid = DateTime.ParseExact(ValidDate, "yyyy/MM/dd", null);
                DateTime dtAllow = DateTime.ParseExact(AllowAccept_Date, "yyyy/MM/dd", null);
                // 計算差異天數
                TimeSpan tsDay = dtValid - dtAllow;
                accept_days = (int)tsDay.TotalDays + 1;
                out_days = GetOutDays(accept_days);
            }

            bool IsRootTranscation = false;
            try
            {
                //判斷是否有傳入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 SQLParameters = new ArrayList();
                SQLParameters.Clear();
                SQLParameters.Add(UserID); //0 string
                SQLParameters.Add(UpdateDate); //1 string
                SQLParameters.Add(ParameterList[0]); //2 string
                SQLParameters.Add(ParameterList[1]); //3 string 
                SQLParameters.Add(ParameterList[2]); //4 int 一包裝數
                SQLParameters.Add(ParameterList[3]); //5 double 3-10 共八個都是 double (SIZE)
                SQLParameters.Add(ParameterList[4]); //6 double
                SQLParameters.Add(ParameterList[5]); //7 double
                SQLParameters.Add(ParameterList[6]); //8 double 
                SQLParameters.Add(ParameterList[7]); //9 double
                SQLParameters.Add(ParameterList[8]); //10 double
                SQLParameters.Add(ParameterList[9]); //11 double
                SQLParameters.Add(ParameterList[10]); //12 double
                SQLParameters.Add(ParameterList[11]); //13 string
                SQLParameters.Add(ParameterList[12]); //14 int
                SQLParameters.Add(accept_days); //15 int
                SQLParameters.Add(out_days); //16 int

                int Res = dbo.UpdateItmPeriodProfile_2(SQLParameters, DBT);

            }
            catch (Exception ex)
            {
                #region 交易失敗
                if (IsRootTranscation)
                {
                    //獨立呼叫Transcation失敗
                    DBT.Rollback();
                }
                #endregion

                throw ex;
            }
        }