Пример #1
0
        // [OutputCache(Duration = 10, VaryByParam = "*")] // Cached for 10 second
        public ActionResult Index(PropSearchRequestModel model)
        {
            try
            {
                eWebSiteSearchPage obj = new eWebSiteSearchPage();
                obj.HotelFacilityItems = BL_WebSiteSearchPage.GetAllHotelFacilities("");
                obj.RoomFacilityItems  = BL_WebSiteSearchPage.GetAllRoomFacilities("");
                model.sRequestType     = model.sRequestType ?? "buy";
                obj.sRequestType       = model.sRequestType;
                string currencySymbol = string.Empty;

                var hotelList = GetHotelSearchData(model, out currencySymbol);
                obj.PropertySearchedList = hotelList;
                obj.TotalPropertySearchedList.AddRange(obj.PropertySearchedList);
                obj.sCurrencySymbol       = currencySymbol;
                obj.dExchangeRate         = 1;
                Session["PropSearchList"] = obj;

                if (CurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                    if (objExchange.dRate.HasValue)
                    {
                        obj.dExchangeRate = objExchange.dRate.Value;
                    }
                }
                TempData.Keep();
                return(View(obj));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public ActionResult BiddingInfo(string bidSearchData)
        {
            Decimal?ExchangeRate = 1;
            var     obj          = new eBiddingSearch();

            ViewBag.HeaderBarData = "Congratulations! We have found hotels matching your bid";

            if (Session[bidSearchData] != null)
            {
                //    TempData.Keep();
                obj = Session[bidSearchData] as eBiddingSearch;
            }

            obj.lstLocalities = BL_Bidding.GetAllLocalitiesName(obj.sLocalityData, obj.sLocalityType);

            DateTime checkin  = DateTime.Parse(obj.sCheckIn);
            DateTime checkOut = DateTime.Parse(obj.sCheckOut);

            obj.sCheckInDay  = String.Format("{0:dddd MMM d yyyy}", checkin);
            obj.sCheckOutDay = String.Format("{0:dddd MMM d yyyy}", checkOut);

            obj.iNights = Convert.ToInt32((checkOut - checkin).TotalDays);
            var data = GetRoomsCount(obj.sJsonRoomData);

            obj.iRooms     = data.room;
            obj.iChildrens = data.child;
            obj.iAdults    = data.adult;

            string CurrencyCode = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR";

            if (CurrencyCode != "INR")
            {
                etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                if (objExchange.dRate != 0)
                {
                    ExchangeRate = objExchange.dRate;
                }
            }

            obj.dTaxes      = obj.Tax; //taxes provided are full n final.
            obj.dTotalPrice = obj.dBidPrice * obj.iRooms * obj.iNights;
            obj.dGrandTotal = obj.dTotalPrice + obj.dTaxes;

            return(View(obj));
        }
Пример #3
0
        public string Delete(string from, string to)
        {
            object result    = null;
            string strReturn = string.Empty;

            try
            {
                int i = BL_ExchangeRate.DeleteRecord(from.Substring(0, 3), to.Substring(0, 3));
                if (i == 1)
                {
                    result = new { st = 1, msg = "Deleted successfully." };
                }
                else
                {
                    result = new { st = 0, msg = "Kindly try after some time." };
                }
            }
            catch (Exception)
            {
                result = new { st = 0, msg = "Kindly try after some time." };
            }
            strReturn = OneFineRateAppUtil.clsUtils.ConvertToJson(result);
            return(strReturn);
        }
Пример #4
0
        public ActionResult Upload(FormCollection formCollection)
        {
            string msg = "";

            if (Request != null)
            {
                try
                {
                    var ERList = new List <ExchangeRate>();
                    int user   = ((OneFineRateBLL.BL_Login.UserDetails)(Session["UserDetails"])).iUserId;
                    HttpPostedFileBase file = Request.Files["UploadedFile"];
                    if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
                    {
                        string fileName        = file.FileName;
                        string fileContentType = file.ContentType;
                        byte[] fileBytes       = new byte[file.ContentLength];
                        var    data            = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength));
                        using (var package = new ExcelPackage(file.InputStream))
                        {
                            var currentSheet = package.Workbook.Worksheets;
                            var workSheet    = currentSheet.First();
                            var noOfCol      = workSheet.Dimension.End.Column;
                            var noOfRow      = workSheet.Dimension.End.Row;
                            if (workSheet.Cells[1, 1].Value.ToString() == "From" && workSheet.Cells[1, 2].Value.ToString() == "To" && workSheet.Cells[1, 3].Value.ToString() == "Rate")
                            {
                                for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                                {
                                    var ER = new ExchangeRate();
                                    ER.sCurrencyCodeFrom = workSheet.Cells[rowIterator, 1].Value.ToString();
                                    ER.sCurrencyCodeTo   = workSheet.Cells[rowIterator, 2].Value.ToString();
                                    ER.dRate             = Convert.ToDouble(workSheet.Cells[rowIterator, 3].Value.ToString());
                                    ERList.Add(ER);
                                }
                            }
                            else
                            {
                                msg = "Incorrect excel file!";
                                TempData["Data"] = msg;
                                return(RedirectToAction("index", "Exchange"));
                            }
                        }
                    }
                    if (ERList.Count > 0)
                    {
                        int a = BL_ExchangeRate.UpdateRecord(ERList, user);
                        if (a == 1)
                        {
                            msg = "Exchange rates uploaded successfully.";
                        }
                        else
                        {
                            msg = "Kindly try after some time.";
                        }
                    }
                    else
                    {
                        msg = "No records provided";
                    }
                }
                catch (Exception)
                {
                    msg = "Incorrect excel file!";
                }
            }
            TempData["Data"] = msg;
            return(RedirectToAction("index", "Exchange"));
        }
