Exemple #1
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(SeatManage.ClassModel.ReadingRoomInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into T_SM_ReadingRoom(");
            strSql.Append("ReadingRoomNo,ReadingRoomName,LibraryNo,ReadingSetting,RoomSeat,AreaName)");
            strSql.Append(" values (");
            strSql.Append("@ReadingRoomNo,@ReadingRoomName,@LibraryNo,@ReadingSetting,@RoomSeat,@AreaName)");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ReadingRoomNo",   SqlDbType.NVarChar,  50),
                new SqlParameter("@ReadingRoomName", SqlDbType.NVarChar, 100),
                new SqlParameter("@LibraryNo",       SqlDbType.NVarChar,  50),
                new SqlParameter("@ReadingSetting",  SqlDbType.Text),
                new SqlParameter("@RoomSeat",        SqlDbType.Text),
                new SqlParameter("@AreaName",        SqlDbType.NVarChar, 50)
            };
            parameters[0].Value = model.No;
            parameters[1].Value = model.Name;
            parameters[2].Value = model.Libaray.No;
            parameters[3].Value = model.Setting.ToString();
            parameters[4].Value = model.SeatList.ToString();
            parameters[5].Value = model.Area.AreaName;
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        public Tip_WaitSeat()
        {
            InitializeComponent();
            ClassModel.ReadingRoomInfo roomInfo = clientobject.EnterOutLogData.Student.AtReadingRoom;
            string shortSeatNo = SeatManageComm.SeatComm.SeatNoToShortSeatNo(roomInfo.Setting.SeatNumAmount, clientobject.EnterOutLogData.EnterOutlog.SeatNo);

            lblSeatInfo.Text = string.Format("   {0}  {1} 座位", roomInfo.Name, shortSeatNo);
        }
Exemple #3
0
        protected void DropDownList_Time_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            DateTime bespeakTime      = DateTime.Parse(DropDownList_Time.SelectedText);
            DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
            DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));

            lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
        }
        protected void rblModel_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            DateTime bespeakTime = date;

            if (rblModel.SelectedValue == "0")
            {
                DropDownList_FreeTime.Hidden = true;
                DropDownList_Time.Hidden     = true;
                this.lblEndDate.Text         = string.Format("{0}至{1}", bespeakTime.ToShortTimeString(), bespeakTime.AddMinutes(room.Setting.SeatBespeak.SeatKeepTime).ToShortTimeString());
            }
            else
            {
                if (!room.Setting.SeatBespeak.SpecifiedTime)
                {
                    if (DropDownList_FreeTime.Items.Count < 1)
                    {
                        FineUI.Alert.ShowInTop("对不起当前时间已超过最后可预约的时间段");
                        rblModel.SelectedIndex = 0;
                        return;
                    }
                    DropDownList_Time.Hidden            = true;
                    DropDownList_FreeTime.Hidden        = false;
                    DropDownList_FreeTime.SelectedIndex = 0;
                    bespeakTime = DateTime.Parse(DropDownList_FreeTime.SelectedText);
                    DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                    DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));
                    lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
                }
                else
                {
                    if (DropDownList_Time.Items.Count < 1)
                    {
                        FineUI.Alert.ShowInTop("对不起当前时间已超过最后可预约的时间段");
                        rblModel.SelectedIndex = 0;
                        return;
                    }
                    DropDownList_FreeTime.Hidden    = true;
                    DropDownList_Time.Hidden        = false;
                    DropDownList_Time.SelectedIndex = 0;
                    bespeakTime = DateTime.Parse(DropDownList_Time.SelectedText);
                    DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                    DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));
                    lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(SeatManage.ClassModel.ReadingRoomInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update T_SM_ReadingRoom set ");
            strSql.Append("ReadingRoomName=@ReadingRoomName,");
            strSql.Append("LibraryNo=@LibraryNo,");
            strSql.Append("ReadingSetting=@ReadingSetting,");
            strSql.Append("RoomSeat=@RoomSeat,");
            strSql.Append("AreaName=@AreaName");
            strSql.Append(" where ReadingRoomNo=@ReadingRoomNo ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ReadingRoomName", SqlDbType.NVarChar, 100),
                new SqlParameter("@LibraryNo",       SqlDbType.NVarChar,  50),
                new SqlParameter("@ReadingSetting",  SqlDbType.Text),
                new SqlParameter("@RoomSeat",        SqlDbType.Text),
                new SqlParameter("@AreaName",        SqlDbType.NVarChar,  50),
                new SqlParameter("@ReadingRoomNo",   SqlDbType.NVarChar, 50)
            };
            parameters[0].Value = model.Name;
            parameters[1].Value = model.Libaray.No;
            parameters[2].Value = model.Setting.ToString();
            parameters[3].Value = model.SeatList.ToString();
            parameters[4].Value = model.Area.AreaName;
            parameters[5].Value = model.No;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #6
0
        protected void rblModel_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            SeatManage.ClassModel.ReadingRoomInfo room           = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            SeatManage.Bll.T_SM_ReadingRoom       bllReadingRoom = new SeatManage.Bll.T_SM_ReadingRoom();
            DateTime bespeakTime = Convert.ToDateTime(bllReadingRoom.GetRoomOpenTimeByDate(room.Setting, date).BeginTime);

            if (rblModel.SelectedValue == "0")
            {
                DropDownList_FreeTime.Hidden = true;
                DropDownList_Time.Hidden     = true;
                DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));
                lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
            }
            else
            {
                if (!room.Setting.SeatBespeak.SpecifiedTime)
                {
                    DropDownList_Time.Hidden            = true;
                    DropDownList_FreeTime.Hidden        = false;
                    DropDownList_FreeTime.SelectedIndex = 0;
                    bespeakTime = DateTime.Parse(DropDownList_FreeTime.SelectedText);
                    DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                    DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));
                    lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
                }
                else
                {
                    DropDownList_FreeTime.Hidden    = true;
                    DropDownList_Time.Hidden        = false;
                    DropDownList_Time.SelectedIndex = 0;
                    bespeakTime = DateTime.Parse(DropDownList_Time.SelectedText);
                    DateTime bespeakBeginTime = bespeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                    DateTime bespeakEndTime   = bespeakTime.AddMinutes(double.Parse(room.Setting.SeatBespeak.ConfirmTime.EndTime));
                    lblEndDate.Text = string.Format("{0}至{1}", bespeakBeginTime.ToShortTimeString(), bespeakEndTime.ToShortTimeString());
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool Delete(SeatManage.ClassModel.ReadingRoomInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("delete from T_SM_ReadingRoom ");
            strSql.Append(" where ReadingRoomNo=@ReadingRoomNo ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@ReadingRoomNo", SqlDbType.NVarChar, 50)
            };
            parameters[0].Value = model.No;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 protected void btnBespeak_Click(object sender, EventArgs e)
 {
     SeatManage.ClassModel.BespeakLogInfo bespeakModel = new SeatManage.ClassModel.BespeakLogInfo();
     bespeakModel.BsepeakState  = SeatManage.EnumType.BookingStatus.Waiting;
     bespeakModel.BsepeakTime   = date;
     bespeakModel.CardNo        = this.LoginId;
     bespeakModel.ReadingRoomNo = roomNo.Trim();
     if (rblModel.SelectedValue == "1")
     {
         if (!DropDownList_Time.Hidden == true)
         {
             bespeakModel.BsepeakTime = DateTime.Parse(string.Format("{0} {1}", date.ToShortDateString(), DropDownList_Time.SelectedText));
         }
         else
         {
             bespeakModel.BsepeakTime = DateTime.Parse(string.Format("{0} {1}", date.ToShortDateString(), DropDownList_FreeTime.SelectedText));
         }
     }
     SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(bespeakModel.ReadingRoomNo);
     if (room.Setting.ReadingRoomOpenState(bespeakModel.BsepeakTime) == ReadingRoomStatus.Close)
     {
         FineUI.Alert.ShowInTop("对不起,当前时间阅览室未开放。");
         PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
     }
     bespeakModel.Remark     = string.Format("读者通过Web页面预约当天座位");
     bespeakModel.SeatNo     = seatNo;
     bespeakModel.SubmitTime = date;
     if (bespeakModel.BsepeakTime < bespeakModel.SubmitTime)
     {
         FineUI.Alert.ShowInTop("对不起,预约的时间不正确,请刷新页面重新选择。");
         PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
     }
     try
     {
         Seat seatInfo = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
         if (bespeakModel.BsepeakTime == DateTime.Now.Date && seatInfo.SeatUsedState != EnterOutLogType.Leave) //如果启用预约,判断选择的日期是否为当天的日期
         {
             FineUI.Alert.ShowInTop("对不起,你所预约的座位正在使用。");
             PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
         }
         List <SeatManage.ClassModel.BespeakLogInfo> seatbespeakLog = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, date);
         if (seatbespeakLog.Count > 0)
         {
             FineUI.Alert.ShowInTop("对不起,该座位已经被别人预约。");
             PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
         }
         SeatManage.EnumType.HandleResult result = SeatManage.Bll.T_SM_SeatBespeak.AddBespeakLogInfo(bespeakModel);
         if (result == SeatManage.EnumType.HandleResult.Successed)
         {
             FineUI.Alert.ShowInTop("座位预约成功,请在规定的时间内刷卡确认。");
             PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
         }
         else
         {
             FineUI.Alert.ShowInTop("预约失败,该座位已经被别人预约。");
             PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
         }
     }
     catch (Exception ex)
     {
         FineUI.Alert.ShowInTop(string.Format("执行预约操作遇到错误:{0}", ex.Message));
         PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
     }
 }
Exemple #9
0
        public JsonResult Leave(string seatNo, string seatShortNo, string used)
        {
            JsonResult ret = null;

            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
            SeatManage.ClassModel.ReadingRoomInfo roomInfo    = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
            SeatManage.EnumType.EnterOutLogType   type        = enterOutLog.EnterOutState;
            enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
            enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
            enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, this.LoginId);
            int newId = -1;

            SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
            if (result == SeatManage.EnumType.HandleResult.Successed)
            {
                //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                //rni.CardNo = enterOutLog.CardNo;
                //rni.Type = SeatManage.EnumType.NoticeType.ManagerFreeSetWarning;
                //rni.Note = enterOutLog.Remark;
                //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                PushMsgInfo msg = new PushMsgInfo();
                msg.Title      = "您好,您的座位已被释放";
                msg.MsgType    = MsgPushType.AdminOperation;
                msg.StudentNum = enterOutLog.CardNo;
                msg.Message    = enterOutLog.Remark;
                SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);

                if (type == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                {
                    List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLog.EnterOutLogID, null, null, null);
                    SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                    if (waitSeatLogs.Count > 0)
                    {
                        waitSeatLog              = waitSeatLogs[0];
                        waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                        waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                        waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                        if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                        {
                            //rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                            //rni.CardNo = waitSeatLog.CardNo;
                            //rni.Type = SeatManage.EnumType.NoticeType.WaitSeatFail;
                            //rni.Note = "您所等待的座位已被管理员释放,您的等待已被取消";
                            //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                            //msg = new PushMsgInfo();
                            //msg.Title = "您好,您的等待已被取消";
                            //msg.MsgType = MsgPushType.AdminOperation;
                            //msg.StudentNum = waitSeatLog.CardNo;
                            //msg.Message = "您所等待的座位已被管理员释放,您的等待已被取消";
                            //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);
                        }
                    }
                }

                SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
                if (roomInfo.Setting.IsRecordViolate)
                {
                    if (roomInfo.Setting.BlackListSetting.Used)
                    {
                        if (roomInfo.Setting.BlackListSetting.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin])
                        {
                            SeatManage.ClassModel.ViolationRecordsLogInfo violationRecords = new SeatManage.ClassModel.ViolationRecordsLogInfo();
                            violationRecords.CardNo        = enterOutLog.CardNo;
                            violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                            violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                            violationRecords.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now.ToString();
                            violationRecords.EnterFlag     = SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin;
                            violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, this.LoginId);
                            violationRecords.BlacklistID   = "-1";
                            SeatManage.Bll.T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                        }
                    }
                    else if (rulesSet.BlacklistSet.Used && rulesSet.BlacklistSet.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin])
                    {
                        SeatManage.ClassModel.ViolationRecordsLogInfo violationRecords = new SeatManage.ClassModel.ViolationRecordsLogInfo();
                        violationRecords.CardNo        = enterOutLog.CardNo;
                        violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                        violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                        violationRecords.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now.ToString();
                        violationRecords.EnterFlag     = SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin;
                        violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, this.LoginId);
                        violationRecords.BlacklistID   = "-1";
                        SeatManage.Bll.T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                    }
                }
                ret = Json(new { status = "yes", message = "设置读者离开成功" }, JsonRequestBehavior.AllowGet);
            }
            else
            {
                ret = Json(new { status = "no", message = "设置读者离开失败" }, JsonRequestBehavior.AllowGet);
            }

            return(ret);
        }
