public DataTable QueryErrorByFind(string V_CREATEUID, DateTime D_CREATEDATE_S, DateTime D_CREATEDATE_E) { try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); return dbo.doQueryByFind(0, 2, V_CREATEUID, D_CREATEDATE_S, D_CREATEDATE_E); } catch (Exception ex) { throw ex; } }
public DataTable QueryByFind(int N_IMPORT_KIND, int N_DATATYPE, string V_CREATEUID, DateTime D_CREATEDATE_S, DateTime D_CREATEDATE_E) { try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); return dbo.doQueryByFind(N_IMPORT_KIND, N_DATATYPE, V_CREATEUID, D_CREATEDATE_S, D_CREATEDATE_E); } catch (Exception ex) { throw ex; } }
public void CheckData2(string V_CREATEUID) { try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); dbo.doCheckData2(V_CREATEUID, DBT); DBT.Commit(); } catch (Exception ex) { #region 交易失敗 DBT.Rollback(); #endregion throw ex; } finally { //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } } }
public void TmpToDB(DbTransaction RootDBT, string V_CREATEUID,int type, out string ErrorMsg) { bool IsRootTranscation = false; try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); ErrorMsg = ""; //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion #region TmpToDB string V_RESULT = "1"; dbo.doTmpToDB(V_CREATEUID,type, DBT, out V_RESULT); if (V_RESULT == "0") ErrorMsg = "轉入正式資料失敗,請檢視異常報表!"; #endregion if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); } } catch (Exception ex) { #region 交易失敗 DBT.Rollback(); #endregion throw ex; } finally { #region 判斷是否關閉交易連線 if (IsRootTranscation) { //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } } #endregion } }
public void FileToTmpC(DataTable dtTemp, DbTransaction RootDBT, string V_CREATEUID, out string ErrorMsg) { bool IsRootTranscation = false; try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); ErrorMsg = ""; //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion #region 清空暫存檔 dbo.doDeleteTemp(V_CREATEUID, DBT); #endregion #region FileToTmp ArrayList ParameterList = new ArrayList(); if (dtTemp != null) { for (int i = 0; i < dtTemp.Rows.Count; i++) { Double doubleVal; DateTime dt; ErrorMsg = ""; string STORE =dtTemp.Rows[i]["STORE"].ToString().Trim(); string ITEM =dtTemp.Rows[i]["ITEM"].ToString().Trim(); string PERIOD =dtTemp.Rows[i]["PERIOD"].ToString().Trim(); string PERIOD_END =dtTemp.Rows[i]["PERIOD_END"].ToString().Trim(); string EFF_START =dtTemp.Rows[i]["EFF_START"].ToString().Trim(); string EFF_END =dtTemp.Rows[i]["EFF_END"].ToString().Trim(); string PRICE_DISCOUNT =dtTemp.Rows[i]["PRICE_DISCOUNT"].ToString().Trim(); string FIX_PRICE_DISCOUNT =dtTemp.Rows[i]["FIX_PRICE_DISCOUNT"].ToString().Trim(); string VENDOR_SUB =dtTemp.Rows[i]["VENDOR_SUB"].ToString().Trim(); if (STORE == string.Empty) { ErrorMsg = "店號/店群欄位為必填;"; } else if(STORE.Length > 6) { ErrorMsg += "店號/店群欄位最多6個字元;"; STORE = ""; } else if ((!IsNumber(STORE.Substring(1,STORE.Length-1)) || !IsWord(STORE.Substring(0, 1))) && dtTemp.Rows[i]["IMPORT_KIND"].ToString()=="5") { ErrorMsg += "店號第一碼是英文字或數字,第二碼後都要是數字 !!"; } else if ((!IsWord(STORE.Substring(0, STORE.Length))) && dtTemp.Rows[i]["IMPORT_KIND"].ToString() == "4") { ErrorMsg += "店群欄位格式錯誤;"; } if (ITEM == string.Empty) { ErrorMsg += "品號欄位為必填;"; } else if (ITEM.Length > 6) { ErrorMsg += "品號欄位最多6個字元;"; ITEM = ""; } else if (Double.TryParse(ITEM, out doubleVal) == false) { ErrorMsg += "品號欄位格式錯誤;"; ITEM = ""; } if (PERIOD == string.Empty) { ErrorMsg += "期別起欄位為必填;"; } else if (PERIOD.Length > 6) { ErrorMsg += "期別起欄位最多6個字元;"; PERIOD = ""; } else if (Double.TryParse(PERIOD, out doubleVal) == false) { ErrorMsg += "期別起欄位格式錯誤;"; PERIOD = ""; } if (PERIOD_END == string.Empty) { ErrorMsg += "期別迄欄位為必填;"; } else if (PERIOD_END.Length > 6) { ErrorMsg += "期別迄欄位最多6個字元;"; PERIOD_END = ""; } else if (Double.TryParse(PERIOD_END, out doubleVal) == false) { ErrorMsg += "期別迄欄位格式錯誤;"; PERIOD_END = ""; } if(EFF_START==string.Empty) { ErrorMsg += "折扣開始日欄位為必填;"; EFF_START = "1000/01/01"; } else if(DateTime.TryParse(EFF_START, out dt) == false) { ErrorMsg += "折扣開始日欄位格式錯誤;"; EFF_START = "1000/01/01"; } else { EFF_START = DateTime.ParseExact(DateTime.Parse(EFF_START).ToString("yyyy/MM/dd"), "yyyy/MM/dd", null).ToString("yyyy/MM/dd"); if (DateTime.Parse(EFF_START) < DateTime.Now.Date) { ErrorMsg += "折扣開始日不可小於等於系統日;"; } } if(EFF_END==string.Empty) { ErrorMsg += "折扣結束日欄位為必填;"; EFF_END = "9999/12/31"; } else if (DateTime.TryParse(EFF_END, out dt) == false) { ErrorMsg += "折扣結束日欄位格式錯誤;"; EFF_END = "9999/12/31"; } else { EFF_END = DateTime.ParseExact(DateTime.Parse(EFF_END).ToString("yyyy/MM/dd"), "yyyy/MM/dd", null).ToString("yyyy/MM/dd"); if (String.Compare(EFF_START, EFF_END, true) > 0) { ErrorMsg += "折扣區間結束日不可大於開始日;"; } } if((PRICE_DISCOUNT==string.Empty && FIX_PRICE_DISCOUNT==string.Empty) || (PRICE_DISCOUNT!=string.Empty && FIX_PRICE_DISCOUNT!=string.Empty)) { ErrorMsg += "折扣率與指定牌價須擇一填寫;"; PRICE_DISCOUNT = "0"; FIX_PRICE_DISCOUNT = "0"; } else { if(PRICE_DISCOUNT!=string.Empty) { if(Double.TryParse(PRICE_DISCOUNT,out doubleVal)==false) { ErrorMsg += "折扣率格式錯誤;"; PRICE_DISCOUNT = "0"; } else { double N_PRICE_DISCOUNT=Convert.ToDouble(PRICE_DISCOUNT); if(N_PRICE_DISCOUNT<0|| N_PRICE_DISCOUNT>100) { ErrorMsg += "折扣率需介於0~100之間;"; PRICE_DISCOUNT = "0"; } } } else { if(Double.TryParse(FIX_PRICE_DISCOUNT,out doubleVal)==false) { ErrorMsg += "指定牌價格式錯誤;"; FIX_PRICE_DISCOUNT = "0"; } else { double N_FIX_PRICE_DISCOUNT=Convert.ToDouble(FIX_PRICE_DISCOUNT); if(N_FIX_PRICE_DISCOUNT<0) { ErrorMsg += "指定牌價需大於0;"; FIX_PRICE_DISCOUNT = "0"; } } } } if(VENDOR_SUB!=string.Empty) { if(Double.TryParse(VENDOR_SUB,out doubleVal)==false) { ErrorMsg += "供應商補貼格式錯誤;"; VENDOR_SUB = "0"; } else { double N_VENDOR_SUB=Convert.ToDouble(VENDOR_SUB); if(N_VENDOR_SUB<0|| N_VENDOR_SUB>100) { ErrorMsg += "供應商補貼需介於0~100之間;"; VENDOR_SUB = "0"; } } } ParameterList.Clear(); ParameterList.Add(dtTemp.Rows[i]["CODE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["ROW_NUM"].ToString()); ParameterList.Add(dtTemp.Rows[i]["IMPORT_KIND"].ToString()); ParameterList.Add(STORE); ParameterList.Add(ITEM); ParameterList.Add(PERIOD); ParameterList.Add(PERIOD_END); ParameterList.Add(EFF_START); ParameterList.Add(EFF_END); ParameterList.Add(PRICE_DISCOUNT); ParameterList.Add(FIX_PRICE_DISCOUNT); ParameterList.Add(VENDOR_SUB); ParameterList.Add(dtTemp.Rows[i]["CREATEDATE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["CREATEUID"].ToString()); ParameterList.Add(ErrorMsg); ParameterList.Add(dtTemp.Rows[i]["DATASOURCE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["STATUS"].ToString()); if(ErrorMsg=="") { ParameterList.Add(dtTemp.Rows[i]["DATATYPE"].ToString()); } else { ParameterList.Add("2"); } dbo.doCreateTemp(ParameterList, DBT); } } #endregion if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); IsRootTranscation = false; } CheckData2(V_CREATEUID);//單次匯入 } catch (Exception ex) { #region 交易失敗 if (IsRootTranscation == true) DBT.Rollback(); #endregion throw ex; } finally { #region 判斷是否關閉交易連線 //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } #endregion } }
public void FileToTmp(DataTable dtTemp, DbTransaction RootDBT, string V_CREATEUID, out string ErrorMsg) { bool IsRootTranscation = false; try { DBO.VDS_STM36_DBO dbo = new VDS_STM36_DBO(ref USEDB); ErrorMsg = ""; //判斷是否有傳入Root Transcation IsRootTranscation = (RootDBT == null) ? true : false; #region 啟動交易或指定RootTranscation if (IsRootTranscation) { //獨立呼叫啟動Transcation Conn = USEDB.CreateConnection(); Conn.Open(); DBT = Conn.BeginTransaction(); } else { DBT = RootDBT; } #endregion #region 清空暫存檔 dbo.doDeleteTemp(V_CREATEUID, DBT); #endregion #region FileToTmp ArrayList ParameterList = new ArrayList(); if (dtTemp != null) { for (int i = 0; i < dtTemp.Rows.Count; i++) { ParameterList.Clear(); ParameterList.Add(dtTemp.Rows[i]["CODE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["ROW_NUM"].ToString()); ParameterList.Add(dtTemp.Rows[i]["IMPORT_KIND"].ToString()); ParameterList.Add(dtTemp.Rows[i]["STORE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["ITEM"].ToString()); ParameterList.Add(dtTemp.Rows[i]["PERIOD"].ToString()); ParameterList.Add(dtTemp.Rows[i]["PERIOD_END"].ToString()); ParameterList.Add(dtTemp.Rows[i]["EFF_START"].ToString()); ParameterList.Add(dtTemp.Rows[i]["EFF_END"].ToString()); ParameterList.Add(dtTemp.Rows[i]["PRICE_DISCOUNT"]).ToString(); ParameterList.Add(dtTemp.Rows[i]["FIX_PRICE_DISCOUNT"].ToString()); ParameterList.Add(dtTemp.Rows[i]["VENDOR_SUB"].ToString()); ParameterList.Add(dtTemp.Rows[i]["CREATEDATE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["CREATEUID"].ToString()); ParameterList.Add(dtTemp.Rows[i]["ERROR_MEMO"].ToString()); ParameterList.Add(dtTemp.Rows[i]["DATASOURCE"].ToString()); ParameterList.Add(dtTemp.Rows[i]["STATUS"].ToString()); ParameterList.Add(dtTemp.Rows[i]["DATATYPE"].ToString()); dbo.doCreateTemp(ParameterList, DBT); } } #endregion if (IsRootTranscation) { //獨立呼叫Transcation成立 DBT.Commit(); IsRootTranscation = false; } CheckData(V_CREATEUID);//交叉匯入 } catch (Exception ex) { #region 交易失敗 if (IsRootTranscation == true) DBT.Rollback(); #endregion throw ex; } finally { #region 判斷是否關閉交易連線 //獨立呼叫Transcation,關閉連線 if (Conn.State == ConnectionState.Connecting) { Conn.Close(); } #endregion } }