Пример #5
0
        //Save booking data in Database
        private int SaveBookingAndGetBookingId(PropDetailsM obj)
        {
            int result = 0;

            try
            {
                Decimal?ExchangeRate     = 1;
                Decimal?OriginalTotalAmt = 0;
                int?    Days             = 0;
                etblOriginalBookingPrice                    objOrgBook          = new etblOriginalBookingPrice();
                etblBookingNegotiationTx                    objNego             = new etblBookingNegotiationTx();
                etblBookingTrakerTx                         objTrck             = new etblBookingTrakerTx();
                List <etblBookingGuestMap>                  lst                 = new List <etblBookingGuestMap>();
                List <etblBookingDetailsTx>                 lstBookDetails      = new List <etblBookingDetailsTx>();
                List <etblBookingCancellationPolicyMap>     lstCancelPolicy     = new List <etblBookingCancellationPolicyMap>();
                List <etblBookedDayWiseTaxAmountDetails>    lstDayTaxes         = new List <etblBookedDayWiseTaxAmountDetails>();
                List <etblBookedDayWiseTaxAmountDetailsAll> lstDayTaxesDateWise = new List <etblBookedDayWiseTaxAmountDetailsAll>();

                obj.objBooking.iPropId     = obj.iPropId;
                obj.objBooking.iCustomerId = obj.iUserId;
                obj.objBooking.iGuestId    = obj.iGuestId;
                if (obj.iUserId == 0)
                {
                    obj.objBooking.iCustomerId = null;
                }
                if (obj.iGuestId == 0)
                {
                    obj.objBooking.iGuestId = null;
                }
                obj.objBooking.dtCheckIn           = obj.dtCheckIn;
                obj.objBooking.dtChekOut           = obj.dtCheckOut;
                obj.objBooking.dtReservationDate   = DateTime.Now;
                obj.objBooking.sTitleOFR           = obj.sUserTitle;
                obj.objBooking.sFirstNameOFR       = obj.sUserFirstName;
                obj.objBooking.sLastNameOFR        = obj.sUserLastName;
                obj.objBooking.sEmailOFR           = obj.sUserEmail;
                obj.objBooking.sMobileOFR          = obj.sUserMobileNo;
                obj.objBooking.sCountryPhoneCode   = obj.sCountryPhoneCode;
                obj.objBooking.dtActionDate        = DateTime.Now;
                obj.objBooking.BookingStatus       = "PP";
                obj.objBooking.PaymentStatus       = "P";
                obj.objBooking.sExtra3             = "Redeem";
                obj.objBooking.sExtra4             = obj.sTotalPoints;
                obj.objBooking.sCurrencyCode       = obj.Currency;
                obj.objBooking.dServiceCharge      = obj.TaxCharges.dOFRServiceCharge;
                obj.objBooking.dGSTOnServiceCharge = obj.TaxCharges.TaxOnServiceCharge;
                obj.objBooking.dGSTValue           = obj.TaxCharges.dGstValue;
                obj.objBooking.dGSTServiceType     = obj.TaxCharges.cGstValueType;


                if (obj.objBooking.sCurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", obj.objBooking.sCurrencyCode);
                    if (objExchange.dRate != 0)
                    {
                        ExchangeRate = 1 / objExchange.dRate;
                    }
                }

                Days = Convert.ToInt32((Convert.ToDateTime(obj.objBooking.dtChekOut) - Convert.ToDateTime(obj.objBooking.dtCheckIn)).TotalDays);

                obj.objBooking.dTotalAmount = obj.dSummaryRoomRate * ExchangeRate;


                decimal OFRServiceTax = obj.objBooking.dServiceCharge + obj.objBooking.dGSTOnServiceCharge;

                if (!String.IsNullOrEmpty(obj.objBooking.sExtra2))
                {
                    obj.objBooking.sExtra2 = (Convert.ToDecimal(obj.objBooking.sExtra2) * Convert.ToDecimal(ExchangeRate)).ToString();
                }
                obj.objBooking.dTaxes               = obj.dSummaryTaxes * ExchangeRate;
                obj.objBooking.dTaxesForHotel       = obj.dSummaryTaxes * ExchangeRate;
                obj.objBooking.dTotalExtraBedAmount = obj.dSummaryExtraBedCharges * ExchangeRate;

                obj.objBooking.dTaxesOriginal = obj.dSummaryTaxes * ExchangeRate;

                string  TimeZone = Session["TimeZone"] != null ? Session["TimeZone"].ToString() : "+5:30";
                decimal zone     = Convert.ToDecimal(TimeZone.Replace(":", ".").Replace("+", ""));
                obj.objBooking.iCountryOffset = zone;


                if (obj.objBooking.PromoCodeApplied == true)
                {
                    obj.objBooking.dDiscountedBidPrice = obj.objBooking.PromoCodeValue * ExchangeRate;
                }

                decimal Rate = obj.dCommissionRate;
                if (Rate != 0)
                {
                    decimal Comm = (obj.dSummaryRoomRate + obj.dSummaryExtraBedCharges) * Rate / 100;
                    obj.objBooking.dTotalComm         = Comm * ExchangeRate;
                    obj.objBooking.dTotalCommOriginal = Comm * ExchangeRate;
                }

                obj.objBooking.cBookingType = "R";

                objTrck.BookingStatus = "PP";
                objTrck.dtActionDate  = DateTime.Now;

                for (int i = 0; i < obj.lstetblRooms.Count; i++)
                {
                    for (int j = 0; j < obj.lstetblRooms[i].lstRatePlan.Count; j++)
                    {
                        for (int lstOcc = 0; lstOcc < obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy.Count; lstOcc++)
                        {
                            if (obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms != 0)
                            {
                                for (int k = 0; k < obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms; k++)
                                {
                                    int     extrabed        = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds;
                                    decimal extrabedcharges = Convert.ToDecimal(obj.lstetblRooms[i].ExtraBedCharges) * Convert.ToDecimal(ExchangeRate);
                                    decimal total           = extrabedcharges * extrabed;

                                    decimal?dPriceRP   = Convert.ToDecimal(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPriceRP) * Convert.ToDecimal(ExchangeRate);
                                    decimal?dBasePrice = Convert.ToDecimal(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dBasePrice) * Convert.ToDecimal(ExchangeRate);
                                    if (dPriceRP > dBasePrice)
                                    {
                                        OriginalTotalAmt += dPriceRP * Days;
                                    }
                                    else
                                    {
                                        OriginalTotalAmt += dBasePrice * Days;
                                    }

                                    lstBookDetails.Add(new etblBookingDetailsTx()
                                    {
                                        iRoomId          = Convert.ToString(obj.lstetblRooms[i].iRoomId),
                                        iRPId            = Convert.ToString(obj.lstetblRooms[i].lstRatePlan[j].RPID),
                                        iRooms           = 1,
                                        sRoomName        = obj.lstetblRooms[i].sRoomName,
                                        sRPName          = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].RatePlan,
                                        iOccupancy       = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy),
                                        dRoomRate        = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPrice * ExchangeRate,
                                        dExtraBedRate    = total,
                                        sAmenityRatePlan = obj.lstetblRooms[i].lstRatePlan[j].RateInclusion,
                                        iAdults          = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iAdults),
                                        iChildren        = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iChildrens),
                                        iExtraBeds       = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds),
                                        sChildrenAge     = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ChildrenAge,
                                        dTaxes           = (obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxes * ExchangeRate) / Days,
                                        dTaxesForHotel   = ((obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxes) * ExchangeRate) / Days,
                                        dtActionDate     = DateTime.Now,
                                        iPromoType       = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iPromoType)
                                    });
                                }

                                var lstTaxes = obj.lstTaxesDateWise_OfferReview.Where(u => u.RPID == obj.lstetblRooms[i].lstRatePlan[j].RPID && u.RoomID == obj.lstetblRooms[i].iRoomId && u.iOccupancy == obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy).ToList();

                                for (int tax = 0; tax < lstTaxes.Count; tax++)
                                {
                                    lstDayTaxes.Add(new etblBookedDayWiseTaxAmountDetails()
                                    {
                                        dtStayDay  = Convert.ToDateTime(lstTaxes[tax].dtDate),
                                        dAmount    = Convert.ToDecimal(lstTaxes[tax].dBasePrice) * ExchangeRate,
                                        dTaxPerc   = Convert.ToDecimal(lstTaxes[tax].TaxPer),
                                        dTaxVal    = Convert.ToDecimal(lstTaxes[tax].TaxVal) * ExchangeRate,
                                        RoomID     = Convert.ToInt32(lstTaxes[tax].RoomID),
                                        RPID       = Convert.ToInt32(lstTaxes[tax].RPID),
                                        iOccupancy = Convert.ToInt32(lstTaxes[tax].iOccupancy),
                                        bIsPromo   = Convert.ToBoolean(lstTaxes[tax].bIsPromo)
                                    });
                                }
                                var lstTaxesDateWise = obj.lstTaxesDateWiseAll_OfferReview.Where(u => u.RPID == obj.lstetblRooms[i].lstRatePlan[j].RPID && u.iRoomId == obj.lstetblRooms[i].iRoomId && u.iOccupancy == obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy).ToList();

                                for (int tax = 0; tax < lstTaxesDateWise.Count; tax++)
                                {
                                    lstDayTaxesDateWise.Add(new etblBookedDayWiseTaxAmountDetailsAll()
                                    {
                                        dtStayDay  = Convert.ToDateTime(lstTaxesDateWise[tax].dtStay),
                                        dAmount    = Convert.ToDecimal(lstTaxesDateWise[tax].dPrice) * ExchangeRate,
                                        dTaxPerc   = Convert.ToDecimal(lstTaxesDateWise[tax].MaxTaxPer),
                                        dTaxVal    = Convert.ToDecimal(lstTaxesDateWise[tax].MaxTaxVal) * ExchangeRate,
                                        RoomID     = Convert.ToInt32(lstTaxesDateWise[tax].iRoomId),
                                        RPID       = Convert.ToInt32(lstTaxesDateWise[tax].RPID),
                                        iOccupancy = Convert.ToInt32(lstTaxesDateWise[tax].iOccupancy),
                                        iTaxId     = Convert.ToInt32(lstTaxesDateWise[tax].TaxId)
                                    });
                                }

                                for (int lstCancellation = 0; lstCancellation < obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy.Count; lstCancellation++)
                                {
                                    DateTime StarDate = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].ValidFrom;
                                    DateTime EndDate  = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].ValidTo;
                                    var      res      = new List <string>();
                                    for (var date = StarDate; date <= EndDate; date = date.AddDays(1))
                                    {
                                        res.Add(date.ToString());
                                    }
                                    foreach (var ddate in res)
                                    {
                                        lstCancelPolicy.Add(new etblBookingCancellationPolicyMap()
                                        {
                                            sPolicyName  = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].PolicyName,
                                            dtDate       = Convert.ToDateTime(ddate),
                                            dtActionDate = DateTime.Now,
                                            iRPId        = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].iRPId.ToString()
                                        });
                                    }
                                }
                            }
                        }
                    }
                }

                objOrgBook.dOriginalTotalAmount = OriginalTotalAmt;

                result = BL_Booking.AddBooking(obj, objNego, objTrck, lstBookDetails, lst, lstCancelPolicy, lstDayTaxes, objOrgBook, lstDayTaxesDateWise);
            }
            catch (Exception)
            {
                result = 0;
            }
            return(result);
        }