Exemple #10
0
        /// <summary>
        /// 绑定UI元素
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>GetBespeakLogInfoBySeatNo
        void BindUIElement(string seatNo, string seatShortNo, DateTime date)
        {
            SeatManage.ClassModel.ReadingRoomInfo room           = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            SeatManage.Bll.T_SM_ReadingRoom       bllReadingRoom = new SeatManage.Bll.T_SM_ReadingRoom();
            foreach (DateTime dt in room.Setting.SeatBespeak.SpecifiedTimeList)
            {
                DropDownList_Time.Items.Add(new FineUI.ListItem(dt.ToShortTimeString(), dt.ToShortTimeString()));
            }
            DateTime minTime = DateTime.Parse(date.ToShortDateString() + " " + bllReadingRoom.GetRoomOpenTimeByDate(room.Setting, date.ToShortDateString()).BeginTime);

            while (true)
            {
                minTime = minTime.AddMinutes(10);
                if (minTime.Date > date.Date)
                {
                    break;
                }
                if (Code.NowReadingRoomState.ReadingRoomOpenState(room.Setting.RoomOpenSet, minTime) == SeatManage.EnumType.ReadingRoomStatus.Close)
                {
                    continue;
                }
                DropDownList_FreeTime.Items.Add(new FineUI.ListItem(minTime.ToShortTimeString(), minTime.ToShortTimeString()));
            }
            if (!room.Setting.SeatBespeak.SpecifiedBespeak)
            {
                rblModel.Hidden = true;
            }
            if (rblModel.SelectedValue == "0")
            {
                DropDownList_FreeTime.Hidden = true;
                DropDownList_Time.Hidden     = true;
            }
            else
            {
                if (!room.Setting.SeatBespeak.SpecifiedTime)
                {
                    DropDownList_Time.Hidden     = true;
                    DropDownList_FreeTime.Hidden = false;
                }
                else
                {
                    DropDownList_FreeTime.Hidden = true;
                    DropDownList_Time.Hidden     = false;
                }
            }
            lblbeginDate.Text     = date.ToShortDateString();
            this.lblSeatNo.Text   = seatShortNo;
            this.lblRoomName.Text = room.Name;
            //判断自己是否已经预约座位
            List <SeatManage.EnumType.BookingStatus> bespeakStatus = new List <SeatManage.EnumType.BookingStatus>();

            bespeakStatus.Add(SeatManage.EnumType.BookingStatus.Waiting);
            List <SeatManage.ClassModel.BespeakLogInfo> readerBespeaklist = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoByCardNo(this.LoginId, date);//.GetBespeakList(this.LoginId, null, date, 0, bespeakStatus);

            if (readerBespeaklist.Count > 0)
            {
                FineUI.Alert.ShowInTop("您选择的日期已经预约了座位,请先取消原来的预约。");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断座位是否被别人预约
            List <SeatManage.ClassModel.BespeakLogInfo> list = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, date);

            roomOpenTime.Value   = bllReadingRoom.GetRoomOpenTimeByDate(room.Setting, date.ToShortDateString()).BeginTime;
            this.lblEndDate.Text = bespeakSureTimeSpan(room.Setting);
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].BsepeakState == SeatManage.EnumType.BookingStatus.Waiting)
                {
                    FineUI.Alert.ShowInTop("座位已经被别人预约,请预约其他座位");
                    btnBespeak.Enabled = false;
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            //判断是否已加入黑名单
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(this.LoginId);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (room.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (room.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == room.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
                else
                {
                    FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            if (room.Setting.LimitReaderEnter.Used)
            {
                SeatManage.ClassModel.ReaderInfo readerInfo = SeatManage.Bll.EnterOutOperate.GetReaderInfo(this.LoginId);
                string[] litype = room.Setting.LimitReaderEnter.ReaderTypes.Split(';');
                if (!room.Setting.LimitReaderEnter.CanEnter)
                {
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                            PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                            return;
                        }
                    }
                }
                else
                {
                    bool isintype = false;
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            isintype = true;
                            break;
                        }
                    }
                    if (!isintype)
                    {
                        FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
            }

            btnBespeak.Enabled = true;
        }
Exemple #11
0
        protected void btnBespeak_Click(object sender, EventArgs e)
        {
            SeatManage.ClassModel.BespeakLogInfo bespeakModel = new SeatManage.ClassModel.BespeakLogInfo();
            bespeakModel.BsepeakState = SeatManage.EnumType.BookingStatus.Waiting;
            DateTime bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), roomOpenTime.Value));

            if (rblModel.SelectedValue == "1")
            {
                if (!DropDownList_Time.Hidden == true)
                {
                    bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), DropDownList_Time.SelectedText));
                }
                else
                {
                    bespeatDate = DateTime.Parse(string.Format("{0} {1}", DateTime.Parse(date).ToShortDateString(), DropDownList_FreeTime.SelectedText));
                }
            }
            bespeakModel.BsepeakTime   = bespeatDate;
            bespeakModel.CardNo        = this.LoginId;
            bespeakModel.ReadingRoomNo = roomNo.Trim();
            bespeakModel.Remark        = string.Format("读者通过Web页面预约座位");
            bespeakModel.SeatNo        = seatNo;
            bespeakModel.SubmitTime    = SeatManage.Bll.ServiceDateTime.Now;
            try
            {
                SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(bespeakModel.ReadingRoomNo);
                if (!room.Setting.IsCanBespeakSeat(bespeakModel.BsepeakTime))
                {
                    FineUI.Alert.ShowInTop("对不起不能预约当前日期的座位,请刷新页面重新选择日期。");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                }
                if (bespeakModel.SubmitTime > bespeakModel.BsepeakTime)
                {
                    FineUI.Alert.ShowInTop("对不起不能预约时间错误,请刷新页面重新选择日期。");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                }
                if (room.Setting.SeatBespeak.BespeakArea.BespeakType == BespeakAreaType.Percentage)
                {
                    List <BespeakLogInfo> bespeaklogs = SeatManage.Bll.T_SM_SeatBespeak.GetNotCheckedBespeakLogInfo(new List <string>()
                    {
                        bespeakModel.ReadingRoomNo
                    }, bespeakModel.BsepeakTime);
                    double canbookCount = (double)((double)(room.SeatList.Seats.Count - room.SeatList.Seats.Where(u => u.Value.IsSuspended).ToArray().Count()) * room.Setting.SeatBespeak.BespeakArea.Scale);
                    if (bespeaklogs.Count >= canbookCount)
                    {
                        FineUI.Alert.ShowInTop("对不起当前阅览室已经没有可预约的座位。");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                    }
                }

                SeatManage.EnumType.HandleResult result = SeatManage.Bll.T_SM_SeatBespeak.AddBespeakLogInfo(bespeakModel);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    FineUI.Alert.ShowInTop("座位预约成功,请在规定的时间内刷卡确认。");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                }
                else
                {
                    FineUI.Alert.ShowInTop("预约失败,该座位已经被别人预约。");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                }
            }
            catch (Exception ex)
            {
                FineUI.Alert.ShowInTop(string.Format("执行预约操作遇到错误:{0}", ex.Message));
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
            }
        }
