private void PreLoadFTData()
        {
            var hotelId = UserContext.CurrentUser.HotelId;

            if (!_ft_isLoaded)
            {
                _ft_isLoaded           = true;
                _ft_rooms              = RoomBll.GetListBy(hotelId);
                _ft_roomregs           = RoomRegBll.GetListByHotelId(hotelId);
                _ft_members            = MemberBll.GetList(hotelId);
                _ft_membersType        = MemberTypeBll.GetList(hotelId);
                _ft_RoomRegGuestInfoCN = RoomRegGuestInfoCNBll.GetListByHotelId(hotelId);
                _ft_RoomRegGuestInfoEN = RoomRegGuestInfoENBll.GetListByHotelId(hotelId);
                _ft_MaterialLease      = MaterialLeaseBll.GetListByHotel(hotelId);
                _ft_RoomType           = RoomTypeBll.GetListByHotelId(hotelId);
                _ft_RoomYdRecord       = RoomYdRecordBll.GetListByHotel(hotelId);
                _ft_GlobalFeeSet       = GlobalFeeSetBll.GetByHotelId(hotelId);
                _ft_MaintainRoom       = MaintainRoomBll.GetListByHotelId(hotelId);
                _ft_RoomSelfuse        = RoomSelfBll.GetListByHotelId(hotelId);
                _ft_RoomYD             = RoomYdBll.GetListByHotel(hotelId);
                _ft_RoomSet            = RoomSetBll.GetBy(hotelId);
                if (_ft_RoomSet == null)
                {
                    _ft_RoomSet = RoomSetBll.GetBy(0);
                }
            }
        }
Пример #2
0
        // GET: LCFeeSet
        public ActionResult Index()
        {
            var info = GlobalFeeSetBll.GetByHotelId(UserContext.CurrentUser.HotelId);

            if (info == null)
            {
                info = new GlobalFeeSet()
                {
                    HotelId = UserContext.CurrentUser.HotelId
                }
            }
            ;
            return(View(info));
        }
