private void InsertData(string path)
        {
            bool isErr = false;

            try
            {

                PHDS_HaulierUpload.TransportationDataTable dtHaulierUp = new PHDS_HaulierUpload.TransportationDataTable();
                /*DataTable dt = new DataTable();
                dt.Columns.AddRange(new DataColumn[] { new DataColumn("Haulier_Abbr"), new DataColumn("Po_No"), new DataColumn("Delivery_Ref"), new DataColumn("Delivery_Date")
                                                        ,new DataColumn("Vendor_Code"), new DataColumn("Vendor_Name"), new DataColumn("Collection_Point"), new DataColumn("Delivery_Location")
                                                        ,new DataColumn("RateType"), new DataColumn("No_Of_Qty"), new DataColumn("Rate_Per_Uint"), new DataColumn("Currency")
                                                        ,new DataColumn("Addition_Cost"), new DataColumn("Addition_Cost_Reason"), new DataColumn("Total_Cost"), new DataColumn("Year_Week_No")
                                                        ,new DataColumn("Remark1"), new DataColumn("Remark2"), new DataColumn("Fuel_Rate") ,new DataColumn("Trans_Type")
                                                     });*/

                string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + path + " ; Extended Properties='Excel 8.0;IMEX=1;HDR=Yes;TypeGuessRows=0;ImportMixedTypes=Text;'";
                string connectionStringXLSX = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + path + " ; Extended Properties=\"Excel 12.0;IMEX=1;HDR=Yes;TypeGuessRows=0;ImportMixedTypes=Text\"";

                connectionString = (path.ToLower().IndexOf("xlsx") > 0) ? connectionStringXLSX : connectionString;

                OleDbConnection conn = new OleDbConnection(connectionString);
                if (conn.State == ConnectionState.Open) conn.Close();
                conn.Open();

                try
                {
                    ViewState["HaulierUploadInsert"] = null;
                    int strUserId = int.Parse(Request["id"]);
                    string strSheet = "Normal";
                    string fileName = path.Split('\\').Length > 0 ? path.Split('\\')[path.Split('\\').Length - 1] : "";
                    //DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                    #region Insert
                    for (int index = 0; index < 2; index++)
                    //foreach (DataRow drSheet in dtSheet.Rows)
                    {
                        try
                        {

                            strSheet = (index == 0) ? "Normal" : "Dummy";

                            string sql = "select * from [" + strSheet + "$]";
                            OleDbCommand cmd = new OleDbCommand(sql, conn);
                            OleDbDataReader drRead = cmd.ExecuteReader();
                            PHDS_HaulierUpload.TransportationRow dr = null;

                            while (drRead.Read())
                            {
                                if (!string.IsNullOrEmpty(drRead[0].ToString().Trim()))
                                {
                                    #region Insert Row
                                    try
                                    {
                                        dr = dtHaulierUp.NewTransportationRow();

                                        string s = drRead[4].ToString().Trim() != "" ? int.Parse(drRead[4].ToString()).ToString("00000") : "00000";//String.Format("{0:00000}", );

                                        dr.PO_No = drRead[1].ToString().Trim();
                                        dr.Haulier_Abbr = drRead[0].ToString().Trim();
                                        dr.UserID = strUserId;
                                        ViewState["HaulierAbbr"] = drRead[0].ToString().Trim();
                                        try
                                        {
                                            dr.Delivery_Date = DateTime.ParseExact(drRead[3].ToString().Trim().Split(' ')[0], "M/d/yyyy", null).ToString("dd/MM/yyyy"); //drRead[3].ToString().Trim().Split(' ')[0];//
                                        }
                                        catch
                                        {
                                            dr.Delivery_Date = DateTime.ParseExact(drRead[3].ToString().Trim().Split(' ')[0], "d/M/yyyy", null).ToString("dd/MM/yyyy"); //drRead[3].ToString().Trim().Split(' ')[0];//
                                        }
                                        dr.Delivery_Ref = drRead[2].ToString().Trim();
                                        dr.Vendor_Code = s;
                                        dr.Vendor_Name = drRead[5].ToString().Trim();
                                        dr.Collection_Point = drRead[6].ToString().Trim();
                                        dr.Delivery_Location = drRead[7].ToString().Trim();
                                        dr.DC_No = 0;
                                        dr.RateType = drRead[8].ToString().Trim();
                                        dr.Currency = drRead[11].ToString().Trim();
                                        dr.Additional_Cost_Reason = drRead[13].ToString();//.Trim() == "" ? 0 : decimal.Parse(drRead[13].ToString().Trim());
                                        dr.Year_Week_OnFile = drRead[15].ToString();
                                        dr.Year_Week_Upload = txtWeek.Text;
                                        dr.Remark1 = drRead[16].ToString().Trim();
                                        dr.Remark2 = drRead[17].ToString().Trim();
                                        dr.FileName = fileName;
                                        dr.Calc_Date = DateTime.Now;
                                        dr.RC_RateCardID = 0;
                                        dr.RC_Sell_Rate = 0;
                                        dr.Sell_Fuel_Rate = 0;
                                        dr.Total_Cost_Charging = 0;
                                        dr.StampTime = DateTime.Now;
                                        dr.No_Of_Qty = drRead[9].ToString().Trim() == "" ? 0 : int.Parse(drRead[9].ToString().Trim());
                                        dr.Rate_Per_Unit = drRead[10].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[10].ToString().Trim());
                                        dr.Additional_Cost = drRead[12].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[12].ToString().Trim());
                                        dr.Total_Cost = drRead[14].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[14].ToString().Trim());
                                        dr.Fuel_Rate = drRead[18].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[18].ToString().Trim());
                                        dr.Trans_Type = IsErrCaseII(dr); // case II , III ,IV

                                        if (IsErrYearWeek(dr))
                                        {
                                            isErr = true;
                                            dr.status = "errYearWeek";
                                        }

                                    }
                                    catch (Exception ex)
                                    {
                                        dr.status = "err";
                                        dr.Remark2 = ex.Message;
                                        PH_ExceptionManager.WriteError("prepare data >> err message : " + ex.Message);
                                    }

                                    dtHaulierUp.Rows.Add(dr);
                                    PH_HaulierUpload.PH_HaulierUp_InsertTMP(AppCode.strConnDB, dr);
                                    #endregion
                                }

                            }
                        }
                        catch (Exception ex) { lblErr.Text += ex.Message; ; PH_ExceptionManager.WriteError("Verlify Data >>" + " Row Index : " + index.ToString() + " err message : " + ex.Message); }
                    }

                    PH_HaulierUpload.PH_HaulierUp_Verify(AppCode.strConnDB, txtWeek.Text, (string)ViewState["HaulierAbbr"], Request["id"]);
                    ViewState["HaulierUploadInsert"] = dtHaulierUp;
                    GetHaulierData(true);

                    btnClear.Enabled = true;
                    #endregion

                }
                catch (Exception ex)
                {
                    lblErr.Text = ex.Message;
                    PH_ExceptionManager.WriteError("Verlify Data >>" + ex.Message);
                }
                finally
                {
                    // lblErr.Text = "";
                }

            }
            catch (Exception ex)
            {
                throw new Exception("InsertData>>" + ex.Message);
            }
        }
        private void InsertData(string path)
        {
            bool isErr = false;

            try
            {
                PHDS_HaulierUpload.TransportationDataTable dtHaulierUp = new PHDS_HaulierUpload.TransportationDataTable();

                /*DataTable dt = new DataTable();
                 * dt.Columns.AddRange(new DataColumn[] { new DataColumn("Haulier_Abbr"), new DataColumn("Po_No"), new DataColumn("Delivery_Ref"), new DataColumn("Delivery_Date")
                 *                                      ,new DataColumn("Vendor_Code"), new DataColumn("Vendor_Name"), new DataColumn("Collection_Point"), new DataColumn("Delivery_Location")
                 *                                      ,new DataColumn("RateType"), new DataColumn("No_Of_Qty"), new DataColumn("Rate_Per_Uint"), new DataColumn("Currency")
                 *                                      ,new DataColumn("Addition_Cost"), new DataColumn("Addition_Cost_Reason"), new DataColumn("Total_Cost"), new DataColumn("Year_Week_No")
                 *                                      ,new DataColumn("Remark1"), new DataColumn("Remark2"), new DataColumn("Fuel_Rate") ,new DataColumn("Trans_Type")
                 *                                   });*/

                string connectionString     = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + path + " ; Extended Properties='Excel 8.0;IMEX=1;HDR=Yes;TypeGuessRows=0;ImportMixedTypes=Text;'";
                string connectionStringXLSX = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + path + " ; Extended Properties=\"Excel 12.0;IMEX=1;HDR=Yes;TypeGuessRows=0;ImportMixedTypes=Text\"";

                connectionString = (path.ToLower().IndexOf("xlsx") > 0) ? connectionStringXLSX : connectionString;

                OleDbConnection conn = new OleDbConnection(connectionString);
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
                conn.Open();

                try
                {
                    ViewState["HaulierUploadInsert"] = null;
                    int    strUserId = int.Parse(Request["id"]);
                    string strSheet  = "Normal";
                    string fileName  = path.Split('\\').Length > 0 ? path.Split('\\')[path.Split('\\').Length - 1] : "";
                    //DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);


                    #region Insert
                    for (int index = 0; index < 2; index++)
                    //foreach (DataRow drSheet in dtSheet.Rows)
                    {
                        try
                        {
                            strSheet = (index == 0) ? "Normal" : "Dummy";

                            string          sql    = "select * from [" + strSheet + "$]";
                            OleDbCommand    cmd    = new OleDbCommand(sql, conn);
                            OleDbDataReader drRead = cmd.ExecuteReader();
                            PHDS_HaulierUpload.TransportationRow dr = null;


                            while (drRead.Read())
                            {
                                if (!string.IsNullOrEmpty(drRead[0].ToString().Trim()))
                                {
                                    #region Insert Row
                                    try
                                    {
                                        dr = dtHaulierUp.NewTransportationRow();

                                        string s = drRead[4].ToString().Trim() != "" ? int.Parse(drRead[4].ToString()).ToString("00000") : "00000";//String.Format("{0:00000}", );

                                        dr.PO_No                 = drRead[1].ToString().Trim();
                                        dr.Haulier_Abbr          = drRead[0].ToString().Trim();
                                        dr.UserID                = strUserId;
                                        ViewState["HaulierAbbr"] = drRead[0].ToString().Trim();
                                        try
                                        {
                                            dr.Delivery_Date = DateTime.ParseExact(drRead[3].ToString().Trim().Split(' ')[0], "M/d/yyyy", null).ToString("dd/MM/yyyy"); //drRead[3].ToString().Trim().Split(' ')[0];//
                                        }
                                        catch
                                        {
                                            dr.Delivery_Date = DateTime.ParseExact(drRead[3].ToString().Trim().Split(' ')[0], "d/M/yyyy", null).ToString("dd/MM/yyyy"); //drRead[3].ToString().Trim().Split(' ')[0];//
                                        }
                                        dr.Delivery_Ref           = drRead[2].ToString().Trim();
                                        dr.Vendor_Code            = s;
                                        dr.Vendor_Name            = drRead[5].ToString().Trim();
                                        dr.Collection_Point       = drRead[6].ToString().Trim();
                                        dr.Delivery_Location      = drRead[7].ToString().Trim();
                                        dr.DC_No                  = 0;
                                        dr.RateType               = drRead[8].ToString().Trim();
                                        dr.Currency               = drRead[11].ToString().Trim();
                                        dr.Additional_Cost_Reason = drRead[13].ToString();//.Trim() == "" ? 0 : decimal.Parse(drRead[13].ToString().Trim());
                                        dr.Year_Week_OnFile       = drRead[15].ToString();
                                        dr.Year_Week_Upload       = txtWeek.Text;
                                        dr.Remark1                = drRead[16].ToString().Trim();
                                        dr.Remark2                = drRead[17].ToString().Trim();
                                        dr.FileName               = fileName;
                                        dr.Calc_Date              = DateTime.Now;
                                        dr.RC_RateCardID          = 0;
                                        dr.RC_Sell_Rate           = 0;
                                        dr.Sell_Fuel_Rate         = 0;
                                        dr.Total_Cost_Charging    = 0;
                                        dr.StampTime              = DateTime.Now;
                                        dr.No_Of_Qty              = drRead[9].ToString().Trim() == "" ? 0 : int.Parse(drRead[9].ToString().Trim());
                                        dr.Rate_Per_Unit          = drRead[10].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[10].ToString().Trim());
                                        dr.Additional_Cost        = drRead[12].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[12].ToString().Trim());
                                        dr.Total_Cost             = drRead[14].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[14].ToString().Trim());
                                        dr.Fuel_Rate              = drRead[18].ToString().Trim() == "" ? 0 : decimal.Parse(drRead[18].ToString().Trim());
                                        dr.Trans_Type             = IsErrCaseII(dr); // case II , III ,IV

                                        if (IsErrYearWeek(dr))
                                        {
                                            isErr     = true;
                                            dr.status = "errYearWeek";
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        dr.status  = "err";
                                        dr.Remark2 = ex.Message;
                                        PH_ExceptionManager.WriteError("prepare data >> err message : " + ex.Message);
                                    }

                                    dtHaulierUp.Rows.Add(dr);
                                    PH_HaulierUpload.PH_HaulierUp_InsertTMP(AppCode.strConnDB, dr);
                                    #endregion
                                }
                            }
                        }
                        catch (Exception ex) { lblErr.Text += ex.Message;; PH_ExceptionManager.WriteError("Verlify Data >>" + " Row Index : " + index.ToString() + " err message : " + ex.Message); }
                    }


                    PH_HaulierUpload.PH_HaulierUp_Verify(AppCode.strConnDB, txtWeek.Text, (string)ViewState["HaulierAbbr"], Request["id"]);
                    ViewState["HaulierUploadInsert"] = dtHaulierUp;
                    GetHaulierData(true);

                    btnClear.Enabled = true;
                    #endregion
                }
                catch (Exception ex)
                {
                    lblErr.Text = ex.Message;
                    PH_ExceptionManager.WriteError("Verlify Data >>" + ex.Message);
                }
                finally
                {
                    // lblErr.Text = "";
                }
            }
            catch (Exception ex)
            {
                throw new Exception("InsertData>>" + ex.Message);
            }
        }