Exemple #12
0
        /// <summary>
        /// 数据绑定
        /// </summary>
        private void DataBind()
        {
            SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(Request.QueryString["id"]);
            if (room == null)
            {
                room = new SeatManage.ClassModel.ReadingRoomInfo();
            }
            SeatManage.ClassModel.ReadingRoomSetting roomSet = room.Setting;
            if (roomSet == null)
            {
                roomSet = new SeatManage.ClassModel.ReadingRoomSetting();
            }
            //选座模式设置
            SeatSelectDefaultMode.SelectedValue = ((int)roomSet.SeatChooseMethod.DefaultChooseMethod).ToString();
            SeatSelectAdMode.Checked            = roomSet.SeatChooseMethod.UsedAdvancedSet;
            //SelectSeatPosTimes.Text = roomSet.PosTimes.Times.ToString();
            SelectSeatPosCount.Text = roomSet.PosTimes.Times.ToString();
            SelectSeatPosTimes.Text = roomSet.PosTimes.Minutes.ToString();
            SeatSelectPos.Checked   = roomSet.PosTimes.IsUsed;
            if (SeatSelectAdMode.Checked)
            {
                SeatSelectAdModeTable.Style["display"] = "block";
            }
            else
            {
                SeatSelectAdModeTable.Style["display"] = "none";
            }
            //高级设置
            foreach (KeyValuePair <DayOfWeek, SeatChooseMethodPlan> day in roomSet.SeatChooseMethod.AdvancedSelectSeatMode)
            {
                string   dayNum   = ((int)day.Value.Day).ToString();
                CheckBox DayCheck = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum) as CheckBox;
                DayCheck.Checked = day.Value.Used;
                for (int i = 0; i < day.Value.PlanOption.Count; i++)
                {
                    string[]        begintime  = day.Value.PlanOption[i].UsedTime.BeginTime.Split(':');
                    string[]        endtime    = day.Value.PlanOption[i].UsedTime.EndTime.Split(':');
                    TextBox         begintimeH = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_StartH") as TextBox;
                    TextBox         begintimeM = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_StartM") as TextBox;
                    TextBox         endtimeH   = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_EndH") as TextBox;
                    TextBox         endtimeM   = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_EndM") as TextBox;
                    RadioButtonList selectmode = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_SelectMode") as RadioButtonList;
                    begintimeH.Text          = begintime[0];
                    begintimeM.Text          = begintime[1];
                    endtimeH.Text            = endtime[0];
                    endtimeM.Text            = endtime[1];
                    selectmode.SelectedValue = ((int)day.Value.PlanOption[i].ChooseMethod).ToString();
                }
            }
            //暂离设置
            ShortLeaveDufaultTime.Text = roomSet.SeatHoldTime.DefaultHoldTimeLength.ToString();
            ShortLeaveAdMode.Checked   = roomSet.SeatHoldTime.UsedAdvancedSet;
            if (ShortLeaveAdMode.Checked)
            {
                ShortLeaveAdModeTable.Style["display"] = "block";
            }
            else
            {
                ShortLeaveAdModeTable.Style["display"] = "none";
            }
            //高级设置
            for (int i = 0; i < roomSet.SeatHoldTime.AdvancedSeatHoldTime.Count; i++)
            {
                string[] begintime  = roomSet.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.BeginTime.Split(':');
                string[] endtime    = roomSet.SeatHoldTime.AdvancedSeatHoldTime[i].UsedTime.EndTime.Split(':');
                TextBox  begintimeH = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_StartH") as TextBox;
                TextBox  begintimeM = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_StartM") as TextBox;
                TextBox  endtimeH   = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_EndH") as TextBox;
                TextBox  endtimeM   = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_EndM") as TextBox;
                TextBox  leavetime  = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_LeaveTime") as TextBox;
                CheckBox used       = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1)) as CheckBox;
                begintimeH.Text = begintime[0];
                begintimeM.Text = begintime[1];
                endtimeH.Text   = endtime[0];
                endtimeM.Text   = endtime[1];
                leavetime.Text  = roomSet.SeatHoldTime.AdvancedSeatHoldTime[i].HoldTimeLength.ToString();
                used.Checked    = roomSet.SeatHoldTime.AdvancedSeatHoldTime[i].Used;
            }
            //开闭馆计划设置
            string[] opentime  = roomSet.RoomOpenSet.DefaultOpenTime.BeginTime.Split(':');
            string[] closetime = roomSet.RoomOpenSet.DefaultOpenTime.EndTime.Split(':');
            ReadingRoomDufaultOpenTimeH.Text  = opentime[0];
            ReadingRoomDufaultOpenTimeM.Text  = opentime[1];
            ReadingRoomBeforeOpenTime.Text    = roomSet.RoomOpenSet.OpenBeforeTimeLength.ToString();
            ReadingRoomDufaultCloseTimeH.Text = closetime[0];
            ReadingRoomDufaultCloseTimeM.Text = closetime[1];
            ReadingRoomBeforeCloseTime.Text   = roomSet.RoomOpenSet.CloseBeforeTimeLength.ToString();
            ReadingRoomOpen24H.Checked        = roomSet.RoomOpenSet.UninterruptibleModel;
            //高级设置
            ReadingRoomOpenCloseAdMode.Checked = roomSet.RoomOpenSet.UsedAdvancedSet;
            if (ReadingRoomOpenCloseAdMode.Checked)
            {
                ReadingRoomOpenCloseAdModeTable.Style["display"] = "block";
            }
            else
            {
                ReadingRoomOpenCloseAdModeTable.Style["display"] = "none";
            }
            foreach (KeyValuePair <DayOfWeek, RoomOpenPlanSet> day in roomSet.RoomOpenSet.RoomOpenPlan)
            {
                string   dayNum   = ((int)day.Value.Day).ToString();
                CheckBox DayCheck = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum) as CheckBox;
                DayCheck.Checked = day.Value.Used;
                for (int i = 0; i < day.Value.OpenTime.Count; i++)
                {
                    string[] begintime  = day.Value.OpenTime[i].BeginTime.Split(':');
                    string[] endtime    = day.Value.OpenTime[i].EndTime.Split(':');
                    TextBox  begintimeH = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_OpenH") as TextBox;
                    TextBox  begintimeM = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_OpenM") as TextBox;
                    TextBox  endtimeH   = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_CloseH") as TextBox;
                    TextBox  endtimeM   = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_CloseM") as TextBox;
                    begintimeH.Text = begintime[0];
                    begintimeM.Text = begintime[1];
                    endtimeH.Text   = endtime[0];
                    endtimeM.Text   = endtime[1];
                }
            }
            ShortLeaveByAdmin.Checked        = roomSet.AdminShortLeave.IsUsed;
            ShortLeaveByAdmin_LeaveTime.Text = roomSet.AdminShortLeave.HoldTimeLength.ToString();
            //在座时长设置
            SeatTime.Checked                           = roomSet.SeatUsedTimeLimit.Used;
            SeatTime_Mode.SelectedValue                = roomSet.SeatUsedTimeLimit.Mode;
            SeatTime_SeatTime.Text                     = roomSet.SeatUsedTimeLimit.UsedTimeLength.ToString();
            SeatTime_OverTime_Mode.SelectedValue       = ((int)roomSet.SeatUsedTimeLimit.OverTimeHandle).ToString();
            SeatTime_ContinueTime.Checked              = roomSet.SeatUsedTimeLimit.IsCanContinuedTime;
            SeatTime_ContinueTime_Time.Text            = roomSet.SeatUsedTimeLimit.DelayTimeLength.ToString();
            SeatTime_ContinueTime_ContinueCount.Text   = roomSet.SeatUsedTimeLimit.ContinuedTimes.ToString();
            SeatTime_ContinueTime_BeforeTime.Text      = roomSet.SeatUsedTimeLimit.CanDelayTime.ToString();
            SeatTime_ContinueTime_WithBookSpan.Checked = roomSet.SeatUsedTimeLimit.CanNotContinuedWithBookNetFixed;
            for (int i = 0; i < roomSet.SeatUsedTimeLimit.FixedTimes.Count; i++)
            {
                TextBox timeH = FindControl("PanelSetting").FindControl("SeatTimeSetting").FindControl("SeatTime_TimeH_" + i) as TextBox;
                timeH.Text = roomSet.SeatUsedTimeLimit.FixedTimes[i].ToShortTimeString().Split(':')[0];
                TextBox timeM = FindControl("PanelSetting").FindControl("SeatTimeSetting").FindControl("SeatTime_TimeM_" + i) as TextBox;
                timeM.Text = roomSet.SeatUsedTimeLimit.FixedTimes[i].ToShortTimeString().Split(':')[1];
            }

            //预约功能设置
            SeatBook.Checked            = roomSet.SeatBespeak.Used;
            cbMuiteSpan.Checked         = roomSet.SeatBespeak.CanBookMultiSpan;
            ckbDelayTime.Checked        = roomSet.SeatBespeak.AllowDelayTime;
            ckbLeave.Checked            = roomSet.SeatBespeak.AllowLeave;
            ckbShortLeave.Checked       = roomSet.SeatBespeak.AllowShortLeave;
            SeatBook_BeforeBookDay.Text = roomSet.SeatBespeak.BespeakBeforeDays.ToString();
            string[] beginbooktime = roomSet.SeatBespeak.CanBespeatTimeSpace.BeginTime.Split(':');
            string[] endbooktime   = roomSet.SeatBespeak.CanBespeatTimeSpace.EndTime.Split(':');
            SeatBook_BookTime_StartH.Text  = beginbooktime[0];
            SeatBook_BookTime_StartM.Text  = beginbooktime[1];
            SeatBook_BookTime_EndH.Text    = endbooktime[0];
            SeatBook_BookTime_EndM.Text    = endbooktime[1];
            SeatBook_SubmitBeforeTime.Text = roomSet.SeatBespeak.ConfirmTime.BeginTime;
            SeatBook_SubmitLateTime.Text   = roomSet.SeatBespeak.ConfirmTime.EndTime;

            if (roomSet.SeatBespeak.BespeakArea.BespeakType == BespeakAreaType.Percentage)
            {
                SeatBook_SeatBookRadioPercent.Checked = true;
            }
            else if (roomSet.SeatBespeak.BespeakArea.BespeakType == BespeakAreaType.AppointSeat)
            {
                SeatBook_SeatBookRadioSetted.Checked = true;
            }
            SeatBook_SeatBookRadioPercent_Percent.Text = ((roomSet.SeatBespeak.BespeakArea.Scale) * 100).ToString();
            foreach (SeatManage.ClassModel.TimeSpace cannotbookdate in roomSet.SeatBespeak.NoBespeakDates)
            {
                if (!string.IsNullOrEmpty(SeatBook_CanNotSeatBookDate.Text))
                {
                    SeatBook_CanNotSeatBookDate.Text += ";";
                }
                SeatBook_CanNotSeatBookDate.Text += cannotbookdate.BeginTime + "~" + cannotbookdate.EndTime;
            }
            cbNowDayBook.Checked               = roomSet.SeatBespeak.NowDayBespeak;
            NowDayBookTime.Text                = roomSet.SeatBespeak.SeatKeepTime.ToString();
            cbSpecifiedBook.Checked            = roomSet.SeatBespeak.SpecifiedBespeak;
            SeatBook_SelectBespeakSeat.Checked = roomSet.SeatBespeak.SelectBespeakSeat;
            SeatBook_SpecifiedTime.Checked     = roomSet.SeatBespeak.SpecifiedTime;
            SeatBook_BespeakSeatOnSeat.Checked = roomSet.SeatBespeak.BespeatWithOnSeat;
            SeatBook_BespeakSeatCount.Text     = roomSet.SeatBespeak.BespeakSeatCount.ToString();
            foreach (DateTime dt in roomSet.SeatBespeak.SpecifiedTimeList)
            {
                if (SeatBook_SpecifiedTimeList.Text != "")
                {
                    SeatBook_SpecifiedTimeList.Text += ";";
                }
                SeatBook_SpecifiedTimeList.Text += dt.ToShortTimeString();
            }

            //黑名单设置
            UseBlacklist.Checked        = roomSet.UsedBlacklistLimit;
            IsRecordViolate.Checked     = roomSet.IsRecordViolate;
            UseBlacklistSetting.Checked = roomSet.BlackListSetting.Used;
            if (UseBlacklistSetting.Checked)
            {
                UseBlacklistSettingTable.Style["display"] = "block";
            }
            else
            {
                UseBlacklistSettingTable.Style["display"] = "none";
            }
            RecordViolateCount.Text     = roomSet.BlackListSetting.ViolateTimes.ToString();
            LeaveBlackDays.Text         = roomSet.BlackListSetting.LimitDays.ToString();
            LeaveRecordViolateDays.Text = roomSet.BlackListSetting.ViolateFailDays.ToString();
            if (roomSet.BlackListSetting.LeaveBlacklist == LeaveBlacklistMode.AutomaticMode)
            {
                AutoLeave.Checked = true;
            }
            else
            {
                HardLeave.Checked = true;
            }
            RecordViolate_BookOverTime.Checked       = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.BookingTimeOut];
            RecordViolate_LeaveByAdmin.Checked       = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.LeaveByAdmin];
            RecordViolate_SeatOverTime.Checked       = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.SeatOutTime];
            RecordViolate_ShortLeaveByAdmin.Checked  = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveByAdminOutTime];
            RecordViolate_ShortLeaveByReader.Checked = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveByReaderOutTime];
            RecordViolate_ShortLeaveOverTime.Checked = roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveOutTime];
            //其他设置
            ShowSeatNumberCount.Text = roomSet.SeatNumAmount.ToString();
            NoManMode.Checked        = roomSet.NoManagement.Used;
            NoManMode_WaitTime.Text  = roomSet.NoManagement.OperatingInterval.ToString();

            ReaderLimit.Checked = roomSet.LimitReaderEnter.Used;
            if (roomSet.LimitReaderEnter.CanEnter)
            {
                ReaderLimit_LimitMode_Writelist.Checked = true;
            }
            else
            {
                ReaderLimit_LimitMode_Blacklist.Checked = true;
            }
            SeatManage.Bll.T_SM_Reader readerbll = new SeatManage.Bll.T_SM_Reader();
            List <string> readertype             = readerbll.GetReaderType();

            ReaderLimit_ReaderMode.Items.Clear();
            foreach (string reader in readertype)
            {
                if (string.IsNullOrEmpty(reader))
                {
                    ReaderLimit_ReaderMode.Items.Add("未指定");
                }
                else
                {
                    ReaderLimit_ReaderMode.Items.Add(reader);
                }
            }
            string[] readerType = roomSet.LimitReaderEnter.ReaderTypes.Split(';');
            foreach (ListItem ci in ReaderLimit_ReaderMode.Items)
            {
                foreach (string reader in readerType)
                {
                    if (string.IsNullOrEmpty(reader) && ci.Value == "未指定")
                    {
                        ci.Selected = true;
                        break;
                    }
                    else if (ci.Value == reader)
                    {
                        ci.Selected = true;
                        break;
                    }
                }
            }
            SameRoomSet.Items.Clear();
            List <SeatManage.ClassModel.ReadingRoomInfo> rooms = SeatManage.Bll.T_SM_ReadingRoom.GetReadingRooms(null, null, null);

            foreach (SeatManage.ClassModel.ReadingRoomInfo roominfo in rooms)
            {
                if (roominfo.No != room.No)
                {
                    ListItem li = new ListItem(roominfo.Name + "&nbsp;&nbsp;", roominfo.No);
                    SameRoomSet.Items.Add(li);
                }
            }
            for (int i = 0; i < SameRoomSet.Items.Count; i++)
            {
                SameRoomSet.Items[i].Attributes.Add("onmouseover", "showToolTip(event,'" + SameRoomSet.Items[i].Value + "')");
            }
        }