Пример #6
0
        public ActionResult Review(string propId, int roomId, string checkIn, string checkOut, int ratePlanId, string sRoomData, bool isPromo, string uniqueSessionId)
        {
            try
            {
                ViewBag.HeaderBarData = "Preview";

                var decodedPropId = Convert.ToInt32(clsUtils.Decode(propId));
                var customerId    = User.Identity.GetUserId <long>();

                DateTime dtCheckIn  = DateTime.ParseExact(checkIn, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                DateTime dtCheckOut = DateTime.ParseExact(checkOut, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                #region RoomOccupancySearch

                DataTable dtRoomOccupancySearch = new DataTable();
                dtRoomOccupancySearch.Columns.AddRange(new DataColumn[3]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("iAdults", typeof(short)),
                    new DataColumn("children", typeof(short))
                });

                DataTable dtChildrenAgeSearch = new DataTable();
                dtChildrenAgeSearch.Columns.AddRange(new DataColumn[2]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("Age", typeof(short))
                });

                var roomDataResult = new List <RoomData>();

                if (!string.IsNullOrEmpty(sRoomData))
                {
                    roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData);

                    foreach (var room in roomDataResult)
                    {
                        DataRow roomOccupancy = dtRoomOccupancySearch.NewRow();
                        roomOccupancy["ID"]       = room.room;
                        roomOccupancy["iAdults"]  = room.adult;
                        roomOccupancy["children"] = room.child;
                        dtRoomOccupancySearch.Rows.Add(roomOccupancy);

                        foreach (var child in room.ChildAge)
                        {
                            DataRow dtChildrenAge = dtChildrenAgeSearch.NewRow();
                            dtChildrenAge["ID"] = room.room;
                            if (child.Age == "<1")
                            {
                                dtChildrenAge["Age"] = "0";
                                child.Age            = "0";
                            }
                            else
                            {
                                dtChildrenAge["Age"] = child.Age;
                            }
                            dtChildrenAge["Age"] = child.Age == "<1" ? "0" : child.Age;

                            dtChildrenAgeSearch.Rows.Add(dtChildrenAge);
                        }
                    }
                }

                #endregion

                #region Hotel Details

                var propDetails = BL_PropDetails.GetRoomReviewDetailsToRedeemPoints(decodedPropId,
                                                                                    customerId,
                                                                                    dtCheckIn.ToString("yyyy-MM-dd"),
                                                                                    dtCheckOut.ToString("yyyy-MM-dd"),
                                                                                    CurrencyCode,
                                                                                    roomId,
                                                                                    ratePlanId,
                                                                                    isPromo,
                                                                                    dtRoomOccupancySearch,
                                                                                    dtChildrenAgeSearch);

                if (propDetails != null)
                {
                    if (User.Identity.IsAuthenticated)
                    {
                        var user = BL_WebsiteUser.GetSingleRecordById(User.Identity.GetUserId <long>());
                        propDetails.sUserTitle        = user.Title;
                        propDetails.sUserFirstName    = user.FirstName;
                        propDetails.sUserLastName     = user.LastName;
                        propDetails.sUserEmail        = user.Email;
                        propDetails.sUserMobileNo     = user.PhoneNumber;
                        propDetails.sCountryPhoneCode = user.sCountryPhoneCode;
                        propDetails.iStateId          = user.StateId.HasValue ? user.StateId.Value : 0;
                        propDetails.iUserId           = user.Id;
                    }

                    ViewBag.dExchangeRate = 1;

                    if (CurrencyCode != "INR")
                    {
                        etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                        if (objExchange.dRate.HasValue)
                        {
                            ViewBag.dExchangeRate = 1 / objExchange.dRate.Value;
                        }
                    }

                    //Used to Remember when Modify Search
                    ViewBag.sPropId     = propId;
                    ViewBag.scheckIn    = checkIn;
                    ViewBag.scheckOut   = checkOut;
                    ViewBag.sRoomData   = sRoomData;
                    ViewBag.iRoomId     = roomId;
                    ViewBag.iRatePlanId = ratePlanId;
                    ViewBag.IsPromo     = isPromo;

                    propDetails.iPropId    = decodedPropId;
                    propDetails.Symbol     = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode);
                    propDetails.sRoomData  = sRoomData;
                    propDetails.dtCheckIn  = dtCheckIn;
                    propDetails.dtCheckOut = dtCheckOut;
                    propDetails.iTotalDays = (dtCheckOut - dtCheckIn).TotalDays.ToString();
                    propDetails.Currency   = CurrencyCode;

                    int     RatePlan = 0, iNoRoom = 0, iDays = 0, iCount = 0;
                    decimal RoomPrice    = 0;
                    decimal DTotal       = 0;
                    decimal ExtraCharges = 0;
                    decimal totalTax     = 0;
                    int     ExtraBed     = 0;
                    int     totalPoints  = 0;

                    for (int i = 0; i < propDetails.lstetblRooms.Count; i++)
                    {
                        for (int j = 0; j < propDetails.lstetblRooms[i].lstRatePlan.Count; j++)
                        {
                            for (int lstOcc = 0; lstOcc < propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy.Count; lstOcc++)
                            {
                                if (propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms != 0)
                                {
                                    for (int k = 0; k < propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms; k++)
                                    {
                                        ExtraBed     = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds;
                                        ExtraCharges = propDetails.lstetblRooms[i].ExtraBedCharges;
                                        totalTax    += propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxesForHotel;
                                        RatePlan     = propDetails.lstetblRooms[i].lstRatePlan[j].RPID;
                                        RoomPrice    = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPrice;
                                        isPromo      = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].blsPromo;
                                        totalPoints += propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iPoints;
                                        iNoRoom      = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms;
                                        iDays        = Convert.ToInt32(propDetails.iTotalDays);
                                        iCount       = iNoRoom * iDays;

                                        RoomPrice    = RoomPrice * (iDays);
                                        ExtraCharges = (ExtraBed * ExtraCharges) * iDays;
                                        DTotal      += RoomPrice + ExtraCharges;
                                        iNoRoom++;
                                    }
                                }
                            }
                        }
                    }

                    propDetails.dSummaryRoomRate = RoomPrice;
                    propDetails.sSummaryRoomRate = clsUtils.ConvertNumberToCommaSeprated(RoomPrice);

                    propDetails.dSummaryExtraBedCharges = ExtraCharges;
                    propDetails.sSummaryExtraBedCharges = clsUtils.ConvertNumberToCommaSeprated(ExtraCharges);

                    propDetails.dSummaryTaxes = totalTax;
                    propDetails.sSummaryTaxes = clsUtils.ConvertNumberToCommaSeprated(totalTax);

                    propDetails.dSummaryTotal = DTotal;
                    propDetails.sSummaryTotal = clsUtils.ConvertNumberToCommaSeprated(DTotal);

                    propDetails.sSummaryTaxes_display = clsUtils.ConvertNumberToCommaSeprated(totalTax + propDetails.TaxCharges.TotalServiceCharge);
                    propDetails.sTotalPoints          = clsUtils.ConvertNumberToCommaSeprated(totalPoints * Convert.ToInt32(propDetails.iTotalDays));

                    propDetails.TempDataPropDetails = uniqueSessionId;

                    Session[uniqueSessionId] = propDetails;
                }

                #endregion Hotel Details

                return(View(propDetails));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #7
