public ActionResult Hotel(string travelerdata, ProductTourPackage prodTour, string tripid) { CheckoutProduct checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); int TourPackageID = checkout.TourPackage.TourPackageID; int NoOfPax = checkout.TourPackage.TourPackagesInfo.NoOfPax; var tourProdDetail = checkout.TourPackage.TourPackageDetails; bool isEmptyHotelToken = string.IsNullOrWhiteSpace(travelerdata); List <TourRoomModel> TourRoomPackages = isEmptyHotelToken ? new List <TourRoomModel>() : JsonConvert.DeserializeObject <List <TourRoomModel> >(travelerdata); foreach (var room in TourRoomPackages) { room.RoomTypeName = tourProdDetail.PackageRoomTypes.FirstOrDefault(x => x.RoomTypeID == room.RoomTypeID).RoomTypeName; } checkout.TourPackage.TourPackagesInfo.TourRoomPackages = TourRoomPackages; checkout.TourPackage.TourPackagesInfo.HotelID = TourRoomPackages.FirstOrDefault().hotelID; checkout.TourPackage.TourPackagesInfo.RatingID = tourProdDetail.PackageHotels.FirstOrDefault(x => x.HotelID == checkout.TourPackage.TourPackagesInfo.HotelID).RatingID; List <PeakDates> PeakDateList = GetDates(checkout.TourPackage.TourPackagesInfo.TravelDateFrom, checkout.TourPackage.TourPackagesInfo.TravelDateTo, checkout.TourPackage.TourPackageDetails, checkout.TourPackage.TourPackagesInfo); List <ProductItem> tourproducts = new List <ProductItem>(); tourproducts.Add(new ProductItem() { ItemDetail = tourProdDetail.TourPackageName, ItemQty = NoOfPax, BaseRate = tourProdDetail.SellingPrice, Surcharge = 0, Supplier_TotalAmt = tourProdDetail.Cost * NoOfPax, GST = 0, }); foreach (var room in TourRoomPackages) { var roomdetail = tourProdDetail.PackageRoomTypes.Where(x => x.RoomTypeID == room.RoomTypeID).FirstOrDefault(); tourproducts.Add(new ProductItem() { ItemDetail = roomdetail.RoomTypeName + " room", ItemQty = room.Qty, BaseRate = roomdetail.PackageRoomPrices.FirstOrDefault(x => x.RoomPriceID == room.RoomPriceID).SellingPrice, Surcharge = 0, Supplier_TotalAmt = roomdetail.Cost * room.Qty, GST = 0, }); } if (checkout.TourPackage.TourPackagesInfo.ExtensionNight != 0) { int totalextension = checkout.TourPackage.TourPackagesInfo.ExtensionNight; tourproducts.Add(new ProductItem() { ItemDetail = "Extension", ItemQty = totalextension, BaseRate = tourProdDetail.ExtensionPrice ?? 0, Surcharge = 0, Supplier_TotalAmt = (tourProdDetail.ExtensionPrice ?? 0) * totalextension, GST = 0, }); } if (PeakDateList.Count > 0) { tourproducts.Add(new ProductItem() { ItemDetail = "Peak season surcharge", ItemQty = 1, BaseRate = PeakDateList.FirstOrDefault().PeakSurcharge, Surcharge = 0, Supplier_TotalAmt = PeakDateList.FirstOrDefault().PeakSurcharge, GST = 0, }); } ProductPricingDetail tourPricingDetail = new ProductPricingDetail { Sequence = 5, Currency = "MYR", Items = tourproducts, Discounts = new List <DiscountDetail>(), }; ProductTourPackage producttour = new ProductTourPackage() { TourPackageID = TourPackageID, ContactPerson = checkout.ContactPerson, TourPackageDetails = checkout.TourPackage.TourPackageDetails, TourPackagesInfo = checkout.TourPackage.TourPackagesInfo, ProductSeq = 5, PricingDetail = tourPricingDetail, }; if (checkout.TourPackage != null) { checkout.RemoveProduct(ProductTypes.TP); } checkout.InsertProduct(producttour); var langList = UtilitiesService.GetTourLanguageList(TourPackageID); var entrances = tourProdDetail.EntranceTickets.ToList(); var transportDetail = tourProdDetail.TransportPackages.ToList(); if (!((langList != null && langList.Count > 0) || (entrances != null && entrances.Count > 0) || (transportDetail != null && transportDetail.Count > 0))) { checkout.TourPackage.skipAddon = true; } if (checkout.TourPackage.skipAddon || true) { return(RedirectToAction("Contact", "TourPackage", new { tripid, affiliationId })); } else { return(RedirectToAction("Addon", "TourPackage", new { tripid, affiliationId })); } }
public ActionResult ReserveCar(string data, string tripid, CarSelectedModel VehicleSelect) { try { var carAttr = Request.Form["key"]?.ToString() ?? ""; string carSelectedSerialize = Request.QueryString["key"] ?? HttpUtility.UrlDecode(carAttr); CarSelectedModel carSelected = JsonConvert.DeserializeObject <CarSelectedModel>(carSelectedSerialize); int promoCodeId = 0; var checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); checkout.CarRental.VehicleDetails = new VehicleDetail() { VehicleID = carSelected.VehicleID.ToInt() }; var insurance = checkout.CarRental.VehicleSelected.Insurance.FirstOrDefault(); var vehicle = checkout.CarRental.VehicleSelected.VehAvails.VehAvailCore.Vehicle; var MarkupInfo = checkout.CarRental.FilterCarResult.MarkupInfo; int totalDays = Convert.ToInt32((checkout.CarRental.SearchInfo.ReturnDateTime - checkout.CarRental.SearchInfo.PickupDateTime).TotalDays); var TotalDiscountOrMarkup = MarkupInfo != null ? (MarkupInfo.MarkupPricingTypeCode == "PCT" ? MarkupInfo.DiscountOrMarkup * vehicle.VehicleCharge.TotalRentalFee.Value : (MarkupInfo.MarkupPricingTypeCode == "FIX" ? MarkupInfo.DiscountOrMarkup * totalDays : 0)) :0; var reservePricingDetail = new ProductPricingDetail { Items = new List <ProductItem>() { new ProductItem() { ItemDetail = vehicle.VehicleName, ItemQty = 1, GST = 0, Surcharge = 0, BaseRate = vehicle.VehicleCharge.TotalRentalFee.Value + TotalDiscountOrMarkup, Supplier_TotalAmt = vehicle.VehicleCharge.TotalRentalFee.Value, }, }, Currency = "MYR", Sequence = 6, }; if (insurance != null) { reservePricingDetail.Items.Add(new ProductItem() { ItemDetail = "Insurance (" + insurance.Description + ")", ItemQty = totalDays, BaseRate = insurance.InsurancePrice, Supplier_TotalAmt = insurance.InsurancePrice * totalDays, }); } checkout.CheckoutStep = 3; checkout.PromoID = promoCodeId; checkout.IsRegister = false; checkout.ImFlying = false; checkout.RequireInsurance = false; checkout.BusinessType = IsAgentUser ? BusinessType.B2B : BusinessType.B2C; checkout.CarRental.PricingDetail = reservePricingDetail; Core.SetSession(Enumeration.SessionName.CheckoutProduct, tripid, checkout); return(RedirectToAction("GuestDetails", "Checkout", new { tripid })); } catch (AggregateException ex) { Logger logger = LogManager.GetCurrentClassLogger(); logger.Error(ex, ex.ToString()); return(RedirectToAction("Search", "CarRental", new { reference = "error", tripid })); } catch (Exception ex) { Logger logger = LogManager.GetCurrentClassLogger(); logger.Error(ex, "Error on ReserveRoom(FormCollection collection)"); return(RedirectToAction("Search", "CarRental", new { reference = "error", tripid })); } }
public ActionResult Search(ProductTourPackage prodTour, string tripid) { CheckoutProduct checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); int TourPackageID = checkout.TourPackage.TourPackageID; var tourprod = new ProductTourPackage(TourPackageID); checkout.TourPackage.TourPackagesInfo = prodTour.TourPackagesInfo; if (tourprod.TourPackageDetails.PackageHotels.Count == 0 || tourprod.TourPackageDetails.PackageRoomTypes.Count == 0) { var tourProdDetail = checkout.TourPackage.TourPackageDetails; int NoOfPax = checkout.TourPackage.TourPackagesInfo.NoOfPax; List <ProductItem> tourproducts = new List <ProductItem>(); tourproducts.Add(new ProductItem() { ItemDetail = tourProdDetail.TourPackageName, ItemQty = NoOfPax, BaseRate = tourProdDetail.SellingPrice, Surcharge = 0, Supplier_TotalAmt = tourProdDetail.Cost * NoOfPax, GST = 0, }); if (checkout.TourPackage.TourPackagesInfo.ExtensionNight != 0) { int totalextension = checkout.TourPackage.TourPackagesInfo.ExtensionNight; tourproducts.Add(new ProductItem() { ItemDetail = "Extension", ItemQty = totalextension, BaseRate = tourProdDetail.ExtensionPrice ?? 0, Surcharge = 0, Supplier_TotalAmt = (tourProdDetail.ExtensionPrice ?? 0) * totalextension, GST = 0, }); } ProductPricingDetail tourPricingDetail = new ProductPricingDetail { Sequence = 5, Currency = "MYR", Items = tourproducts, Discounts = new List <DiscountDetail>(), }; ProductTourPackage producttour = new ProductTourPackage() { TourPackageID = TourPackageID, TourPackageDetails = checkout.TourPackage.TourPackageDetails, TourPackagesInfo = checkout.TourPackage.TourPackagesInfo, ProductSeq = 5, PricingDetail = tourPricingDetail, }; if (checkout.TourPackage != null) { checkout.RemoveProduct(ProductTypes.TP); } checkout.InsertProduct(producttour); var langList = UtilitiesService.GetTourLanguageList(TourPackageID); var entrances = tourProdDetail.EntranceTickets.ToList(); var transportDetail = tourProdDetail.TransportPackages.ToList(); if (!((langList != null && langList.Count > 0) || (entrances != null && entrances.Count > 0) || (transportDetail != null && transportDetail.Count > 0))) { checkout.TourPackage.skipAddon = true; } if (checkout.TourPackage.skipAddon || true) { return(RedirectToAction("Contact", "TourPackage", new { tripid, affiliationId })); } else { return(RedirectToAction("Addon", "TourPackage", new { tripid, affiliationId })); } } else { return(RedirectToAction("Hotel", "TourPackage", new { tripid, affiliationId })); } }