Exemple #13
0
        //void UseBlacklistSetting_CheckedChanged(object sender, EventArgs e)
        //{
        //    if (UseBlacklistSetting.Checked)
        //    {
        //        UseBlacklist.Enabled = false;
        //        UseBlacklist.Checked = true;
        //        IsRecordViolate.Enabled = false;
        //        IsRecordViolate.Checked = true;
        //    }
        //    else
        //    {
        //        IsRecordViolate.Enabled = true;
        //        UseBlacklist.Enabled = true;
        //    }
        //}
        /// <summary>&
        /// 提交
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Submit_OnClick(object sender, EventArgs e)
        {
            SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(Request.QueryString["id"]);
            if (room == null)
            {
                FineUI.Alert.Show("阅览室设置保存失败!");
                return;
            }
            SeatManage.ClassModel.ReadingRoomSetting roomSet = room.Setting;
            if (roomSet == null)
            {
                roomSet = new SeatManage.ClassModel.ReadingRoomSetting();
            }
            //选座设置
            roomSet.SeatChooseMethod.DefaultChooseMethod = (SeatManage.EnumType.SelectSeatMode) int.Parse(SeatSelectDefaultMode.SelectedValue);
            roomSet.SeatChooseMethod.UsedAdvancedSet     = SeatSelectAdMode.Checked;
            roomSet.PosTimes.Minutes = int.Parse(SelectSeatPosTimes.Text);
            roomSet.PosTimes.Times   = int.Parse(SelectSeatPosCount.Text);
            roomSet.PosTimes.IsUsed  = SeatSelectPos.Checked;
            //高级设置
            roomSet.SeatChooseMethod.AdvancedSelectSeatMode.Clear();
            for (int dayNum = 0; dayNum < 7; dayNum++)
            {
                SeatChooseMethodPlan scmp     = new SeatChooseMethodPlan();
                CheckBox             DayCheck = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum) as CheckBox;
                scmp.Used = DayCheck.Checked;
                scmp.PlanOption.Clear();
                for (int i = 0; i < 3; i++)
                {
                    TextBox         begintimeH = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_StartH") as TextBox;
                    TextBox         begintimeM = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_StartM") as TextBox;
                    TextBox         endtimeH   = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_EndH") as TextBox;
                    TextBox         endtimeM   = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_EndM") as TextBox;
                    RadioButtonList selectmode = FindControl("PanelSetting").FindControl("FormReadingRoomSet").FindControl("SeatSelectAdModeDay" + dayNum + "_Time" + (i + 1) + "_SelectMode") as RadioButtonList;
                    if (!string.IsNullOrEmpty(begintimeH.Text) || !string.IsNullOrEmpty(begintimeM.Text) || !string.IsNullOrEmpty(endtimeH.Text) || !string.IsNullOrEmpty(endtimeM.Text))
                    {
                        DateTime begintime = new DateTime();
                        DateTime endtime   = new DateTime();
                        if (!DateTime.TryParse(begintimeH.Text + ":" + begintimeM.Text, out begintime))
                        {
                            FineUI.Alert.Show("选座设置高级设置,时间设置错误!");
                            return;
                        }
                        if (!DateTime.TryParse(endtimeH.Text + ":" + endtimeM.Text, out endtime))
                        {
                            FineUI.Alert.Show("选座设置高级设置,时间设置错误!");
                            return;
                        }
                        SeatChooseMethodOption scmo = new SeatChooseMethodOption();
                        scmo.ChooseMethod       = (SelectSeatMode)int.Parse(selectmode.SelectedValue);
                        scmo.UsedTime.BeginTime = begintime.ToShortTimeString();
                        scmo.UsedTime.EndTime   = endtime.ToShortTimeString();
                        scmp.PlanOption.Add(scmo);
                    }
                }
                roomSet.SeatChooseMethod.AdvancedSelectSeatMode.Add(((DayOfWeek)dayNum), scmp);
            }
            //暂离设置
            roomSet.SeatHoldTime.DefaultHoldTimeLength = int.Parse(ShortLeaveDufaultTime.Text);
            roomSet.SeatHoldTime.UsedAdvancedSet       = ShortLeaveAdMode.Checked;
            //高级设置
            roomSet.SeatHoldTime.AdvancedSeatHoldTime.Clear();
            for (int i = 0; i < 2; i++)
            {
                TextBox  begintimeH = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_StartH") as TextBox;
                TextBox  begintimeM = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_StartM") as TextBox;
                TextBox  endtimeH   = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_EndH") as TextBox;
                TextBox  endtimeM   = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_EndM") as TextBox;
                TextBox  leavetime  = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1) + "_LeaveTime") as TextBox;
                CheckBox used       = FindControl("PanelSetting").FindControl("FormShortLeave").FindControl("ShortLeaveAdMode_Time" + (i + 1)) as CheckBox;
                DateTime begintime  = new DateTime();
                DateTime endtime    = new DateTime();
                if (!string.IsNullOrEmpty(begintimeH.Text) || !string.IsNullOrEmpty(begintimeM.Text) || !string.IsNullOrEmpty(endtimeH.Text) || !string.IsNullOrEmpty(endtimeM.Text) || !string.IsNullOrEmpty(leavetime.Text))
                {
                    if (!DateTime.TryParse(begintimeH.Text + ":" + begintimeM.Text, out begintime))
                    {
                        FineUI.Alert.Show("暂离设置高级设置,时间设置错误!");
                        return;
                    }
                    if (!DateTime.TryParse(endtimeH.Text + ":" + endtimeM.Text, out endtime))
                    {
                        FineUI.Alert.Show("暂离设置高级设置,时间设置错误!");
                        return;
                    }
                    SeatHoldTimeOption shto = new SeatHoldTimeOption();
                    shto.HoldTimeLength     = int.Parse(leavetime.Text);
                    shto.Used               = used.Checked;
                    shto.UsedTime.BeginTime = begintime.ToShortTimeString();
                    shto.UsedTime.EndTime   = endtime.ToShortTimeString();
                    roomSet.SeatHoldTime.AdvancedSeatHoldTime.Add(shto);
                }
            }
            roomSet.AdminShortLeave.IsUsed         = ShortLeaveByAdmin.Checked;
            roomSet.AdminShortLeave.HoldTimeLength = int.Parse(ShortLeaveByAdmin_LeaveTime.Text);
            //开闭馆计划设置
            DateTime opentime  = new DateTime();
            DateTime closetime = new DateTime();

            if (!DateTime.TryParse(ReadingRoomDufaultOpenTimeH.Text + ":" + ReadingRoomDufaultOpenTimeM.Text, out opentime))
            {
                FineUI.Alert.Show("开闭馆计划设置,时间设置错误!");
                return;
            }
            if (!DateTime.TryParse(ReadingRoomDufaultCloseTimeH.Text + ":" + ReadingRoomDufaultCloseTimeM.Text, out closetime))
            {
                FineUI.Alert.Show("开闭馆计划设置,时间设置错误!");
                return;
            }
            roomSet.RoomOpenSet.DefaultOpenTime.BeginTime = opentime.ToShortTimeString();
            roomSet.RoomOpenSet.DefaultOpenTime.EndTime   = closetime.ToShortTimeString();
            roomSet.RoomOpenSet.OpenBeforeTimeLength      = int.Parse(ReadingRoomBeforeOpenTime.Text);
            roomSet.RoomOpenSet.CloseBeforeTimeLength     = int.Parse(ReadingRoomBeforeCloseTime.Text);
            roomSet.RoomOpenSet.UninterruptibleModel      = ReadingRoomOpen24H.Checked;
            //高级设置
            roomSet.RoomOpenSet.UsedAdvancedSet = ReadingRoomOpenCloseAdMode.Checked;
            //foreach (KeyValuePair<DayOfWeek, RoomOpenPlanSet> day in roomSet.RoomOpenSet.RoomOpenPlan)
            //{
            roomSet.RoomOpenSet.RoomOpenPlan.Clear();
            for (int dayNum = 0; dayNum < 7; dayNum++)
            {
                RoomOpenPlanSet rops     = new RoomOpenPlanSet();
                CheckBox        DayCheck = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum) as CheckBox;
                rops.Used = DayCheck.Checked;
                rops.OpenTime.Clear();
                for (int i = 0; i < 3; i++)
                {
                    TextBox  begintimeH = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_OpenH") as TextBox;
                    TextBox  begintimeM = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_OpenM") as TextBox;
                    TextBox  endtimeH   = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_CloseH") as TextBox;
                    TextBox  endtimeM   = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1) + "_CloseM") as TextBox;
                    CheckBox used       = FindControl("PanelSetting").FindControl("FormReadingRoomOC").FindControl("ReadingRoomAdOpenTime_Day" + dayNum + "_Time" + (i + 1)) as CheckBox;
                    if (!string.IsNullOrEmpty(begintimeH.Text) || !string.IsNullOrEmpty(begintimeM.Text) || !string.IsNullOrEmpty(endtimeH.Text) || !string.IsNullOrEmpty(endtimeM.Text))
                    {
                        DateTime begintime = new DateTime();
                        DateTime endtime   = new DateTime();
                        if (!DateTime.TryParse(begintimeH.Text + ":" + begintimeM.Text, out begintime))
                        {
                            FineUI.Alert.Show("开闭馆计划高级设置,时间设置错误!");
                            return;
                        }
                        if (!DateTime.TryParse(endtimeH.Text + ":" + endtimeM.Text, out endtime))
                        {
                            FineUI.Alert.Show("开闭馆计划高级设置,时间设置错误!");
                            return;
                        }
                        TimeSpace ts = new TimeSpace();
                        ts.BeginTime = begintime.ToShortTimeString();
                        ts.EndTime   = endtime.ToShortTimeString();
                        rops.OpenTime.Add(ts);
                    }
                }
                roomSet.RoomOpenSet.RoomOpenPlan.Add(((DayOfWeek)dayNum), rops);
            }
            //在座时长设置
            roomSet.SeatUsedTimeLimit.Used               = SeatTime.Checked;
            roomSet.SeatUsedTimeLimit.Mode               = SeatTime_Mode.SelectedValue;
            roomSet.SeatUsedTimeLimit.UsedTimeLength     = int.Parse(SeatTime_SeatTime.Text);
            roomSet.SeatUsedTimeLimit.OverTimeHandle     = (EnterOutLogType)int.Parse(SeatTime_OverTime_Mode.SelectedValue);
            roomSet.SeatUsedTimeLimit.IsCanContinuedTime = SeatTime_ContinueTime.Checked;
            roomSet.SeatUsedTimeLimit.DelayTimeLength    = int.Parse(SeatTime_ContinueTime_Time.Text);
            roomSet.SeatUsedTimeLimit.ContinuedTimes     = int.Parse(SeatTime_ContinueTime_ContinueCount.Text);
            roomSet.SeatUsedTimeLimit.CanDelayTime       = int.Parse(SeatTime_ContinueTime_BeforeTime.Text);
            roomSet.SeatUsedTimeLimit.CanNotContinuedWithBookNetFixed = SeatTime_ContinueTime_WithBookSpan.Checked;
            roomSet.SeatUsedTimeLimit.FixedTimes.Clear();
            for (int i = 0; i < 4; i++)
            {
                TextBox timeH = FindControl("PanelSetting").FindControl("SeatTimeSetting").FindControl("SeatTime_TimeH_" + i) as TextBox;
                TextBox timeM = FindControl("PanelSetting").FindControl("SeatTimeSetting").FindControl("SeatTime_TimeM_" + i) as TextBox;
                if (timeH.Text != "" && timeM.Text != "")
                {
                    DateTime dt = new DateTime();
                    if (!DateTime.TryParse(timeH.Text + ":" + timeM.Text, out dt))
                    {
                        FineUI.Alert.Show("在座时长设置,时间设置错误!");
                        return;
                    }
                    roomSet.SeatUsedTimeLimit.FixedTimes.Add(dt);
                }
            }
            if (roomSet.SeatUsedTimeLimit.Mode != "Free" && roomSet.SeatUsedTimeLimit.Used && roomSet.SeatUsedTimeLimit.FixedTimes.Count == 0)
            {
                FineUI.Alert.Show("在座时长设置,请设置限制时间!");
                return;
            }



            //预约功能设置
            roomSet.SeatBespeak.Used              = SeatBook.Checked;
            roomSet.SeatBespeak.CanBookMultiSpan  = cbMuiteSpan.Checked;
            roomSet.SeatBespeak.AllowDelayTime    = ckbDelayTime.Checked;
            roomSet.SeatBespeak.AllowLeave        = ckbLeave.Checked;
            roomSet.SeatBespeak.AllowShortLeave   = ckbShortLeave.Checked;
            roomSet.SeatBespeak.NowDayBespeak     = cbNowDayBook.Checked;
            roomSet.SeatBespeak.SeatKeepTime      = int.Parse(NowDayBookTime.Text);
            roomSet.SeatBespeak.BespeakBeforeDays = int.Parse(SeatBook_BeforeBookDay.Text);
            DateTime beginbooktime = new DateTime();
            DateTime endbooktime   = new DateTime();

            if (!DateTime.TryParse(SeatBook_BookTime_StartH.Text + ":" + SeatBook_BookTime_StartM.Text, out beginbooktime))
            {
                FineUI.Alert.Show("预约设置,时间设置错误!");
                return;
            }
            if (!DateTime.TryParse(SeatBook_BookTime_EndH.Text + ":" + SeatBook_BookTime_EndM.Text, out endbooktime))
            {
                FineUI.Alert.Show("预约设置,时间设置错误!");
                return;
            }
            roomSet.SeatBespeak.CanBespeatTimeSpace.BeginTime = beginbooktime.ToShortTimeString();
            roomSet.SeatBespeak.CanBespeatTimeSpace.EndTime   = endbooktime.ToShortTimeString();
            roomSet.SeatBespeak.ConfirmTime.BeginTime         = SeatBook_SubmitBeforeTime.Text;
            roomSet.SeatBespeak.ConfirmTime.EndTime           = SeatBook_SubmitLateTime.Text;

            roomSet.SeatBespeak.SpecifiedBespeak  = cbSpecifiedBook.Checked;
            roomSet.SeatBespeak.SelectBespeakSeat = SeatBook_SelectBespeakSeat.Checked;
            roomSet.SeatBespeak.SpecifiedTime     = SeatBook_SpecifiedTime.Checked;
            roomSet.SeatBespeak.BespeatWithOnSeat = SeatBook_BespeakSeatOnSeat.Checked;
            roomSet.SeatBespeak.BespeakSeatCount  = int.Parse(SeatBook_BespeakSeatCount.Text);
            roomSet.SeatBespeak.SpecifiedTimeList.Clear();
            if (SeatBook_SpecifiedTimeList.Text != "")
            {
                string[] booktimes = SeatBook_SpecifiedTimeList.Text.Split(';');
                foreach (string dt in booktimes)
                {
                    DateTime t = new DateTime();
                    if (DateTime.TryParse(dt, out t))
                    {
                        if (roomSet.SeatBespeak.SpecifiedTimeList.Count > 0 && t <= roomSet.SeatBespeak.SpecifiedTimeList[roomSet.SeatBespeak.SpecifiedTimeList.Count - 1])
                        {
                            FineUI.Alert.Show("预约设置,指定时段设置错误!");
                            return;
                        }
                        roomSet.SeatBespeak.SpecifiedTimeList.Add(t);
                    }
                }
            }
            if (roomSet.SeatBespeak.SpecifiedTimeList.Count < 1 && roomSet.SeatBespeak.SpecifiedTime)
            {
                FineUI.Alert.Show("预约设置,请设置指定的预约时间!");
                return;
            }


            if (SeatBook_SeatBookRadioPercent.Checked)
            {
                roomSet.SeatBespeak.BespeakArea.BespeakType = BespeakAreaType.Percentage;
            }
            else if (SeatBook_SeatBookRadioSetted.Checked)
            {
                roomSet.SeatBespeak.BespeakArea.BespeakType = BespeakAreaType.AppointSeat;
            }
            roomSet.SeatBespeak.BespeakArea.Scale = double.Parse(SeatBook_SeatBookRadioPercent_Percent.Text) / 100;
            roomSet.SeatBespeak.NoBespeakDates.Clear();
            if (!string.IsNullOrEmpty(SeatBook_CanNotSeatBookDate.Text))
            {
                string[] cannotbookdate = SeatBook_CanNotSeatBookDate.Text.Split(';');
                foreach (string date in cannotbookdate)
                {
                    string[] datespan  = date.Split('~');
                    DateTime begindate = new DateTime();
                    DateTime enddate   = new DateTime();
                    if (datespan.Length > 1)
                    {
                        if (!DateTime.TryParse(datespan[0], out begindate))
                        {
                            FineUI.Alert.Show("预约设置,不可预约时间设置错误!");
                            return;
                        }
                        if (!DateTime.TryParse(datespan[1], out enddate))
                        {
                            FineUI.Alert.Show("预约设置,不可预约时间设置错误!");
                            return;
                        }
                        TimeSpace ts = new TimeSpace();
                        ts.BeginTime = begindate.Month.ToString() + "-" + begindate.Day.ToString();
                        ts.EndTime   = enddate.Month.ToString() + "-" + enddate.Day.ToString();
                        roomSet.SeatBespeak.NoBespeakDates.Add(ts);
                    }
                    else
                    {
                        FineUI.Alert.Show("预约设置,不可预约时间设置错误!");
                        return;
                    }
                }
            }
            //黑名单设置
            roomSet.UsedBlacklistLimit    = UseBlacklist.Checked;
            roomSet.IsRecordViolate       = IsRecordViolate.Checked;
            roomSet.BlackListSetting.Used = UseBlacklistSetting.Checked;
            if (roomSet.BlackListSetting.Used)
            {
                roomSet.UsedBlacklistLimit = true;
                roomSet.IsRecordViolate    = true;
            }
            roomSet.BlackListSetting.ViolateTimes    = int.Parse(RecordViolateCount.Text);
            roomSet.BlackListSetting.LimitDays       = int.Parse(LeaveBlackDays.Text);
            roomSet.BlackListSetting.ViolateFailDays = int.Parse(LeaveRecordViolateDays.Text);
            if (AutoLeave.Checked)
            {
                roomSet.BlackListSetting.LeaveBlacklist = LeaveBlacklistMode.AutomaticMode;
            }
            else
            {
                roomSet.BlackListSetting.LeaveBlacklist = LeaveBlacklistMode.ManuallyMode;
            }
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.BookingTimeOut]            = RecordViolate_BookOverTime.Checked;
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.LeaveByAdmin]              = RecordViolate_LeaveByAdmin.Checked;
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.SeatOutTime]               = RecordViolate_SeatOverTime.Checked;
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveByAdminOutTime]  = RecordViolate_ShortLeaveByAdmin.Checked;
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveByReaderOutTime] = RecordViolate_ShortLeaveByReader.Checked;
            roomSet.BlackListSetting.ViolateRoule[ViolationRecordsType.ShortLeaveOutTime]         = RecordViolate_ShortLeaveOverTime.Checked;
            //其他设置
            roomSet.SeatNumAmount     = int.Parse(ShowSeatNumberCount.Text);
            roomSet.NoManagement.Used = NoManMode.Checked;
            roomSet.NoManagement.OperatingInterval = double.Parse(NoManMode_WaitTime.Text);
            roomSet.LimitReaderEnter.Used          = ReaderLimit.Checked;
            if (ReaderLimit_LimitMode_Writelist.Checked)
            {
                roomSet.LimitReaderEnter.CanEnter = true;
            }
            else
            {
                roomSet.LimitReaderEnter.CanEnter = false;
            }
            roomSet.LimitReaderEnter.ReaderTypes = "";
            foreach (ListItem type in ReaderLimit_ReaderMode.Items)
            {
                if (type.Selected)
                {
                    if (!string.IsNullOrEmpty(roomSet.LimitReaderEnter.ReaderTypes))
                    {
                        roomSet.LimitReaderEnter.ReaderTypes += ";";
                    }
                    roomSet.LimitReaderEnter.ReaderTypes += type.Value;
                }
            }
            roomSet.LimitReaderEnter.ReaderTypes = roomSet.LimitReaderEnter.ReaderTypes.Replace("未指定", "");
            room.Setting = roomSet;
            if (SeatManage.Bll.T_SM_ReadingRoom.UpdateReadingRoom(room))
            {
                List <SeatManage.ClassModel.ReadingRoomInfo> rooms = SeatManage.Bll.T_SM_ReadingRoom.GetReadingRooms(null, null, null);
                foreach (ListItem li in SameRoomSet.Items)
                {
                    if (li.Selected)
                    {
                        foreach (SeatManage.ClassModel.ReadingRoomInfo roominfo in rooms)
                        {
                            if (roominfo.No == li.Value)
                            {
                                roominfo.Setting = roomSet;
                                if (!SeatManage.Bll.T_SM_ReadingRoom.UpdateReadingRoom(roominfo))
                                {
                                    FineUI.Alert.Show("保存失败!");
                                    return;
                                }
                            }
                        }
                    }
                }
                FineUI.PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                FineUI.Alert.ShowInTop("保存成功!");
            }
            else
            {
                FineUI.Alert.Show("保存失败!");
            }
        }
