Exemple #1
0
        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 }));
        }
Exemple #2
0
        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 }));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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 }));
        }
Exemple #5
0
        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 }));
            }
        }
Exemple #6
0
        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 }));
            }
        }