Ejemplo n.º 1
0
    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;

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