Exemple #14
0
        public JsonResult ShortLeave(string seatNo, string seatShortNo, string used, string isShortLeave)
        {
            JsonResult ret = null;

            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
            SeatManage.ClassModel.ReadingRoomInfo roomInfo    = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);

            if (isShortLeave == "y")
            {
                enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.ShortLeave;
                enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站设置为暂离", roomInfo.Name, enterOutLog.ShortSeatNo, this.LoginId);
                int newId = -1;
                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    ret = Json(new { status = "yes", message = "设置读者暂离成功" }, JsonRequestBehavior.AllowGet);
                }
                else
                {
                    ret = Json(new { status = "no", message = "设置读者暂离失败" }, JsonRequestBehavior.AllowGet);
                }
            }
            else
            {
                enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.ComeBack;
                enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站设置为在座", roomInfo.Name, enterOutLog.ShortSeatNo, this.LoginId);
                int newId = -1;
                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLog.EnterOutLogID, null, null, null);
                    SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                    if (waitSeatLogs.Count > 0)
                    {
                        waitSeatLog              = waitSeatLogs[0];
                        waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                        waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                        waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                        if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                        {
                            ret = Json(new { status = "yes", message = "取消读者暂离成功" }, JsonRequestBehavior.AllowGet);
                        }
                        else
                        {
                            ret = Json(new { status = "yes", message = "取消读者暂离成功,取消等待失败" }, JsonRequestBehavior.AllowGet);
                        }
                    }
                    else
                    {
                        ret = Json(new { status = "yes", message = "取消读者暂离成功" }, JsonRequestBehavior.AllowGet);
                    }
                }
                else
                {
                    ret = Json(new { status = "no", message = "取消读者暂离失败" }, JsonRequestBehavior.AllowGet);
                }
            }
            return(ret);
        }
