public ActionResult Addon(ProductTourPackage prodTour, string tripid) { CheckoutProduct checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); checkout.TourPackage.TourPackagesInfo.EntranceID = prodTour.TourPackagesInfo.EntranceID; checkout.TourPackage.TourPackagesInfo.LanguageID = prodTour.TourPackagesInfo.LanguageID; checkout.TourPackage.TourPackagesInfo.SpecialRequest = prodTour.TourPackagesInfo.SpecialRequest; checkout.TourPackage.TourPackagesInfo.TransportPackageID = prodTour.TourPackagesInfo.TransportPackageID; int NoOfPax = checkout.TourPackage.TourPackagesInfo.NoOfPax; var tourProdDetail = checkout.TourPackage.TourPackageDetails; checkout.TourPackage.PricingDetail.Items.RemoveAll(x => x.ItemDetail.Contains("Tour Guide:") || x.ItemDetail.Contains("Entrances Ticket:") || x.ItemDetail.Contains("Transport Package: ")); if (checkout.TourPackage.TourPackagesInfo.LanguageID != 0) { var languages = UtilitiesService.GetTourLanguageList(checkout.TourPackage.TourPackagesInfo.LanguageID); var lang = languages.FirstOrDefault(x => x.LanguageID == checkout.TourPackage.TourPackagesInfo.LanguageID); checkout.TourPackage.PricingDetail.Items.Add(new ProductItem() { ItemDetail = "Tour Guide: " + lang.Language, ItemQty = 1, BaseRate = lang.TourLanguagePrices.FirstOrDefault().SellingPrice, Surcharge = 0, Supplier_TotalAmt = lang.TourLanguagePrices.FirstOrDefault().Cost, GST = 0, }); } if (checkout.TourPackage.TourPackagesInfo.EntranceID != 0) { var entranceDetail = tourProdDetail.EntranceTickets.Where(x => x.EntranceID == checkout.TourPackage.TourPackagesInfo.EntranceID).FirstOrDefault(); checkout.TourPackage.PricingDetail.Items.Add(new ProductItem() { ItemDetail = "Entrances Ticket: " + entranceDetail.Ticket, ItemQty = NoOfPax, BaseRate = entranceDetail.SellingPrice, Surcharge = 0, Supplier_TotalAmt = entranceDetail.Cost * NoOfPax, GST = 0, }); } if (checkout.TourPackage.TourPackagesInfo.TransportPackageID != 0) { var transportDetail = tourProdDetail.TransportPackages.Where(x => x.TransportPackageID == checkout.TourPackage.TourPackagesInfo.TransportPackageID).FirstOrDefault(); checkout.TourPackage.PricingDetail.Items.Add(new ProductItem() { ItemDetail = "Transport Package: " + transportDetail.Description, ItemQty = NoOfPax, BaseRate = transportDetail.SellingPrice, Surcharge = 0, Supplier_TotalAmt = transportDetail.Cost * NoOfPax, GST = 0, }); } return(RedirectToAction("Contact", "TourPackage", new { tripid, affiliationId })); }
public ActionResult Contact(ProductTourPackage prodTour, string tripid) { CheckoutProduct checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); checkout.TourPackage.ContactPerson = prodTour.ContactPerson; checkout.ContactPerson = prodTour.ContactPerson; checkout.TourPackage.TourPackagesInfo.ArriveFlightDetails = prodTour.TourPackagesInfo.ArriveFlightDetails; checkout.TourPackage.TourPackagesInfo.DepartFlightDetails = prodTour.TourPackagesInfo.DepartFlightDetails; return(RedirectToAction("Payment", "Checkout", new { tripid, affiliationId })); }
public bool TourPackageEnquiry(ProductTourPackage prodTour, string travelerdata, string enquiryQuestion, string tripid) { CheckoutProduct checkout = (CheckoutProduct)Core.GetSession(Enumeration.SessionName.CheckoutProduct, tripid); bool successSend = false; try { if (checkout != null) { checkout.TourPackage.ContactPerson = prodTour.ContactPerson; var tourdtl = checkout.TourPackage.TourPackageDetails; var tourinfo = checkout.TourPackage.TourPackagesInfo; var hotelSelected = ""; if (tourinfo.RoomListSelected != null) { int star = UtilitiesService.GetTourRoomRating(tourinfo.RoomListSelected.FirstOrDefault().RoomTypeID); hotelSelected = star + (star > 1 ? " stars" : " star") + "<br/>" + string.Join("<br/>", tourinfo.TourRoomPackages.Select(x => x.RoomTypeName + " x " + x.Qty)); } decimal ttlprice = checkout.CheckOutSummary.GrandTtlAmt_BeforeDiscount; decimal deposit = ttlprice; decimal depositrate = tourdtl.DepositRate ?? 0; if ((tourdtl.IsDepositOnly ?? false) && depositrate > 0) { deposit = tourdtl.DepositTypeCode == "FIX" ? depositrate * tourinfo.NoOfPax : ttlprice * depositrate / 100; } Hashtable ht = new Hashtable(); ht.Add("<#UserName>", prodTour.ContactPerson.GivenName + " " + prodTour.ContactPerson.Surname); ht.Add("<#PackageName>", tourdtl.TourPackageName); ht.Add("<#TravelDate>", tourinfo.TravelDateFrom.ToString("dd/MM/yyyy") + " - " + tourinfo.TravelDateTo.ToString("dd/MM/yyyy")); ht.Add("<#HotelSelection>", hotelSelected); ht.Add("<#TourCode>", tourdtl.TourPackageCode); ht.Add("<#TtlPrice>", ttlprice.ToString("n2")); ht.Add("<#Email>", checkout.TourPackage.ContactPerson.Email); ht.Add("<#EnquiryQ>", enquiryQuestion); var CSemail = Core.GetSettingValue("MayflowerCSEmail"); successSend = CommonServiceController.SendEmail(CSemail, "Ground Package Enquiry Email", Core.getMailTemplate("tourpackageenquiry", ht)); if (!successSend) { logger.Fatal("errmsg", "Tour Package send enquiry email error." + " - " + DateTime.Now.ToLoggerDateTime()); } } } catch (Exception ex) { logger.Fatal(ex, "Tour Package enquiry email error" + " - " + DateTime.Now.ToLoggerDateTime()); } return(successSend); }
public ActionResult GetTourPackage(int TourPackageID) { string tripid = Guid.NewGuid().ToString(); var tour = new ProductTourPackage(TourPackageID); var langList = UtilitiesService.GetTourLanguageList(tour.TourPackageID); var entrances = tour.TourPackageDetails.EntranceTickets.ToList(); var transportDetail = tour.TourPackageDetails.TransportPackages.ToList(); if (!((langList != null && langList.Count > 0) || (entrances != null && entrances.Count > 0) || (transportDetail != null && transportDetail.Count > 0))) { tour.skipAddon = true; } CheckoutProduct checkout = new CheckoutProduct(); checkout.InsertProduct(tour); Core.SetSession(Enumeration.SessionName.CheckoutProduct, tripid, checkout); return(RedirectToAction("Search", "TourPackage", new { tripid })); }
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 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 })); } }