Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
        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();
                }
            }
        }
Ejemplo n.º 4
0
        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

            }
        }
Ejemplo n.º 5
0
        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

            }
        }
Ejemplo n.º 6
0
        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

            }
        }