Exemple #15
0
        /// <summary>
        /// 添加黑名单
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>
        /// <param name="used"></param>
        /// <param name="CardNo"></param>
        /// <param name="addBlackListRemark"></param>
        /// <returns></returns>
        public JsonResult SureAddBlacklist(string seatNo, string seatShortNo, string used, string CardNo, string addBlackListRemark)
        {
            addBlackListRemark = string.IsNullOrEmpty(addBlackListRemark) ? "未备注" : addBlackListRemark;

            JsonResult ret = null;

            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.RegulationRulesSetting rulesSet     = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            SeatManage.ClassModel.BlacklistSetting       blacklistSet = rulesSet.BlacklistSet;
            SeatManage.ClassModel.ReadingRoomInfo        readingroom  = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            int i = -1;

            if (readingroom != null && readingroom.Setting.BlackListSetting.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.ReadingRoomID    = readingroom.No;
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = CardNo;
                blacklistModel.OutBlacklistMode = readingroom.Setting.BlackListSetting.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, readingroom.Setting.BlackListSetting.LimitDays, addBlackListRemark);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(readingroom.Setting.BlackListSetting.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, addBlackListRemark);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else if (blacklistSet.Used)
            {
                SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                blacklistModel.OutTime          = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                blacklistModel.CardNo           = CardNo;
                blacklistModel.OutBlacklistMode = blacklistSet.LeaveBlacklist;
                if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                {
                    blacklistModel.ReMark  = string.Format("管理员{0}把读者加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, blacklistSet.LimitDays, addBlackListRemark);
                    blacklistModel.OutTime = blacklistModel.AddTime.AddDays(blacklistSet.LimitDays);
                }
                else
                {
                    blacklistModel.ReMark = string.Format("管理员{0}把读者加入黑名单,手动离开黑名单,备注:{1}", this.LoginId, addBlackListRemark);
                }
                blacklistModel.ReadingRoomID = seat.ReadingRoomNum;
                i = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
            }
            else
            {
                ret = Json(new { status = "no", message = "对不起,此阅览室以及图书馆没有启用黑名单功能" }, JsonRequestBehavior.AllowGet);
            }
            if (i > 0)
            {
                SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(CardNo);
                SeatManage.EnumType.EnterOutLogType   type             = enterOutLogModel.EnterOutState;
                enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
                enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
                enterOutLogModel.Remark        = string.Format("在{0},{1}号座位,被管理员{2},在后台管理网站加入黑名单并释放座位", enterOutLogModel.ReadingRoomName, enterOutLogModel.ShortSeatNo, this.LoginId);
                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref i);
                if (result == SeatManage.EnumType.HandleResult.Successed)
                {
                    //SeatManage.ClassModel.ReaderNoticeInfo rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                    //rni.CardNo = enterOutLogModel.CardNo;
                    //rni.Type = SeatManage.EnumType.NoticeType.ManagerFreeSetWarning;
                    //rni.Note = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                    //PushMsgInfo msg = new PushMsgInfo();
                    //msg.Title = "您好,您的座位已被释放";
                    //msg.MsgType = MsgPushType.AdminOperation;
                    //msg.StudentNum = enterOutLogModel.CardNo;
                    //msg.Message = enterOutLogModel.Remark;
                    //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);


                    if (type == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                    {
                        List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLogModel.EnterOutLogID, null, null, null);
                        SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                        if (waitSeatLogs.Count > 0)
                        {
                            waitSeatLog              = waitSeatLogs[0];
                            waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                            waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                            waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                            if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                            {
                                //rni = new SeatManage.ClassModel.ReaderNoticeInfo();
                                //rni.CardNo = waitSeatLog.CardNo;
                                //rni.Type = SeatManage.EnumType.NoticeType.WaitSeatFail;
                                //rni.Note = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.AddReaderNotice(rni);

                                //msg = new PushMsgInfo();
                                //msg.Title = "您好,您已被取消等待";
                                //msg.MsgType = MsgPushType.AdminOperation;
                                //msg.StudentNum = waitSeatLog.CardNo;
                                //msg.Message = "您所等待的座位已被管理员释放,您的等待已被取消";
                                //SeatManage.Bll.T_SM_ReaderNotice.SendPushMsg(msg);
                            }
                        }
                    }
                    ret = Json(new { status = "yes", message = "黑名单添加成功" }, JsonRequestBehavior.AllowGet);
                }
                else
                {
                    ret = Json(new { status = "no", message = "黑名单添加失败" }, JsonRequestBehavior.AllowGet);
                }
            }
            else
            {
                ret = Json(new { status = "no", message = "黑名单添加失败" }, JsonRequestBehavior.AllowGet);
            }
            return(ret);
        }
        /// <summary>
        /// 绑定UI元素
        /// </summary>
        /// <param name="seatNo"></param>
        /// <param name="seatShortNo"></param>GetBespeakLogInfoBySeatNo
        void BindUIElement(string seatNo, string seatShortNo, DateTime date)
        {
            SeatManage.ClassModel.ReadingRoomInfo room           = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(roomNo);
            SeatManage.Bll.T_SM_ReadingRoom       bllReadingRoom = new SeatManage.Bll.T_SM_ReadingRoom();
            foreach (DateTime dt in room.Setting.SeatBespeak.SpecifiedTimeList)
            {
                if (dt <= date)
                {
                    continue;
                }
                DropDownList_Time.Items.Add(new FineUI.ListItem(dt.ToShortTimeString(), dt.ToShortTimeString()));
            }
            DateTime minTime = date.AddMinutes(10 - date.Minute % 10);

            while (true)
            {
                minTime = minTime.AddMinutes(10);
                if (minTime.Date > date.Date)
                {
                    break;
                }
                if (Code.NowReadingRoomState.ReadingRoomOpenState(room.Setting.RoomOpenSet, minTime) == SeatManage.EnumType.ReadingRoomStatus.Close)
                {
                    continue;
                }
                DropDownList_FreeTime.Items.Add(new FineUI.ListItem(minTime.ToShortTimeString(), minTime.ToShortTimeString()));
            }
            if (!room.Setting.SeatBespeak.SpecifiedBespeak)
            {
                rblModel.Hidden = true;
            }
            if (rblModel.SelectedValue == "0")
            {
                DropDownList_FreeTime.Hidden = true;
                DropDownList_Time.Hidden     = true;
            }
            else
            {
                if (!room.Setting.SeatBespeak.SpecifiedTime)
                {
                    DropDownList_Time.Hidden     = true;
                    DropDownList_FreeTime.Hidden = false;
                }
                else
                {
                    DropDownList_FreeTime.Hidden = true;
                    DropDownList_Time.Hidden     = false;
                }
            }
            lblbeginDate.Text     = date.ToShortDateString();
            this.lblSeatNo.Text   = seatShortNo;
            this.lblRoomName.Text = room.Name;
            //判断自己是否已经预约座位
            List <SeatManage.EnumType.BookingStatus> bespeakStatus = new List <SeatManage.EnumType.BookingStatus>();

            bespeakStatus.Add(SeatManage.EnumType.BookingStatus.Waiting);
            List <SeatManage.ClassModel.BespeakLogInfo> readerBespeaklist = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoByCardNo(this.LoginId, date);//.GetBespeakList(this.LoginId, null, date, 0, bespeakStatus);

            if (readerBespeaklist.Count > 0)
            {
                FineUI.Alert.ShowInTop("您今天已有预约的座位,请先取消原来的预约。");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断可预约次数是否超过
            readerBespeaklist = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakList(this.LoginId, null, date, 0, new List <SeatManage.EnumType.BookingStatus> {
                SeatManage.EnumType.BookingStatus.Confinmed
            });                                                                                                                                                                                          //.GetBespeakList(this.LoginId, null, date, 0, bespeakStatus);
            if (readerBespeaklist.Count >= room.Setting.SeatBespeak.BespeakSeatCount)
            {
                FineUI.Alert.ShowInTop("您一天只能预约" + room.Setting.SeatBespeak.BespeakSeatCount + "次座位。");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断读者是否有座位
            if (!room.Setting.SeatBespeak.BespeatWithOnSeat)
            {
                SeatManage.ClassModel.EnterOutLogInfo eol = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(this.LoginId);
                if (eol != null && eol.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
                {
                    FineUI.Alert.ShowInTop("您已有座位,不能再预约座位");
                    btnBespeak.Enabled = false;
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            //判断操作次数
            if (SeatManage.Bll.EnterOutOperate.CheckReaderChooseSeatTimesByReadingRoom(this.LoginId, room.Setting.PosTimes, room.No))
            {
                FineUI.Alert.ShowInTop("您的选座/预约操作过于频繁,请稍后重试");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断座位是否被别人使用
            SeatManage.ClassModel.Seat seat = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            if (seat.SeatUsedState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                FineUI.Alert.ShowInTop("座位已经被别人选择,请预约其他座位");
                btnBespeak.Enabled = false;
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                return;
            }
            //判断座位是否被预约
            List <SeatManage.ClassModel.BespeakLogInfo> list = SeatManage.Bll.T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatNo, date);

            seatKeepTime.Value   = room.Setting.SeatBespeak.SeatKeepTime.ToString();
            this.lblEndDate.Text = string.Format("{0}至{1}", date.ToShortTimeString(), date.AddMinutes(room.Setting.SeatBespeak.SeatKeepTime).ToShortTimeString());
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].BsepeakState == SeatManage.EnumType.BookingStatus.Waiting)
                {
                    FineUI.Alert.ShowInTop("座位已经被别人预约,请预约其他座位");
                    btnBespeak.Enabled = false;
                    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            //判断是否已加入黑名单
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(this.LoginId);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (room.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (room.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == room.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
                else
                {
                    FineUI.Alert.ShowInTop("你已进入黑名单,不能在该阅览室预约座位");
                    PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                    return;
                }
            }
            if (room.Setting.LimitReaderEnter.Used)
            {
                SeatManage.ClassModel.ReaderInfo readerInfo = SeatManage.Bll.EnterOutOperate.GetReaderInfo(this.LoginId);
                string[] litype = room.Setting.LimitReaderEnter.ReaderTypes.Split(';');
                if (!room.Setting.LimitReaderEnter.CanEnter)
                {
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                            PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                            return;
                        }
                    }
                }
                else
                {
                    bool isintype = false;
                    foreach (string type in litype)
                    {
                        if (type == readerInfo.ReaderType)
                        {
                            isintype = true;
                            break;
                        }
                    }
                    if (!isintype)
                    {
                        FineUI.Alert.ShowInTop("你的读者类型不能在该阅览室预约座位");
                        PageContext.RegisterStartupScript(FineUI.ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                }
            }

            btnBespeak.Enabled = true;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["LoginId"] == null)
            {
                Response.Redirect("../Login.aspx");
            }
            if (!IsPostBack)
            {
                BindReadingRoomList(Session[CookiesManager.LoginID].ToString());
                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
            }

            cmd = Request.Form["subCmd"];
            if (cmd != null)
            {
                #region 座位相关操作
                switch (cmd)
                {
                case "search":    //查询座位
                    try
                    {
                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                    }
                    catch
                    {
                    }
                    break;

                case "ShortLeave":    //设置暂离
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != SeatManage.EnumType.EnterOutLogType.ShortLeave)
                            {
                                SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.ShortLeave;
                                enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置为暂离", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());
                                int newId = -1;
                                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == SeatManage.EnumType.HandleResult.Successed)
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者暂离成功');</script>");
                                    GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者暂离失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "ReleaseShortLeave":    //取消暂离
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState == SeatManage.EnumType.EnterOutLogType.ShortLeave)
                            {
                                SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.ComeBack;
                                enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备取消暂离,恢复为在座", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());
                                int newId = -1;
                                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == SeatManage.EnumType.HandleResult.Successed)
                                {
                                    List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatLogs = SeatManage.Bll.T_SM_SeatWaiting.GetWaitSeatList("", enterOutLog.EnterOutLogID, null, null, null);
                                    SeatManage.ClassModel.WaitSeatLogInfo        waitSeatLog  = null;
                                    if (waitSeatLogs.Count > 0)
                                    {
                                        waitSeatLog              = waitSeatLogs[0];
                                        waitSeatLog.NowState     = SeatManage.EnumType.LogStatus.Fail;
                                        waitSeatLog.OperateType  = SeatManage.EnumType.Operation.OtherReader;
                                        waitSeatLog.WaitingState = SeatManage.EnumType.EnterOutLogType.WaitingCancel;
                                        if (SeatManage.Bll.T_SM_SeatWaiting.UpdateWaitLog(waitSeatLog))
                                        {
                                            Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>");
                                            GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                        }
                                        else
                                        {
                                            Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功,取消读者等待失败');</script>");
                                            GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                        }
                                    }
                                    else
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('取消读者暂离成功');</script>");
                                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                    }
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('取消读者暂离失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "Release":    //释放座位
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
                            {
                                SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);

                                enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
                                enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                                enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());
                                int newId = -1;
                                SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                if (result == SeatManage.EnumType.HandleResult.Successed)
                                {
                                    SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
                                    if (roomInfo.Setting.IsRecordViolate)
                                    {
                                        if (roomInfo.Setting.BlackListSetting.Used)
                                        {
                                            if (roomInfo.Setting.BlackListSetting.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin])
                                            {
                                                SeatManage.ClassModel.ViolationRecordsLogInfo violationRecords = new SeatManage.ClassModel.ViolationRecordsLogInfo();
                                                violationRecords.CardNo        = enterOutLog.CardNo;
                                                violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                                                violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                                                violationRecords.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now.ToString();
                                                violationRecords.EnterFlag     = SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin;
                                                violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());
                                                violationRecords.BlacklistID   = "-1";
                                                SeatManage.Bll.T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                                            }
                                        }
                                        else if (rulesSet.BlacklistSet.Used && rulesSet.BlacklistSet.ViolateRoule[SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin])
                                        {
                                            SeatManage.ClassModel.ViolationRecordsLogInfo violationRecords = new SeatManage.ClassModel.ViolationRecordsLogInfo();
                                            violationRecords.CardNo        = enterOutLog.CardNo;
                                            violationRecords.SeatID        = enterOutLog.SeatNo.Substring(enterOutLog.SeatNo.Length - roomInfo.Setting.SeatNumAmount, roomInfo.Setting.SeatNumAmount);
                                            violationRecords.ReadingRoomID = enterOutLog.ReadingRoomNo;
                                            violationRecords.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now.ToString();
                                            violationRecords.EnterFlag     = SeatManage.EnumType.ViolationRecordsType.LeaveByAdmin;
                                            violationRecords.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());
                                            violationRecords.BlacklistID   = "-1";
                                            SeatManage.Bll.T_SM_ViolateDiscipline.AddViolationRecords(violationRecords);
                                        }
                                    }
                                    Page.RegisterStartupScript("", "<script>alert('设置读者离开成功');</script>");
                                    GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('设置读者离开失败');</script>");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "onTime":    //计时
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != SeatManage.EnumType.EnterOutLogType.ShortLeave)
                            {
                                DateTime markTime = SeatManage.Bll.ServiceDateTime.Now;
                                SeatManage.Bll.EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime);
                                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                            }
                        }
                    }
                    catch
                    {
                    }

                    break;

                case "offTime":    //取消计时
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && !string.IsNullOrEmpty(enterOutLog.MarkTime.ToString()) && enterOutLog.MarkTime.CompareTo(DateTime.Parse("1900/1/1")) != 0)
                            {
                                DateTime markTime = DateTime.Parse("1900-1-1");
                                SeatManage.Bll.EnterOutOperate.UpdateMarkTime(enterOutLog.EnterOutLogID, markTime);
                                GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                            }
                        }
                    }
                    catch
                    {
                    }

                    break;

                case "AddBlacklist":
                    try
                    {
                        string   seatStr = hidSeatNo.Value;
                        string[] noArr   = seatStr.Split(',');
                        string   seatNo  = "";
                        int      newId   = -1;
                        SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
                        for (int i = 0; i < noArr.Length; i++)
                        {
                            newId  = -1;
                            seatNo = noArr[i].Trim();
                            SeatManage.ClassModel.EnterOutLogInfo enterOutLog = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
                            if (enterOutLog != null && enterOutLog.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
                            {
                                SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(enterOutLog.ReadingRoomNo);
                                if (roomInfo != null && roomInfo.Setting.BlackListSetting.Used)
                                {
                                    SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                                    blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                                    blacklistModel.ReadingRoomID    = roomInfo.No;
                                    blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                                    blacklistModel.CardNo           = enterOutLog.CardNo;
                                    blacklistModel.OutBlacklistMode = roomInfo.Setting.BlackListSetting.LeaveBlacklist;
                                    if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                                    {
                                        blacklistModel.ReMark  = string.Format("管理员{0}通过手持设备{0}把读者加入黑名单,记录黑名单{1}天", Session["LoginID"].ToString(), roomInfo.Setting.BlackListSetting.LimitDays);
                                        blacklistModel.OutTime = blacklistModel.AddTime.AddDays(roomInfo.Setting.BlackListSetting.LimitDays);
                                    }
                                    else
                                    {
                                        blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"].ToString());
                                    }
                                    blacklistModel.ReadingRoomID = roomInfo.No;
                                    newId = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
                                }
                                else if (rulesSet.BlacklistSet.Used)
                                {
                                    SeatManage.ClassModel.BlackListInfo blacklistModel = new SeatManage.ClassModel.BlackListInfo();
                                    blacklistModel.AddTime          = SeatManage.Bll.ServiceDateTime.Now;
                                    blacklistModel.OutTime          = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays);
                                    blacklistModel.BlacklistState   = SeatManage.EnumType.LogStatus.Valid;
                                    blacklistModel.CardNo           = enterOutLog.CardNo;
                                    blacklistModel.OutBlacklistMode = rulesSet.BlacklistSet.LeaveBlacklist;
                                    if (blacklistModel.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.AutomaticMode)
                                    {
                                        blacklistModel.ReMark  = string.Format("管理员{0}通过手持设备把读者加入黑名单,记录黑名单{1}天", Session["LoginID"].ToString(), rulesSet.BlacklistSet.LimitDays);
                                        blacklistModel.OutTime = blacklistModel.AddTime.AddDays(rulesSet.BlacklistSet.LimitDays);
                                    }
                                    else
                                    {
                                        blacklistModel.ReMark = string.Format("管理员{0}通过手持设备把读者加入黑名单,手动离开黑名单", Session["LoginID"].ToString());
                                    }
                                    blacklistModel.ReadingRoomID = roomInfo.No;
                                    newId = SeatManage.Bll.T_SM_Blacklist.AddBlackList(blacklistModel);
                                }
                                else
                                {
                                    Page.RegisterStartupScript("", "<script>alert('对不起,此阅览室以及图书馆没有启用黑名单功能');</script>");
                                    return;
                                }
                                if (newId > 0)
                                {
                                    enterOutLog.EnterOutState = SeatManage.EnumType.EnterOutLogType.Leave;
                                    enterOutLog.Flag          = SeatManage.EnumType.Operation.Admin;
                                    enterOutLog.Remark        = string.Format("在{0},{1}号座位,被管理员{2},通过手持设备设置离开", roomInfo.Name, enterOutLog.ShortSeatNo, Session["LoginID"].ToString());

                                    SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLog, ref newId);
                                    if (result == SeatManage.EnumType.HandleResult.Successed)
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('设置读者黑名单成功');</script>");
                                        GetSeatList(selectReadingRomm.Items[selectReadingRomm.SelectedIndex].Value, selectSeatState.Items[selectSeatState.SelectedIndex].Value);
                                    }
                                    else
                                    {
                                        Page.RegisterStartupScript("", "<script>alert('设置读者黑名单失败');</script>");
                                    }
                                }
                                else
                                {
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    break;

                case "LoginOut":
                    HttpCookie aCookie;
                    string     cookieName;
                    int        limit = Request.Cookies.Count;
                    for (int i = 0; i < limit; i++)
                    {
                        cookieName      = Request.Cookies[i].Name;
                        aCookie         = new HttpCookie(cookieName);
                        aCookie.Expires = DateTime.Now.AddDays(-1);
                        Response.Cookies.Add(aCookie);
                    }
                    Response.Redirect("../Login.aspx");
                    break;
                }
                #endregion
            }
        }
