/// <summary> /// 选座座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectSeat(SeatUC_ViewModel seatVM) { SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo); if (lockseat != SeatLockState.Locked) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return(false); } ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = _ReadingRoomNo; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed); if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Successed) { ClientObject.EnterOutLogData.EnterOutlog.SeatNo = seatVM.LongSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo; ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; //操作为选择座位 ClientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}手动选择,{1},{2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatVM.ShortSeatNo); ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; return(true); } else { T_SM_Seat.UnLockSeat(seatVM.LongSeatNo); //确认窗口点击取消或者自动关闭,则解锁。 return(false); } }
/// <summary> /// 等待座位 /// </summary> /// <returns></returns> public bool WaitSeat(SeatUC_ViewModel seatVM) { WaitSeatLogInfo lastWaitInfo = T_SM_SeatWaiting.GetListWaitLogByCardNo(ClientObject.EnterOutLogData.EnterOutlog.CardNo, ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo); ReadingRoomInfo roomInfo = ClientObject.EnterOutLogData.Student.AtReadingRoom; if (!string.IsNullOrEmpty(ClientObject.EnterOutLogData.EnterOutlog.SeatNo)) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.WaitSeatWithSeat); return(false); } if (lastWaitInfo != null && lastWaitInfo.SeatWaitTime.AddMinutes(roomInfo.Setting.NoManagement.OperatingInterval).CompareTo(ServiceDateTime.Now) >= 0) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.WaitSeatFrequent); return(false); } SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo); if (lockseat != SeatLockState.Locked) //座位成功加锁 { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return(false); } ClientObject.EnterOutLogData.WaitSeatLogModel = new WaitSeatLogInfo() { SeatNo = seatVM.ShortSeatNo }; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SetShortWarning); ClientObject.EnterOutLogData.WaitSeatLogModel = null; if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Successed) { //初始化等待记录 记录ID需要待执行之后添加。 WaitSeatLogInfo waitInfo = new WaitSeatLogInfo(); waitInfo.CardNo = ClientObject.EnterOutLogData.EnterOutlog.CardNo; waitInfo.NowState = LogStatus.Valid; waitInfo.OperateType = Operation.Reader; waitInfo.WaitingState = EnterOutLogType.Waiting; EnterOutLogInfo seatUsingEnterOutInfo = T_SM_EnterOutLog.GetUsingEnterOutLogBySeatNo(seatVM.LongSeatNo); seatUsingEnterOutInfo.EnterOutState = EnterOutLogType.ShortLeave; seatUsingEnterOutInfo.EnterOutType = LogStatus.Valid; seatUsingEnterOutInfo.Flag = Operation.OtherReader; seatUsingEnterOutInfo.TerminalNum = ClientObject.ClientSetting.ClientNo; seatUsingEnterOutInfo.Remark = string.Format("在{0} {1}号座位,被读者{2}在终端{3}设置为暂离并等待该座位", seatUsingEnterOutInfo.ReadingRoomName, seatUsingEnterOutInfo.ShortSeatNo, waitInfo.CardNo, ClientObject.ClientSetting.ClientNo); ClientObject.EnterOutLogData.EnterOutlog = seatUsingEnterOutInfo; //要等待读者的暂离记录 ClientObject.EnterOutLogData.WaitSeatLogModel = waitInfo; //等待记录 ClientObject.EnterOutLogData.FlowControl = ClientOperation.WaitSeat; return(true); } else { T_SM_Seat.UnLockSeat(seatVM.LongSeatNo);//确认窗口点击取消或者自动关闭,则解锁。 return(false); } }
/// <summary> /// 选择预约的座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectBookingSeat(SeatUC_ViewModel seatVM) { DateTime datetimeNow = ServiceDateTime.Now; List <BespeakLogInfo> bespeakLogList = T_SM_SeatBespeak.GetBespeakLogInfoBySeatNo(seatVM.LongSeatNo, datetimeNow.Date); if (bespeakLogList.Count > 0) { if (bespeakLogList[0].BsepeakTime.AddMinutes(-double.Parse(ClientObject.EnterOutLogData.Student.AtReadingRoom.Setting.SeatBespeak.ConfirmTime.BeginTime)) <= datetimeNow) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.IsBookingSeat); return(false); } ClientObject.EnterOutLogData.BespeakLogInfo = bespeakLogList[0]; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectBookingSeatWarn); if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Failed) { ClientObject.EnterOutLogData.BespeakLogInfo = null; return(false); } } SeatLockState lockseat = T_SM_Seat.LockSeat(seatVM.LongSeatNo); if (lockseat != SeatLockState.Locked) //座位成功加锁 { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return(false); } ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = _ReadingRoomName; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = _ReadingRoomNo; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed); if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule == HandleResult.Failed) { T_SM_Seat.UnLockSeat(seatVM.LongSeatNo);//确认窗口点击取消或者自动关闭,则解锁。 return(false); } ClientObject.EnterOutLogData.EnterOutlog.SeatNo = seatVM.LongSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatVM.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo; ClientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}手动选择,{1},{2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatVM.ShortSeatNo); ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; //操作为选择座位 return(true); }
/// <summary> /// 选座座位 /// </summary> /// <param name="seatBtn"></param> /// <returns></returns> public bool SelectSeat(UsuallySeatUC_ViewModel seatBtn) { ReadingRoomInfo roomInfo = T_SM_ReadingRoom.GetSingleRoomInfo(seatBtn.ReadingRoomNo); ClientObject.EnterOutLogData.Student.AtReadingRoom = roomInfo;//给读者所在的阅览室赋值。 //验证读者身份是否允许选择该阅览室。 if (!SelectSeatProven.ProvenReaderType(ClientObject.EnterOutLogData.Student, roomInfo.Setting)) { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.ReaderTypeInconformity); return(false); } //验证读者黑名单,选座次数。 if (SelectSeatProven.ProvenReaderState(ClientObject.EnterOutLogData.Student, roomInfo, ClientObject.RegulationRulesSet.BlacklistSet, ClientObject.ClientSetting.DeviceSetting)) { //ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = ""; return(false); } SeatLockState lockseat = T_SM_Seat.LockSeat(seatBtn.SeatNo); if (lockseat != SeatLockState.Locked) //座位成功加锁 { PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SeatLocking); return(false); } ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = seatBtn.ReadingRoomName; PopupWindowsObject.GetInstance().Window.ShowMessage(TipType.SelectSeatConfinmed); if (PopupWindowsObject.GetInstance().Window.ViewModel.OperateResule != HandleResult.Successed) { T_SM_Seat.UnLockSeat(seatBtn.SeatNo); //确认窗口点击取消或者自动关闭,则解锁。 return(false); } ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomName = seatBtn.ReadingRoomName; ClientObject.EnterOutLogData.EnterOutlog.ReadingRoomNo = seatBtn.ReadingRoomNo; ClientObject.EnterOutLogData.EnterOutlog.SeatNo = seatBtn.SeatNo; ClientObject.EnterOutLogData.EnterOutlog.ShortSeatNo = seatBtn.ShortSeatNo; ClientObject.EnterOutLogData.EnterOutlog.TerminalNum = ClientObject.ClientSetting.ClientNo; ClientObject.EnterOutLogData.FlowControl = ClientOperation.SelectSeat; //操作为选择座位 ClientObject.EnterOutLogData.EnterOutlog.Remark = string.Format("在终端{0}选择常坐座位,{1},{2}号座位", ClientObject.ClientSetting.ClientNo, ClientObject.EnterOutLogData.Student.AtReadingRoom.Name, seatBtn.ShortSeatNo); return(true); }