Пример #1
0
 public DataTable QueryDetail(ArrayList ParameterList)
 {
     try
     {
         VAM15_DBO DBO = new VAM15_DBO(ref USEDB);
         DataTable dt = DBO.QueryDetail(ParameterList);
         return dt;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #2
0
        public bool SaveData(DataTable dt, ArrayList ParameterList)
        {
            bool bResult = false;
            int ID;//接回傳的ID用的,不過目前沒有需要用到,先預留著.
            ArrayList Para = new ArrayList();
            try
            {

                string strPROMOTE_ID = ParameterList[0].ToString();
                string strUID = ParameterList[1].ToString();
                string strOLD_UPDATEUID = ParameterList[2].ToString();
                string strOLD_UPDATEDATE = ParameterList[3].ToString();

                VAM15_DBO DBO = new VAM15_DBO(ref USEDB);

                Conn = USEDB.CreateConnection();
                Conn.Open();
                DBT = Conn.BeginTransaction();
                string strNow = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

                //先把整張檔期有異動的資料刪掉再從新Insert
                //因為如果用一筆del完做一筆insert的方式更新,使用者若是把不同ID間的PK(檔期,廠商,稅別)資料對調,在順向更新時則會發生PK重複的問題.
                //所以要先整批做del完 再做insert
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["CHANGE"].ToString().Trim() == "1")
                    {
                        if (dt.Rows[i]["CREATEDATE"].ToString().Trim() != "")
                        {
                            //先刪除異動過的資料
                            Para.Clear();
                            Para.Add(dt.Rows[i]["ID"].ToString().Trim());
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add("");
                            Para.Add(strUID);
                            Para.Add(strNow);
                            Para.Add(strOLD_UPDATEUID);  //OLD_UPDATEUID
                            Para.Add(strOLD_UPDATEDATE); //OLD_UPDATEDATE
                            Para.Add("0");
                            DBO.UpdateData(Para, DBT);
                        }
                    }
                }
                //重新INSERT
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["CHANGE"].ToString().Trim() == "1")
                    {                  
                        if ((
                               (dt.Rows[i]["CREATEDATE"].ToString().Trim() == "") &&
                               (dt.Rows[i]["VENDOR"].ToString().Trim() != "") &&
                               (dt.Rows[i]["ENABLE"].ToString().Trim() == "1") //無CREATEDATE值,ENABLE=1為新值
                            ) || (
                                (dt.Rows[i]["CREATEDATE"].ToString().Trim() != "") &&  //原本已存在DB的資料
                                (dt.Rows[i]["VENDOR"].ToString().Trim() != "") &&
                                (dt.Rows[i]["ENABLE"].ToString().Trim() == "1")
                               )
                            )
                        {
                            Para.Clear();
                            Para.Add(strPROMOTE_ID);
                            Para.Add(dt.Rows[i]["VENDOR"].ToString());
                            Para.Add(dt.Rows[i]["TAX_TYPE"].ToString());

                            if (dt.Rows[i]["TAX_TYPE"].ToString() == "0")
                            {
                                Para.Add(dt.Rows[i]["NO_TAX_AMT"].ToString()); //TAX_REMAIN_AMT
                                Para.Add("0");                                 //UTAX_REMAIN_AMT
                                Para.Add(dt.Rows[i]["NO_TAX_AMT"].ToString()); //TAX_AMT
                                Para.Add("0");                                 //UTAX_AMT 
                            }
                            else
                            {
                                Para.Add("0");
                                Para.Add(dt.Rows[i]["NO_TAX_AMT"].ToString());
                                Para.Add("0");
                                Para.Add(dt.Rows[i]["NO_TAX_AMT"].ToString());
                            }
                            Para.Add(dt.Rows[i]["TAX"].ToString());
                            if (dt.Rows[i]["CREATEDATE"].ToString().Trim() != "")
                            {
                                Para.Add(dt.Rows[i]["CREATEUID"].ToString().Trim());
                                Para.Add(dt.Rows[i]["CREATEDATE"].ToString().Trim());
                            }
                            else
                            {
                                Para.Add(strUID);
                                Para.Add(strNow);
                            }
                            Para.Add(strUID);
                            Para.Add(strNow);
                            DBO.InsertData(Para, DBT, out ID);
                        }
                    }
                }

                //將同一個PROMOTE_ID 更新為同一個更新時間
                Para.Clear();
                Para.Add("");
                Para.Add(strPROMOTE_ID);
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add(strUID);
                Para.Add(strNow);
                Para.Add("");
                Para.Add("");
                Para.Add("1");
                DBO.UpdateData(Para, DBT);

                DBT.Commit();
                bResult = true;
            }
            catch (Exception ex)
            {
                if (DBT != null)
                    DBT.Rollback();
                throw ex;
            }
            finally
            {
                //獨立呼叫Transcation,關閉連線
                if (Conn.State == ConnectionState.Connecting)
                    Conn.Close();
            }
            return bResult;
        }
Пример #3
0
 public DataTable GetTaxRate()
 {
     try
     {
         VAM15_DBO DBO = new VAM15_DBO(ref USEDB);
         DataTable dt = DBO.GetTaxRate();
         return dt;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #4
0
        public bool DelData(ArrayList ParameterList)
        {
            bool bResult = false;
            ArrayList Para = new ArrayList();
            try
            {
                VAM15_DBO DBO = new VAM15_DBO(ref USEDB);

                Conn = USEDB.CreateConnection();
                Conn.Open();
                DBT = Conn.BeginTransaction();

                string strPROMOTE_ID = ParameterList[0].ToString();
                string strUPDATEUID = ParameterList[1].ToString();
                string strUPDATEDATE = ParameterList[2].ToString();
                string strOLD_UPDATEUID = ParameterList[3].ToString();
                string strOLD_UPDATEDATE = ParameterList[4].ToString();

                Para.Clear();
                Para.Add("");
                Para.Add(strPROMOTE_ID);
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add("");
                Para.Add(strUPDATEUID);
                Para.Add(strUPDATEDATE);
                Para.Add(strOLD_UPDATEUID);  //OLD_UPDATEUID
                Para.Add(strOLD_UPDATEDATE); //OLD_UPDATEDATE
                Para.Add("0");

                DBO.UpdateData(Para, DBT);

                DBT.Commit();

                bResult = true;
            }
            catch (Exception ex)
            {
                if (DBT != null)
                    DBT.Rollback();
                throw ex;
            }
            finally
            {
                //獨立呼叫Transcation,關閉連線
                if (Conn.State == ConnectionState.Connecting)
                    Conn.Close();
            }
            return bResult;
        }