Exemple #18
0
        public JsonResult SureAllotSeat(string seatNo, string seatShortNo, string used, string cardNo)
        {
            JsonResult ret = null;

            SeatManage.ClassModel.Seat            seat     = SeatManage.Bll.T_SM_Seat.GetSeatInfoBySeatNo(seatNo);
            SeatManage.ClassModel.ReadingRoomInfo roomInfo = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(seat.ReadingRoomNum);
            if (seat == null)
            {
                ret = Json(new { status = "no", message = "座位号错误,没有找到座位的相关信息" }, JsonRequestBehavior.AllowGet);
            }
            //判断当前座位上是否有读者在座。
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByseatNo = SeatManage.Bll.T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatNo);
            if (enterOutLogByseatNo != null && enterOutLogByseatNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                ret = Json(new { status = "no", message = "座位已经被其他读者选择" }, JsonRequestBehavior.AllowGet);
            }
            //判断读者是否有座位
            string strCardNo = cardNo;// txtCardNo1.Text;
            List <SeatManage.ClassModel.BlackListInfo> blacklistInfoByCardNo = SeatManage.Bll.T_SM_Blacklist.GetBlackListInfo(strCardNo);

            SeatManage.ClassModel.RegulationRulesSetting rulesSet = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            if (roomInfo.Setting.UsedBlacklistLimit && blacklistInfoByCardNo.Count > 0)
            {
                if (roomInfo.Setting.BlackListSetting.Used)
                {
                    bool isblack = false;
                    foreach (SeatManage.ClassModel.BlackListInfo blinfo in blacklistInfoByCardNo)
                    {
                        if (blinfo.ReadingRoomID == roomInfo.No)
                        {
                            isblack = true;
                            break;
                        }
                    }
                    if (isblack)
                    {
                        ret = Json(new { status = "no", message = "该读者已进入黑名单,不能在该阅览室为其分配座位" }, JsonRequestBehavior.AllowGet);
                    }
                }
                else
                {
                    ret = Json(new { status = "no", message = "该读者已进入黑名单,不能在该阅览室为其分配座位" }, JsonRequestBehavior.AllowGet);
                }
            }
            SeatManage.ClassModel.EnterOutLogInfo enterOutLogByCardNo = SeatManage.Bll.T_SM_EnterOutLog.GetEnterOutLogInfoByCardNo(strCardNo);
            if (enterOutLogByCardNo != null && enterOutLogByCardNo.EnterOutState != SeatManage.EnumType.EnterOutLogType.Leave)
            {
                ret = Json(new { status = "no", message = string.Format("读者已经在{0},{1}号座位就做", enterOutLogByCardNo.ReadingRoomName, enterOutLogByCardNo.ShortSeatNo) }, JsonRequestBehavior.AllowGet);
            }

            SeatManage.ClassModel.EnterOutLogInfo enterOutLogModel = new SeatManage.ClassModel.EnterOutLogInfo();
            enterOutLogModel.CardNo        = strCardNo;
            enterOutLogModel.EnterOutLogNo = SeatManage.SeatManageComm.SeatComm.RndNum();
            enterOutLogModel.EnterOutState = SeatManage.EnumType.EnterOutLogType.SelectSeat;
            enterOutLogModel.EnterOutTime  = SeatManage.Bll.ServiceDateTime.Now;
            enterOutLogModel.EnterOutType  = SeatManage.EnumType.LogStatus.Valid;
            enterOutLogModel.Flag          = SeatManage.EnumType.Operation.Admin;
            enterOutLogModel.ReadingRoomNo = seat.ReadingRoomNum;
            enterOutLogModel.Remark        = string.Format("在后台管理网站被管理员{0},分配{1},{2}座位", this.LoginId, roomInfo.Name, seat.SeatNo.Substring(seat.SeatNo.Length - roomInfo.Setting.SeatNumAmount));
            enterOutLogModel.SeatNo        = seatNo;
            int newId = -1;

            SeatManage.EnumType.HandleResult result = SeatManage.Bll.EnterOutOperate.AddEnterOutLog(enterOutLogModel, ref newId);
            if (result == SeatManage.EnumType.HandleResult.Successed)
            {
                ret = Json(new { status = "yes", message = "分配座位成功" }, JsonRequestBehavior.AllowGet);
            }
            else
            {
                ret = Json(new { status = "no", message = "分配座位失败" }, JsonRequestBehavior.AllowGet);
            }

            return(ret);
        }