0
        public ActionResult PayNow(eBiddingSearch obj)
        {
            try
            {
                Decimal?      ExchangeRate = 1;
                etblBookingTx bookobj      = new etblBookingTx();

                if (User.Identity.IsAuthenticated)
                {
                    var user = BL_WebsiteUser.GetSingleRecordById(User.Identity.GetUserId <long>());
                    bookobj.iCustomerId = user.Id;
                    bookobj.iGuestId    = 0;
                }
                else
                {
                    var stronglObject          = Session[obj.BidSearchData] as eBiddingSearch;
                    GuestUserDetails objDetail = new GuestUserDetails();
                    objDetail.Title       = obj.sUserTitle == "1" ? "Mr." : obj.sUserTitle == "2" ? "Ms." : "";
                    objDetail.FirstName   = obj.sUserFirstName;
                    objDetail.LastName    = obj.sUserLastName;
                    objDetail.Email       = obj.sUserEmail;
                    objDetail.PhoneNumber = obj.sUserMobileNo;
                    objDetail.iStateId    = stronglObject.iStateId;
                    int i = BL_Bidding.AddGuestDetailsRecord(objDetail);
                    if (i > 0)
                    {
                        bookobj.iGuestId = i;
                    }
                    else
                    {
                        return(View("BiddingInfo", obj));
                    }
                }

                string CurrencyCode = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR";

                if (CurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                    if (objExchange.dRate != 0)
                    {
                        ExchangeRate = 1 / objExchange.dRate;
                    }
                }

                bookobj.dtCheckIn         = Convert.ToDateTime(obj.sCheckIn);;
                bookobj.dtChekOut         = Convert.ToDateTime(obj.sCheckOut);
                bookobj.dtReservationDate = DateTime.Now;
                bookobj.cBookingType      = "B";
                bookobj.sTitleOFR         = obj.sUserTitle;
                bookobj.sFirstNameOFR     = obj.sUserFirstName;
                bookobj.sLastNameOFR      = obj.sUserLastName;
                bookobj.sEmailOFR         = obj.sUserEmail;
                bookobj.sMobileOFR        = obj.sUserMobileNo;
                bookobj.dtActionDate      = DateTime.Now;
                bookobj.BookingStatus     = "PP";
                bookobj.PaymentStatus     = "P";
                bookobj.dBidAmount        = obj.dBidPrice * ExchangeRate;
                bookobj.dTotalAmount      = obj.dTotalPrice * ExchangeRate;
                bookobj.dTaxes            = obj.dTaxes * ExchangeRate;
                bookobj.dTaxesForHotel    = obj.dTaxes * ExchangeRate;
                bookobj.sCurrencyCode     = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR";
                bookobj.iBidStarCategory  = Convert.ToInt16(obj.sStarRating);
                bookobj.sBidType          = obj.sLocalityType;
                bookobj.sIDs                = obj.sLocalityData.TrimEnd(',');
                bookobj.dServiceCharge      = Convert.ToDecimal(obj.sOFRServiceCharge);
                bookobj.dGSTOnServiceCharge = Convert.ToDecimal(obj.sTaxOnServiceCharge_Val);
                bookobj.dGSTServiceType     = obj.cGstValueType;
                bookobj.dGSTValue           = Convert.ToString(obj.dGSTValue);
                string  TimeZone = Session["TimeZone"] != null ? Session["TimeZone"].ToString() : "+5:30";
                decimal zone     = Convert.ToDecimal(TimeZone.Replace(":", ".").Replace("+", ""));
                bookobj.iCountryOffset = zone;

                #region FetchRoomData and bind in datatables

                var roomDataResult = new List <RoomData>();
                if (obj.sJsonRoomData != null)
                {
                    roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(obj.sJsonRoomData);
                }

                List <etblBIDRoomAdultsTx> lstBid = new List <etblBIDRoomAdultsTx>();

                foreach (var room in roomDataResult)
                {
                    etblBIDRoomAdultsTx RoomObj = new etblBIDRoomAdultsTx();
                    RoomObj.iRoomNo   = Convert.ToInt16(room.room);
                    RoomObj.iAdults   = Convert.ToInt16(room.adult);
                    RoomObj.iChildren = Convert.ToInt16(room.child);

                    System.Text.StringBuilder str = new System.Text.StringBuilder();
                    foreach (var child in room.ChildAge)
                    {
                        str.Append(child.Age);
                        str.Append(",");
                    }

                    string ChildAges = str.ToString().TrimEnd(',');
                    RoomObj.sChildAge = ChildAges;
                    lstBid.Add(RoomObj);
                }

                #endregion

                etblBookingTrakerTx trkobj = new etblBookingTrakerTx();
                trkobj.BookingStatus = "PP";
                trkobj.dtActionDate  = DateTime.Now;

                int j = BL_Booking.AddBookingForBid(bookobj, trkobj, lstBid);
                if (j > 0)
                {
                    obj.iBookingId             = j;
                    Session[obj.BidSearchData] = obj;
                    //  TempData.Keep();
                    return(RedirectToAction("PayNow", "Payment", new { bookingId = j }));
                }
                else
                {
                }
            }
            catch (Exception)
            {
            }

            Session[obj.BidSearchData] = obj;
            //  TempData.Keep();
            return(View("BiddingInfo", obj));
        }
