public static string checkEffDate(string ROUTE, string Eff_Start, string Eff_End, string ID,string Status) { STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); string returnValue = ""; //新增 if (Status == "INSERT") { //將啟用日是否>SYSDATE if (Convert.ToDateTime(Eff_Start) <= DateTime.Today) { string msg = "[路線啟用日]不可小於等於系統日"; returnValue = "double|" + msg; } else { //檢查是否相同pk已存在 ParameterList.Clear(); ParameterList.Add(ROUTE); ParameterList.Add(Eff_Start); DataTable Dt = BCO.QueryRouteByPK(ParameterList); if (Dt.Rows.Count > 0) { string msg = "已存在相同[路線啟用日]" + (Dt.Rows[0]["EFF_START"]).ToString() + "的資料"; returnValue = "double|" + msg; } else { //2011070 rika insert 修改為需要判斷啟用日是否>=sysdate及大於最大啟用日,及是否有重複的區間 DataTable MasterExistDt = null; string IsMax = string.Empty; IsMax = BCO.QueryMaxEffDate(ParameterList).ToString(); //啟用日是否小於最大路線啟用日 if (IsMax == "1") { string msg = "[路線啟用日]小於最大路線啟用日"; returnValue = "double|" + msg; } else if (IsMax == "0") { MasterExistDt = BCO.QueryVaildByEffDate(ParameterList); if (MasterExistDt != null && MasterExistDt.Rows.Count > 0) { string msg = ""; string newEffEndDate = DateTime.Parse(Eff_Start).AddDays(-1).ToString("yyy/MM/dd"); string oldEffEndDate = (MasterExistDt.Rows[0]["EFF_END"]).ToString().Trim(); if (oldEffEndDate == "" || oldEffEndDate == null) { msg = "已存在路線目前無設定結束日"; } else { msg = "已存在路線目前結束日為" + oldEffEndDate; } msg = msg + ",目前設定的路線起始日為" + Eff_Start; msg = msg + ",是否確定將舊路線結束日更改為" + newEffEndDate; returnValue = "exist|" + msg; } else { returnValue = "ok|ok"; } } //若找不到最大路線則表示為新路線 else { returnValue = "ok|ok"; } } } } //編輯 20110707 rika 修改判斷 else { ParameterList.Clear(); ParameterList.Add(ID); ParameterList.Add(ROUTE); ParameterList.Add(Eff_End); if (Convert.ToDateTime(Eff_End) <= DateTime.Today) { string msg = "[路線停用日]不可小於等於系統日"; returnValue = "double|" + msg; } else { DataTable Dt = BCO.QueryVaildByEffDateForUpdate(ParameterList); if (Dt.Rows.Count > 0 && Dt != null) { string msg = "路線與路線起始日為[" + Dt.Rows[0]["Eff_Start"].ToString() + "]之資料日期區間重疊!"; returnValue = "double|" + msg; } else { returnValue = "ok|ok"; } } } return returnValue; }
}//databind /// <summary> /// 繫結資料 MST /// </summary> private void databind_Mst() { #region try { ErrorMsgLabel.Text = ""; STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); ParameterList.Clear(); ParameterList.Add(this.hiddenROUTE.Value); ParameterList.Add(this.hiddenEFF_START.Value); DataTable Dt = BCO.QueryRouteByPK(ParameterList); if (Dt.Rows.Count == 0) { ErrorMsgLabel.Text = "資料已被刪除,請重新查詢"; } #region 使用XML放置到前端資料 MasterOLDData.InnerHtml = Dt.DataSet.GetXml(); #endregion #region 將啟用日是否>=SYSDATE使用XML放置到前端資料 ////將啟用日是否>=SYSDATE //ParameterList.Clear(); //ParameterList.Add(this.hiddenROUTE.Value); //Dt = BCO.QueryVaildByEffDate(ParameterList); //MasterExistData.InnerHtml = Dt.DataSet.GetXml(); #endregion #region 20110704 rika 新增規則 //如果路線停用日小於等於系統日,則不可編輯/刪除/計算調整資料 if (Dt.Rows[0]["EFF_END"].ToString().Trim()!=string.Empty) { if (Convert.ToDateTime(Dt.Rows[0]["EFF_END"]) <= DateTime.Now) { this.Btn_Edit.Visible = false; this.Btn_Delete.Visible = false; this.Btn_Calculate.Visible = false; } } //如果路線區間包含重複資料則顯示警告訊息,且僅提供編輯或刪除資料 string IsOverLap = BCO.CheckOverlap(ParameterList); if (IsOverLap == "1") { ErrorMsgLabel.Text = "此路線包含重複日期區間資料,請洽系統服務人員!"; this.Btn_Calculate.Visible = false; this.Btn_Copy.Visible = false; } #endregion } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0]; //直接取第一個 } #endregion }//databind_Mst