Пример #3
0
        public JsonResult Edit(GlobalFeeSet model)
        {
            var apiResult = new APIResult();

            try
            {
                GlobalFeeSetBll.AddOrUpdateLC(model, UserContext.CurrentUser.HotelId);
            }
            catch (Exception ex)
            {
                apiResult.Ret = -1;
                apiResult.Msg = ex.Message;
                if (!(ex is OperationExceptionFacade))
                {
                    LogFactory.GetLogger().Log(LogLevel.Error, ex);
                }
            }

            return(Json(apiResult));
        }
        /// <summary>
        /// 续住时获取预离时间
        /// </summary>
        /// <returns></returns>
        public string GetYlTimeForXz(long roomRegId, int xzDays)
        {
            var roomReg = RoomRegBll.GetById(roomRegId);

            if (roomReg == null)
            {
                return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "房间登记数据不存在" }));
            }
            if (roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.全天房 && roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.长包房 &&
                roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.免费房)
            {
                return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "只有【全天房、长包房、免费房】才可续住" }));
            }
            var globalFeeSet = GlobalFeeSetBll.GetByHotelId(UserContext.CurrentUser.HotelId);
            var now          = TypeConvert.IntToDateTime(roomReg.RegTime);

            if (globalFeeSet == null)
            {
                return(JsonConvert.SerializeObject(new { Ret = 0, YlTime = "" }));
            }
            var yltime = now;

            //如果是6点,那么当天6点之后开的房间就是第二天中午退房,0点到6点开房就是当天中午退房
            if (now.Hour >= 0 && now.Hour <= globalFeeSet.QTAfterPointToNextDay)
            {
                //当天中午退房
                yltime = now.Date.AddDays(xzDays - 1).AddHours(globalFeeSet.QTExitPoint);
            }
            else
            {
                //第二天中午退房
                yltime = now.Date.AddDays(1 + (xzDays - 1)).AddHours(globalFeeSet.QTExitPoint);
            }

            var yulidate = TypeConvert.IntToDateTime(roomReg.LeaveTime);

            yltime = yulidate.Date.AddDays(xzDays).AddHours(globalFeeSet.QTExitPoint);

            return(JsonConvert.SerializeObject(new { Ret = 0, YlTime = yltime.ToString("yyyy-MM-dd HH:mm:ss") }));
        }
        /// <summary>
        /// 凌晨房检测,返回凌晨价
        /// </summary>
        /// <param name="roomId"></param>
        /// <returns></returns>
        public string LCRoomCheck(long roomId)
        {
            try
            {
                var hotelId  = UserContext.CurrentUser.HotelId;
                var model    = RoomBll.GetById(roomId);
                var roomType = RoomTypeBll.GetById(model.RoomTypeId);
                var setting  = GlobalFeeSetBll.GetByHotelId(hotelId);

                var now = DateTime.Now;

                if (now.Hour >= setting.LCStartFeePoint && now.Hour <= setting.LCEndFeePoint)
                {
                    return(JsonConvert.SerializeObject(new { IsLC = true, RoomPrice = roomType.MorningPrice }));
                }
                return(JsonConvert.SerializeObject(new { IsLC = false }));
            }
            catch
            {
                return(JsonConvert.SerializeObject(new { IsLC = false }));
            }
        }
        public string GetRuzhuDaysForXz(long roomRegId, string leaveTime)
        {
            var roomReg = RoomRegBll.GetById(roomRegId);

            if (roomReg == null)
            {
                return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "房间登记数据不存在" }));
            }
            if (roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.全天房 && roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.长包房 &&
                roomReg.KaiFangFangShi != (int)KaifangFangshiEnum.免费房)
            {
                return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "只有【全天房、长包房、免费房】才可续住" }));
            }
            var globalFeeSet = GlobalFeeSetBll.GetByHotelId(UserContext.CurrentUser.HotelId);

            if (globalFeeSet == null)
            {
                return(JsonConvert.SerializeObject(new { Ret = 0, YlTime = "" }));
            }

            var days = (DateTime.Parse(leaveTime).Date - TypeConvert.IntToDateTime(roomReg.LeaveTime).Date).TotalDays;

            return(JsonConvert.SerializeObject(new { Ret = 0, RuzhuDays = Convert.ToInt32(days) }));
        }
        /// <summary>
        /// 根据开房方式获取预离时间,同时绑定钟点房方案id或时段房方案id
        /// 20190828同时绑定价格
        /// </summary>
        /// <returns></returns>
        public string GetYlTimeByKffs(long roomRegId, int type, int rzDays, long fnid = 0, long roomId = 0)
        {
            var roomReg = RoomRegBll.GetById(roomRegId);
            var now     = DateTime.Now;

            if (roomReg != null)
            {
                now = TypeConvert.IntToDateTime(roomReg.RegTime);
            }

            var room     = RoomBll.GetById(roomId);
            var roomType = RoomTypeBll.GetById(room.RoomTypeId);

            if (type == (int)KaifangFangshiEnum.全天房 || type == (int)KaifangFangshiEnum.长包房 || type == (int)KaifangFangshiEnum.免费房)
            {
                var globalFeeSet = GlobalFeeSetBll.GetByHotelId(UserContext.CurrentUser.HotelId);
                if (globalFeeSet == null)
                {
                    return(JsonConvert.SerializeObject(new { Ret = 0, CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss"), YlTime = "" }));
                }

                var yltime = now;
                //如果是6点,那么当天6点之后开的房间就是第二天中午退房,0点到6点开房就是当天中午退房
                if (now.Hour >= 0 && now.Hour <= globalFeeSet.QTAfterPointToNextDay)
                {
                    //当天中午退房
                    yltime = now.Date.AddDays(rzDays - 1).AddHours(globalFeeSet.QTExitPoint);
                }
                else
                {
                    //第二天中午退房
                    yltime = now.Date.AddDays(1 + (rzDays - 1)).AddHours(globalFeeSet.QTExitPoint);
                }

                if (type != (int)KaifangFangshiEnum.免费房)
                {
                    return(JsonConvert.SerializeObject(new {
                        Ret = 0,
                        CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss"),
                        YlTime = yltime.ToString("yyyy-MM-dd HH:mm:ss"),
                        RoomPrice = roomType.Price
                    }));
                }

                return(JsonConvert.SerializeObject(new { Ret = 0, CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss"), YlTime = yltime.ToString("yyyy-MM-dd HH:mm:ss") }));
            }
            else if (type == (int)KaifangFangshiEnum.钟点房)
            {
                //钟点房
                var hourRoomList = HourRoomBll.GetList(UserContext.CurrentUser.HotelId);
                if (hourRoomList == null || hourRoomList.Count == 0)
                {
                    return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "无钟点房方案" }));
                }
                var hourRoom = hourRoomList[0];//默认选择第一个
                if (fnid != 0 && hourRoomList.Any(a => a.Id == fnid))
                {
                    hourRoom = hourRoomList.FirstOrDefault(a => a.Id == fnid);
                }
                var yltime = now.AddMinutes(hourRoom.Minute).ToString("yyyy-MM-dd HH:mm:ss");


                return(JsonConvert.SerializeObject(new { Ret = 0, CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss"), YlTime = yltime, Id = hourRoom.Id, RoomPrice = hourRoom.Price }));
            }
            else if (type == (int)KaifangFangshiEnum.时段房)
            {
                //时段房
                var periodRoomList = PeriodRoomBll.GetList(UserContext.CurrentUser.HotelId);
                if (periodRoomList == null || periodRoomList.Count == 0)
                {
                    return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "无时段房方案" }));
                }

                if (fnid != 0 && periodRoomList.Any(a => a.Id == fnid))
                {
                    var periodRoom  = periodRoomList.FirstOrDefault(a => a.Id == fnid);
                    var CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss");
                    var YlTime      = now.ToShortDateString() + $" {periodRoom.EndPoint}:00:00";
                    return(JsonConvert.SerializeObject(new { Ret = 0, CurrentTime = CurrentTime, YlTime = YlTime, Id = periodRoom.Id, RoomPrice = periodRoom.Price }));
                }
                else
                {
                    foreach (var periodRoom in periodRoomList)
                    {
                        if (now.Hour >= periodRoom.StartPoint && now.Hour <= periodRoom.EndPoint)
                        {
                            var CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss");
                            var YlTime      = now.ToShortDateString() + $" {periodRoom.EndPoint}:00:00";
                            return(JsonConvert.SerializeObject(new { Ret = 0, CurrentTime = CurrentTime, YlTime = YlTime, Id = periodRoom.Id, RoomPrice = periodRoom.Price }));
                        }
                    }
                }

                return(JsonConvert.SerializeObject(new { Ret = -1, Msg = "无匹配的时段房方案,请手动选择" }));
            }
            return("");
        }
        // GET: RoomReg
        public ActionResult Index(long roomId)
        {
            var user    = UserContext.CurrentUser;
            var hotelId = user.HotelId;

            var room = RoomBll.GetById(roomId);

            var globalFeeSet = GlobalFeeSetBll.GetByHotelId(hotelId);

            ViewBag.HotelId      = hotelId;
            ViewBag.RoomId       = roomId;
            ViewBag.GlobalFeeSet = globalFeeSet;
            var      now      = DateTime.Now;
            DateTime yuLiTime = now;

            //如果是6点,那么当天6点之后开的房间就是第二天中午退房,0点到6点开房就是当天中午退房
            if (now.Hour >= 0 && now.Hour <= globalFeeSet.QTAfterPointToNextDay)
            {
                //当天中午退房
                yuLiTime = now.Date.AddHours(globalFeeSet.QTExitPoint);
            }
            else
            {
                //第二天中午退房
                yuLiTime = now.Date.AddDays(1).AddHours(globalFeeSet.QTExitPoint);
            }

            //var yltime = "";
            //if (now.Hour > globalFeeSet.QTAfterPointToNextDay)
            //{
            //    //第二天退房
            //    yltime = now.AddDays(1).ToShortDateString() + $" {globalFeeSet.QTExitPoint}:00:00";
            //}
            //else
            //{
            //    //当天退房
            //    yltime = now.ToShortDateString() + $" {globalFeeSet.QTExitPoint}:00:00";
            //}
            ViewBag.CurrentTime = now.ToString("yyyy-MM-dd HH:mm:ss");
            ViewBag.yltime      = yuLiTime.ToString("yyyy-MM-dd HH:mm:ss");
            var my = UserBll.GetById(user.Id);

            ViewBag.MyKdzk = my == null ? 10 : my.CanSale;
            //获取登记单
            var roomReg = new Model.RoomReg();

            if (room != null)
            {
                if (room.FjState == FjStateEnum.干净房)
                {
                    roomReg = new Model.RoomReg();
                }
                else
                {
                    roomReg = RoomRegBll.GetById(room.RoomRegId);
                    if (roomReg == null)
                    {
                        roomReg = new Model.RoomReg();
                    }
                }
                if ((int)roomReg.FjState >= (int)FjStateEnum.脏房)
                {
                    // return Content("房间状态不允许开房登记");
                }
                //if(roomReg.FjState ==4)
                //    roomReg = new Model.RoomReg();
            }
            ViewBag.PanelHeight = 300;
            if (Session["PanelHeight"] != null)
            {
                ViewBag.PanelHeight = Convert.ToInt32(Session["PanelHeight"]);
            }
            if (room == null)
            {
                room = new Room();
                ViewBag.IsEmptyRoom = true;
            }
            else
            {
                ViewBag.IsEmptyRoom = false;
            }
            ViewBag.Room = room;
            return(View(roomReg));
        }