Пример #8
0
        public int SendMailToRevenueManager(int bookingId)
        {
            try
            {
                var customerModel = new NegotiationEmailTempleteModel();
                // Added to show hotel Information in email template
                var bookingModel = BL_Booking.GetBookingModifyDetails_Notifications(bookingId);
                customerModel.BookingModify = bookingModel;


                Decimal?ExchangeRate = 1;
                // get from tblEmailSetting
                var revenueManagerDetail = BL_tblEmailSettingsM.GetRecord("RevenueManager");

                // get from propertyEdit page
                var pRevenueManager = BL_PropDetails.GetEmail_PhoneByPropId(bookingModel.PropId);

                string sPrimaryContactEmail;
                string sConfirmationContactEmail;
                string sRevenueManagerEmail;
                string sRevenueManagerContact;

                pRevenueManager.TryGetValue("sPrimaryContactEmail", out sPrimaryContactEmail);
                pRevenueManager.TryGetValue("sConfirmationContactEmail", out sConfirmationContactEmail);
                pRevenueManager.TryGetValue("sRevenueManagerEmail", out sRevenueManagerEmail);
                pRevenueManager.TryGetValue("sRevenueManagerContact", out sRevenueManagerContact);

                string emails = sRevenueManagerEmail + "," + sConfirmationContactEmail + "," + sPrimaryContactEmail;


                customerModel = new NegotiationEmailTempleteModel();
                customerModel.BookingModify = bookingModel;
                //customerModel.Status = "Thanks " + bookingModel.Booker + "! We have recieved your negotiation." + Environment.NewLine + "We will get back to you within 3 hours.";
                customerModel.Status = "Thank you " + bookingModel.Booker + "! We have recieved your bargain." + Environment.NewLine + bookingModel.sMessage;

                var revenuManagerModel = new NegotiationEmailTempleteModel();
                //revenuManagerModel.Status = "Hi " + revenueManageName +", Please take action for the following Negotiation Request.";
                revenuManagerModel.Status = "Hi, Please take action for the following bargain Request.";
                revenuManagerModel.IsRevenueManagerFormat = true;


                if (bookingModel.sCurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", bookingModel.sCurrencyCode);
                    if (objExchange.dRate != null)
                    {
                        ExchangeRate = 1 / objExchange.dRate;
                    }
                }
                bookingModel.dTotalNegotiateAmount = bookingModel.dTotalNegotiateAmount * ExchangeRate;
                bookingModel.dTaxes = Convert.ToDecimal(bookingModel.Tax) * Convert.ToDecimal(ExchangeRate);
                revenuManagerModel.BookingModify = bookingModel;

                string extranetUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "Account/Login?sPropId=" + clsUtils.Encode(bookingModel.PropId.ToString());

                string shortExtranetUrl = clsUtils.Shorten(extranetUrl);

                string notificationMsg_RevenueMgr = "You have received a new bargain offer. The guest has chosen your hotel! Click " + shortExtranetUrl + " to view the offer and process yet another reservation from OFR. This offer is valid for the next three hours.";

                var html_RevenueManager = this.RenderViewToString("_NegotiationEmailTemplete", revenuManagerModel);

                Task.Run(() => clsUtils.sendSMS(sRevenueManagerContact, notificationMsg_RevenueMgr));

                Task.Run(() => MailComponent.SendEmail(sRevenueManagerEmail, revenueManagerDetail.sEmail, "", "Reminder - New Bargain", html_RevenueManager, null, null, true, null, null));

                return(1);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Пример #9
0
        public ActionResult GetRoomData(string sVendorId, string dCheckIn, string dCheckOut, string sRoomData)
        {
            try
            {
                DateTime checkIn  = DateTime.ParseExact(dCheckIn, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                DateTime checkOut = DateTime.ParseExact(dCheckOut, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                var propDetail = new PropDetailsM();

                propDetail.dtCheckIn  = checkIn;
                propDetail.dtCheckOut = checkOut;
                propDetail.sRoomData  = sRoomData;
                propDetail.iVendorId  = sVendorId;
                propDetail.scheckIn   = dCheckIn;
                propDetail.scheckOut  = dCheckOut;

                #region RoomOccupancySearch

                DataTable dtTblRoomOccupancySearch = new DataTable();
                dtTblRoomOccupancySearch.Columns.AddRange(new DataColumn[3]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("iAdults", typeof(short)),
                    new DataColumn("children", typeof(short))
                });

                DataTable dtTblChildrenAgeSearch = new DataTable();
                dtTblChildrenAgeSearch.Columns.AddRange(new DataColumn[2]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("Age", typeof(short))
                });

                var roomDataResult = new List <RoomData>();

                if (!string.IsNullOrEmpty(sRoomData))
                {
                    roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData);

                    foreach (var room in roomDataResult)
                    {
                        DataRow roomOccupancy = dtTblRoomOccupancySearch.NewRow();
                        roomOccupancy["ID"]       = room.room;
                        roomOccupancy["iAdults"]  = room.adult;
                        roomOccupancy["children"] = room.child;
                        dtTblRoomOccupancySearch.Rows.Add(roomOccupancy);

                        foreach (var child in room.ChildAge)
                        {
                            DataRow dtChildrenAge = dtTblChildrenAgeSearch.NewRow();
                            dtChildrenAge["ID"] = room.room;
                            if (child.Age == "<1")
                            {
                                dtChildrenAge["Age"] = "0";
                                child.Age            = "0";
                            }
                            else
                            {
                                dtChildrenAge["Age"] = child.Age;
                            }
                            dtChildrenAge["Age"] = child.Age == "<1" ? "0" : child.Age;

                            dtTblChildrenAgeSearch.Rows.Add(dtChildrenAge);
                        }
                    }
                }

                #endregion

                #region Hotel Detais

                var ofrCommision = BL_Bidding.GetBidMaster(CurrencyCode);

                var TG_Hotel_With_Rooms = clsSearchHotel.FetchHotelsDetailsByVendorId(
                    true,
                    sVendorId, checkIn.ToString("yyyy-MM-dd"),
                    checkOut.ToString("yyyy-MM-dd"),
                    dtTblRoomOccupancySearch,
                    dtTblChildrenAgeSearch,
                    roomDataResult
                    );

                propDetail.dOFRServiceCharge = ofrCommision.dOFRServiceCharge;

                string        roomIds    = string.Empty;
                List <string> roomIdsArr = new List <string>();

                if (TG_Hotel_With_Rooms != null)
                {
                    roomIdsArr = TG_Hotel_With_Rooms.RoomDetails.Select(x => x.RoomId).ToList();
                    roomIds    = string.Join(",", roomIdsArr);
                }
                var db_roomAmenities = BL_PropDetailsTG.GetRoomAmenities(sVendorId, roomIds);

                if (db_roomAmenities.Count > 0)
                {
                    foreach (var roomId in roomIdsArr)
                    {
                        var tgRoom = TG_Hotel_With_Rooms.RoomDetails.Where(x => x.RoomId == roomId).FirstOrDefault();
                        tgRoom.RoomAmenities = db_roomAmenities.Distinct().ToList();
                    }
                }

                propDetail.TG_Hotel = TG_Hotel_With_Rooms;

                ViewBag.dExchangeRate = 1;

                if (CurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                    if (objExchange.dRate.HasValue)
                    {
                        ViewBag.dExchangeRate = objExchange.dRate.Value;
                    }
                }
                propDetail.Symbol = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode);


                #endregion

                return(PartialView("pvHotelRooms", propDetail));
            }
            catch (Exception)
            {
                return(Content("An Error Occured !"));
            }
        }
