예제 #1
0
        public ActionResult EditBulkReservation(TempBulkReservationMasterVM model)
        {
            try
            {
                #region Check Room No Available.

                if (this.CheckRoomNoExistInTempBulkReservationMaster(model.Id, model.RoomNo) == false)
                {
                    return(Json(new
                    {
                        IsSuccess = false,
                        errorMessage = string.Format("Room No : {0} already exist. Please select another room no.", model.RoomNo)
                    }, JsonRequestBehavior.AllowGet));
                }

                #endregion


                string reservationId = string.Empty;

                model.UpdatedBy = LogInManager.LoggedInUserId;
                model.IsActive  = true;

                string ETAText = model.ETAText;
                if (!string.IsNullOrWhiteSpace(ETAText))
                {
                    string   todayDate = DateTime.Now.ToString("dd/MM/yyyy");
                    string   date      = (todayDate + " " + ETAText);
                    DateTime time      = Convert.ToDateTime(date);

                    model.ETA = time.TimeOfDay;
                }


                double totalBalance = 0, totalPrice = 0;

                totalPrice = Utility.Utility.CalculateRoomRentCharges_V2(model.NoOfNight, (model.Rate.HasValue ? model.Rate.Value : 0), model.NoOfChildren, model.DiscountAmount, model.DiscountPercentage, (model.DiscountPercentage.HasValue ? true : false));

                totalBalance = totalPrice;

                //model.GuestBalance = totalBalance;
                model.TotalPrice = totalPrice;

                //Encrypt Credit Card#
                model.CreditCardNo = Utility.Utility.Encrypt(model.CreditCardNo, Utility.Utility.EncryptionKey);

                reservationId = reservationRepository.UpdateTempBulkReservationMaster(model);

                return(Json(new
                {
                    IsSuccess = true,
                    errorMessage = "Bulk Reservation updated successfully."
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                Utility.Utility.LogError(e, "EditBulkReservation");
                return(Json(new { IsSuccess = false, errorMessage = e.Message }));
            }
        }
예제 #2
0
        public ActionResult EditBulkReservation(Guid id)
        {
            TempBulkReservationMasterVM model = new TempBulkReservationMasterVM();
            var reservation = reservationRepository.GetTempBulkReservationMasterById(id, LogInManager.LoggedInUserId);

            if (reservation != null)
            {
                model = reservation;

                if (model.ArrivalDate.HasValue)
                {
                    if (model.ArrivalDate.Value.DayOfWeek == DayOfWeek.Friday || model.ArrivalDate.Value.DayOfWeek == DayOfWeek.Saturday)
                    {
                        model.IsWeekEndPrice = true;
                    }
                }

                #region Room Type
                //Get Room Type Details.
                if (model.RoomTypeId.HasValue)
                {
                    var roomType = roomTypeRepository.GetRoomTypeById(model.RoomTypeId.Value).FirstOrDefault();

                    if (roomType != null)
                    {
                        model.RoomTypeCode = roomType.RoomTypeCode;
                    }
                }
                #endregion

                var roomTypeList = new SelectList(roomTypeRepository.GetRoomType(string.Empty), "Id", "RoomTypeCode").ToList();
                var rateTypeList = new SelectList(rateTypeRepository.GetRateType(string.Empty)
                                                  .Select(
                                                      m => new SelectListItem()
                {
                    Value = m.Id.ToString(),
                    Text  = m.RateTypeCode
                }
                                                      ), "Value", "Text").ToList();
                var reservationTypeList = new SelectList(reservationTypeRepository.GetReservationTypes(), "Id", "Name").ToList();

                var marketList = new SelectList(
                    marketRepository.GetMarkets()
                    .Select(
                        m => new SelectListItem()
                {
                    Value = m.Id.ToString(),
                    Text  = !string.IsNullOrWhiteSpace(m.Description) ? m.Description : m.Name
                }
                        ), "Value", "Text").ToList();


                var reservationSourceList = new SelectList(
                    reservationSourceRepository.GetReservationSources()
                    .Select(
                        m => new SelectListItem()
                {
                    Value = m.Id.ToString(),
                    Text  = !string.IsNullOrWhiteSpace(m.Description) ? m.Description : m.Name
                }
                        ), "Value", "Text").ToList();


                var paymentMethodList = paymentMethodRepository.GetPaymentMethods();

                var roomFeaturesList = roomFeatureRepository.GetRoomFeatures();


                var rtcList = new SelectList(rtcRepository.GetRTC(), "Id", "Code").ToList();

                var roomList = new List <SelectListItem>();
                if (model.RoomTypeId.HasValue)
                {
                    roomList = new SelectList(roomRepository.GetRoomDetailsForBulkReservation(model.RoomTypeId.Value, model.Id), "Id", "RoomNo").ToList();
                }


                ViewBag.RateTypeList        = rateTypeList;
                ViewBag.RoomTypeList        = roomTypeList;
                ViewBag.ReservationTypeList = reservationTypeList;

                ViewBag.MarketList            = marketList;
                ViewBag.ReservationSourceList = reservationSourceList;
                ViewBag.PaymentMethodList     = paymentMethodList;
                ViewBag.RoomFeaturesList      = roomFeaturesList;
                ViewBag.RtcList  = rtcList;
                ViewBag.RoomList = roomList;

                double?dblWeekEndPrice = model.Rate;
                if (model.RoomTypeId.HasValue && model.RateCodeId.HasValue)
                {
                    var weekEndPrice = rateRepository.GetWeekEndPrice(model.RoomTypeId.Value, model.RateCodeId.Value).FirstOrDefault();

                    if (weekEndPrice != null)
                    {
                        dblWeekEndPrice = weekEndPrice.Amount;
                    }
                }

                ViewBag.WeekEndPrice = dblWeekEndPrice;

                //Decrypt Credit Card#
                model.CreditCardNo = Utility.Utility.Decrypt(model.CreditCardNo, Utility.Utility.EncryptionKey);

                //Original Credit Card#
                ViewBag.OriginalCreditCardNo = model.CreditCardNo;

                //Mask Credit Card#
                model.CreditCardNo = Utility.Utility.MaskCreditCardNo(model.CreditCardNo);

                return(View(model));
            }

            return(RedirectToAction("BulkReservation"));
        }