Exemple #19
0
        /// <summary>
        /// 获取实时记录
        /// 预约记录
        ///选座记录
        ///等待记录
        ///黑名单记录
        /// </summary>
        /// <param name="cardNum"></param>
        /// <param name="getItemsParameter"></param>
        /// <returns></returns>
        public string GetReaderActualTimeRecord(string cardNum, string getItemsParameter)
        {
            try
            {
                if (string.IsNullOrEmpty(cardNum) || string.IsNullOrEmpty(getItemsParameter))
                {
                    JM_HandleResult result = new JM_HandleResult();
                    result.Result = false;
                    result.Msg    = "输入的数据数据不能为空!";
                    return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result));
                }
                JsonModel.JM_ActualTimeRecordParam param   = SeatManageComm.JSONSerializer.Deserialize <JsonModel.JM_ActualTimeRecordParam>(getItemsParameter);
                JsonModel.JM_ActualTimeRecords     records = new JsonModel.JM_ActualTimeRecords();
                if (param.GetEnterOutLog)//获取进出记录
                {
                    SeatManage.ClassModel.EnterOutLogInfo enterOutLog = seatDataService.GetEnterOutLogInfoByCardNo(cardNum);
                    JsonModel.JM_EnterOutLog jm_enterOutLog           = null;
                    if (enterOutLog != null)
                    {
                        jm_enterOutLog = new JsonModel.JM_EnterOutLog();
                        jm_enterOutLog.EnterOutTime  = enterOutLog.EnterOutTime.ToString("yyyy-MM-dd HH:mm:ss");
                        jm_enterOutLog.EnterOutState = enterOutLog.EnterOutState.ToString();
                        jm_enterOutLog.Id            = enterOutLog.EnterOutLogID;
                        jm_enterOutLog.SeatId        = enterOutLog.SeatNo;
                        jm_enterOutLog.SeatNum       = enterOutLog.ShortSeatNo;
                        jm_enterOutLog.RoomName      = enterOutLog.ReadingRoomName;
                        jm_enterOutLog.RoomNum       = enterOutLog.ReadingRoomNo;
                        SeatManage.ClassModel.ReadingRoomInfo room = seatDataService.GetReadingRoomInfo(new List <string>()
                        {
                            enterOutLog.ReadingRoomNo
                        })[0];
                        if (enterOutLog.EnterOutState == EnterOutLogType.ShortLeave)
                        {
                            String seatInfo       = enterOutLog.Remark;
                            double saveTimeLength = 0;
                            if (enterOutLog.Flag == Operation.Admin)
                            {
                                if (room.Setting.AdminShortLeave.IsUsed)
                                {
                                    saveTimeLength = room.Setting.AdminShortLeave.HoldTimeLength;
                                }
                                else
                                {
                                    saveTimeLength = SeatManage.ClassModel.ReadingRoomSetting.GetSeatHoldTime(room.Setting.SeatHoldTime, enterOutLog.EnterOutTime);
                                }
                            }
                            else
                            {
                                saveTimeLength = SeatManage.ClassModel.ReadingRoomSetting.GetSeatHoldTime(room.Setting.SeatHoldTime, enterOutLog.EnterOutTime);
                            }
                            string saveTime = enterOutLog.EnterOutTime.AddMinutes(saveTimeLength).ToShortTimeString();
                            jm_enterOutLog.Remark = string.Format("座位将为您保留至{2}。", enterOutLog.ReadingRoomName, enterOutLog.ShortSeatNo, saveTime);
                        }
                        else
                        {
                            switch (enterOutLog.EnterOutState)
                            {
                            case EnterOutLogType.BookingConfirmation:
                            case EnterOutLogType.SelectSeat:
                            case EnterOutLogType.ContinuedTime:
                            case EnterOutLogType.ComeBack:
                            case EnterOutLogType.ReselectSeat:
                            case EnterOutLogType.WaitingSuccess:
                                List <SeatManage.ClassModel.BespeakLogInfo> bespeaklist = seatDataService.GetBespeakLogInfoBySeatNo(enterOutLog.SeatNo, DateTime.Now);
                                DateTime dt = new DateTime();
                                if (bespeaklist.Count > 0)
                                {
                                    dt = bespeaklist[0].BsepeakTime.AddMinutes(-double.Parse(room.Setting.SeatBespeak.ConfirmTime.BeginTime));
                                }
                                else if (room.Setting.SeatUsedTimeLimit.Used)
                                {
                                    if (room.Setting.SeatUsedTimeLimit.Mode == "Free")
                                    {
                                        dt = enterOutLog.EnterOutTime.AddMinutes(room.Setting.SeatUsedTimeLimit.UsedTimeLength);
                                        if (dt > room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime))
                                        {
                                            dt = room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime);
                                        }
                                    }
                                    else
                                    {
                                        for (int i = 0; i < room.Setting.SeatUsedTimeLimit.FixedTimes.Count; i++)
                                        {
                                            if (enterOutLog.EnterOutTime < room.Setting.SeatUsedTimeLimit.FixedTimes[i])
                                            {
                                                if (room.Setting.SeatUsedTimeLimit.IsCanContinuedTime && enterOutLog.EnterOutTime > room.Setting.SeatUsedTimeLimit.FixedTimes[i].AddMinutes(-room.Setting.SeatUsedTimeLimit.CanDelayTime))
                                                {
                                                    if (i + 1 < room.Setting.SeatUsedTimeLimit.FixedTimes.Count)
                                                    {
                                                        dt = room.Setting.SeatUsedTimeLimit.FixedTimes[i + 1];
                                                    }
                                                    else
                                                    {
                                                        dt = room.Setting.RoomOpenSet.NowCloseTime(enterOutLog.EnterOutTime);
                                                    }
                                                }
                                                else
                                                {
                                                    dt = room.Setting.SeatUsedTimeLimit.FixedTimes[i];
                                                }
                                                break;
                                            }
                                        }
                                    }
                                }
                                //TODO:如果是续时模式,提示续时时间。
                                jm_enterOutLog.Remark = string.Format("您的座位可以使用到{0}。", dt.ToShortTimeString());
                                break;
                            }
                        }
                    }
                    records.EnterOutLog = jm_enterOutLog;
                }
                if (param.GetBespeakLog)
                {
                    JsonModel.JM_BespeakLog jm_bespeakLog            = null;
                    SeatManage.ClassModel.BespeakLogInfo bespeakLogs = seatDataService.GetSingleBespeakLogForWait(cardNum);
                    if (bespeakLogs != null)
                    {
                        jm_bespeakLog          = new JM_BespeakLog();
                        jm_bespeakLog.DateTime = bespeakLogs.BsepeakTime.ToString("yyyy-MM-dd HH:mm:ss");
                        jm_bespeakLog.Id       = bespeakLogs.BsepeaklogID;
                        if (bespeakLogs.BsepeakState == EnumType.BookingStatus.Waiting)
                        {
                            jm_bespeakLog.IsValid = true;
                        }
                        jm_bespeakLog.RoomName = bespeakLogs.ReadingRoomName;
                        jm_bespeakLog.RoomNum  = bespeakLogs.ReadingRoomNo;
                        jm_bespeakLog.SeatId   = bespeakLogs.SeatNo;
                        jm_bespeakLog.SeatNum  = bespeakLogs.ShortSeatNum;
                        jm_bespeakLog.Remark   = bespeakLogs.Remark;
                        records.BespeakLog     = jm_bespeakLog;
                    }
                }
                if (param.GetWaitLog)
                {
                    List <EnterOutLogType> logType = new List <EnterOutLogType>();
                    logType.Add(EnterOutLogType.Waiting);
                    List <SeatManage.ClassModel.WaitSeatLogInfo> waitSeatlogs = seatDataService.GetWaitLogList(cardNum, null, null, null, logType);
                    if (waitSeatlogs.Count > 0)
                    {
                        EnterOutLogInfo waitEnterOutLog = seatDataService.GetEnterOutLogInfoById(waitSeatlogs[0].EnterOutLogID);
                        if (waitEnterOutLog != null)
                        {
                            JsonModel.JM_WaitSeatLog jm_waitSeatLog = new JM_WaitSeatLog();
                            jm_waitSeatLog.CardNo        = waitSeatlogs[0].CardNo;
                            jm_waitSeatLog.CardNoB       = waitSeatlogs[0].CardNoB;
                            jm_waitSeatLog.RoomName      = waitEnterOutLog.ReadingRoomName;
                            jm_waitSeatLog.RoomNum       = waitEnterOutLog.ReadingRoomNo;
                            jm_waitSeatLog.SeatId        = waitEnterOutLog.SeatNo;
                            jm_waitSeatLog.SeatNum       = waitEnterOutLog.ShortSeatNo;
                            jm_waitSeatLog.SeatWaitTime  = waitSeatlogs[0].SeatWaitTime.ToString("yyyy-MM-dd HH:mm:ss");
                            jm_waitSeatLog.SeatWaitingID = waitSeatlogs[0].SeatWaitingID;
                            records.WaitSeatLog          = jm_waitSeatLog;
                        }
                    }
                }
                if (param.GetBlackList)
                {
                    List <BlackListInfo> blacklist = seatDataService.GetBlacklistInfo(cardNum);
                    if (blacklist.Count > 0)
                    {
                        JM_Blacklist jm_blacklist = new JM_Blacklist();
                        jm_blacklist.AddTime = blacklist[0].AddTime.ToString("yyyy-MM-dd HH:mm:ss");
                        jm_blacklist.CardNo  = blacklist[0].CardNo;
                        jm_blacklist.ID      = blacklist[0].ID;
                        switch (blacklist[0].BlacklistState)
                        {
                        case LogStatus.Valid:
                            jm_blacklist.IsValid = true;
                            break;

                        default:
                            jm_blacklist.IsValid = false;
                            break;
                        }
                        jm_blacklist.OutBlacklistMode = blacklist[0].OutBlacklistMode.ToString();
                        jm_blacklist.OutTime          = blacklist[0].OutTime.ToString("yyyy-MM-dd HH:mm:ss");
                        jm_blacklist.ReMark           = blacklist[0].ReMark;
                        records.BlacklistLog          = jm_blacklist;
                    }
                }

                return(SeatManageComm.JSONSerializer.Serialize(records));
            }
            catch (Exception ex)
            {
                SeatManage.SeatManageComm.WriteLog.Write("选择座位遇到异常:" + ex.Message);
                JM_HandleResult result = new JM_HandleResult();
                result.Result = false;
                result.Msg    = "执行遇到异常!";
                return(SeatManage.SeatManageComm.JSONSerializer.Serialize(result));
            }
        }
Exemple #20
0
        public JsonResult SaveNewBlack()
        {
            JsonResult result = null;

            SeatManage.ClassModel.RegulationRulesSetting regulationRulesSetting = SeatManage.Bll.T_SM_SystemSet.GetRegulationRulesSetting();
            string CardNo        = Request.Params["txtNum"].Trim();
            string Remark        = Request.Params["txtRemark"].Trim();       //txtRemark.Text;
            string ReadingRoomNo = Request.Params["selectRooms"].ToString(); //ddlroom.SelectedValue;

            SeatManage.ClassModel.ReadingRoomInfo room = SeatManage.Bll.T_SM_ReadingRoom.GetSingleRoomInfo(ReadingRoomNo);
            SeatManage.ClassModel.BlackListInfo   bli  = new SeatManage.ClassModel.BlackListInfo();
            bli.CardNo  = CardNo;
            bli.AddTime = SeatManage.Bll.ServiceDateTime.Now;
            if (Request.Params["ddlleaveMode"] == "0") //(ddlleaveMode.SelectedValue == "0")
            {
                if (DateTime.Parse(Request.Params["dpEndDate"]) < bli.AddTime.Date)
                {
                    result = Json(new { status = "no", message = "请输入不小于今天的日期" }, JsonRequestBehavior.AllowGet);
                    //FineUI.Alert.Show("请输入不小于今天的日期!");
                    return(result);
                }
                bli.OutTime = DateTime.Parse(Request.Params["dpEndDate"] + " 23:59:59");
            }
            bli.OutBlacklistMode = (SeatManage.EnumType.LeaveBlacklistMode) int.Parse(Request.Params["ddlleaveMode"]);
            if (bli.OutBlacklistMode == SeatManage.EnumType.LeaveBlacklistMode.ManuallyMode)
            {
                bli.ReMark = string.Format("被管理员{0}加入手动加入黑名单,管理员手动移除黑名单,备注:{1}", this.LoginId, Remark);
            }
            else
            {
                bli.ReMark = string.Format("被管理员{0}加入手动加入黑名单,记录黑名单{1}天,备注:{2}", this.LoginId, (bli.OutTime - bli.AddTime).Days, Remark);
            }
            bli.ReadingRoomID = ReadingRoomNo;
            int  blackId   = 0;
            bool cbIsAllRR = Request.Params["cbIsAllRR"] == null ? false : true;

            if (cbIsAllRR)
            {
                int roomCount = 0;
                List <SeatManage.ClassModel.ReadingRoomInfo> roomlist = SeatManage.Bll.ClientConfigOperate.GetReadingRooms(null);
                foreach (SeatManage.ClassModel.ReadingRoomInfo roominfo in roomlist)
                {
                    if (roominfo.Setting.BlackListSetting.Used)
                    {
                        bli.ReadingRoomID = roominfo.No;
                        if (!(SeatManage.Bll.T_SM_Blacklist.AddBlackList(bli) > 0))
                        {
                            result = Json(new { status = "no", message = "添加失败" }, JsonRequestBehavior.AllowGet);
                            //  FineUI.Alert.Show("添加失败!");
                            // return;
                        }
                        else
                        {
                            roomCount++;
                        }
                    }
                }
                if (roomCount == 0)
                {
                    blackId = SeatManage.Bll.T_SM_Blacklist.AddBlackList(bli);
                }
                result = Json(new { status = "yes", message = "添加成功" }, JsonRequestBehavior.AllowGet);
                //PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                //FineUI.Alert.Show("添加成功!");
            }
            else
            {
                blackId = SeatManage.Bll.T_SM_Blacklist.AddBlackList(bli);
                if (blackId > 0)
                {
                    result = Json(new { status = "yes", message = "添加成功" }, JsonRequestBehavior.AllowGet);
                    // PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                    //  FineUI.Alert.Show("添加成功!");
                }
                else
                {
                    result = Json(new { status = "no", message = "添加失败" }, JsonRequestBehavior.AllowGet);
                    //FineUI.Alert.Show("添加失败!");
                }
            }

            return(result);
        }