Пример #10
0
        //[OutputCache(Duration = 30, VaryByParam = "Id;cIn;cOut;sLocation;sRoomData", VaryByCustom = "User")] // Cached for 30 second
        public ActionResult Index(string Id, string cIn, string cOut, string sLocation, string sRoomData, string sRequestType)
        {
            PropDetailsM propDetails = new PropDetailsM();

            if (!string.IsNullOrEmpty(Id))
            {
                PropSearchRequestModel dbRequestParamModel = new PropSearchRequestModel();
                dbRequestParamModel.iVendorId = Id;
                var roomDataResult = new List <RoomData>();

                #region RoomOccupancySearch

                DataTable dtTblRoomOccupancySearch = new DataTable();

                dtTblRoomOccupancySearch.Columns.AddRange(new DataColumn[3]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("iAdults", typeof(short)),
                    new DataColumn("children", typeof(short))
                });

                DataTable dtTblChildrenAgeSearch = new DataTable();
                dtTblChildrenAgeSearch.Columns.AddRange(new DataColumn[2]
                {
                    new DataColumn("ID", typeof(int)),
                    new DataColumn("Age", typeof(short))
                });

                if (!string.IsNullOrEmpty(cIn) && !string.IsNullOrEmpty(cOut))
                {
                    dbRequestParamModel.dtCheckIn  = DateTime.Parse(cIn);
                    dbRequestParamModel.dtCheckOut = DateTime.Parse(cOut);
                }
                else
                {
                    dbRequestParamModel.dtCheckIn  = DateTime.Now.Date.AddDays(1);
                    dbRequestParamModel.dtCheckOut = DateTime.Now.Date.AddDays(2);

                    cIn  = DateTime.Today.ToString("dd/MM/yyyy");
                    cOut = DateTime.Today.AddDays(1).ToString("dd/MM/yyyy");
                }

                dbRequestParamModel.bLogin    = User.Identity.IsAuthenticated;
                dbRequestParamModel.sCurrency = CurrencyCode;

                //Insert the room data in the table created
                if (!string.IsNullOrEmpty(sRoomData))
                {
                    roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData);
                }
                else
                {
                    roomDataResult.Add(new RoomData()
                    {
                        adult = 2, child = 0, room = 1, ChildAge = new List <ChildAge>()
                        {
                            new ChildAge()
                            {
                                Age = "0"
                            }
                        }
                    });
                }

                foreach (var room in roomDataResult)
                {
                    DataRow roomOccupancy = dtTblRoomOccupancySearch.NewRow();
                    roomOccupancy["ID"]       = room.room;
                    roomOccupancy["iAdults"]  = room.adult;
                    roomOccupancy["children"] = room.child;
                    dtTblRoomOccupancySearch.Rows.Add(roomOccupancy);

                    foreach (var child in room.ChildAge)
                    {
                        DataRow dtChildrenAge = dtTblChildrenAgeSearch.NewRow();
                        dtChildrenAge["ID"]  = room.room;
                        dtChildrenAge["Age"] = child.Age;
                        dtTblChildrenAgeSearch.Rows.Add(dtChildrenAge);
                    }
                }

                sRoomData = clsUtils.ConvertToJson(roomDataResult);


                #endregion

                string        roomIds              = string.Empty;
                List <string> roomIdsArr           = new List <string>();
                List <int>    hotelAmenitiesIdsArr = new List <int>();

                var ofrServiceCharge = BL_PropDetailsTG.GetOfrServiceCharge(dbRequestParamModel.dtCheckIn, dbRequestParamModel.dtCheckOut);

                //Get TG hotel details
                var hotelDetailsFromApi = clsSearchHotel.FetchHotelsDetailsByVendorId(false, dbRequestParamModel.iVendorId, dbRequestParamModel.dtCheckIn.ToString("yyyy-MM-dd"), dbRequestParamModel.dtCheckOut.ToString("yyyy-MM-dd"), dtTblRoomOccupancySearch, dtTblChildrenAgeSearch, roomDataResult);

                if (hotelDetailsFromApi != null && !string.IsNullOrEmpty(hotelDetailsFromApi.HotelCode))
                {
                    roomIdsArr = hotelDetailsFromApi.RoomDetails.Select(x => x.RoomId).ToList();
                    roomIds    = string.Join(",", roomIdsArr);

                    hotelAmenitiesIdsArr = hotelDetailsFromApi.HotelAmenities.Select(x => int.Parse(x.code)).ToList();

                    hotelDetailsFromApi.HotelAmenities = BL_PropDetailsTG.GetHotelAmenities(hotelAmenitiesIdsArr.ToArray());

                    if (hotelDetailsFromApi.GalleryImages.Count <= 0)
                    {
                        propDetails = BL_PropDetailsTG.GetPropertyDetails(dbRequestParamModel.iVendorId, roomIds);
                    }
                    else
                    {
                        propDetails = BL_PropDetailsTG.GetPropertyDetailsWithoutGallery(dbRequestParamModel.iVendorId, roomIds);
                    }
                }
                else
                {
                    propDetails = BL_PropDetailsTG.GetPropertyDetails(dbRequestParamModel.iVendorId, roomIds);
                }

                propDetails.ServiceChargeTG = ofrServiceCharge;

                propDetails.cStatus   = "A";
                propDetails.iVendorId = Id;

                propDetails.sRoomData             = sRoomData;
                propDetails.scheckIn              = cIn;
                propDetails.scheckOut             = cOut;
                propDetails.dtCheckIn             = dbRequestParamModel.dtCheckIn;
                propDetails.dtCheckOut            = dbRequestParamModel.dtCheckOut;
                hotelDetailsFromApi.RoomAmenities = propDetails.TG_Hotel.RoomAmenities;
                propDetails.TG_Hotel              = hotelDetailsFromApi;
                propDetails.sRequestType          = sRequestType;
                propDetails.Currency              = dbRequestParamModel.sCurrency;

                if (propDetails.TG_Hotel != null && propDetails.TG_Hotel.RoomAmenities != null)
                {
                    foreach (var roomId in roomIdsArr)
                    {
                        var tgRoom = hotelDetailsFromApi.RoomDetails.Where(x => x.RoomId == roomId).FirstOrDefault();
                        tgRoom.RoomAmenities = propDetails.TG_Hotel.RoomAmenities.Where(x => x.iRoomTypeId == tgRoom.RoomId).ToList();
                    }
                }

                Task.Run(() => BL_PropDetails.UpdateRecentViewAsync(propDetails.iPropId, User.Identity.GetUserId <long>()));

                ViewBag.dExchangeRate = 1;

                if (CurrencyCode != "INR")
                {
                    etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode);
                    if (objExchange.dRate.HasValue)
                    {
                        ViewBag.dExchangeRate = objExchange.dRate.Value;
                    }
                }

                propDetails.Symbol = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode);
            }
            return(View(propDetails));
        }