public IEnumerable <IntSync.UnitPriceBulkCopyItem> GetUnitPriceSearchList(string tourOperatorId, string facilityCode, string unitCode, string offerCode) { IntOffice.PriceList priceList = new IdomOffice.PlugIn.BackOffice.PriceLists.PriceListManager().GetPriceList(tourOperatorId, facilityCode, offerCode, Interface.BackOffice.PriceLists.PriceListType.RetailPrice); MasterDataManager mda = new MasterDataManager(); var unit = mda.GetTouristUnit(facilityCode, offerCode); //var offer = mda.GetUnitOffer(arg.TourOperatorCode, arg.TouristSiteCode, arg.OfferCode); CalculatorPriceList cpl = ConvertToCalculatorPriceList(priceList, unit.UnitStopBooking); var bulkInfo = new QTouristik.Interface.Sync.BulkUnitInfo(); bulkInfo.OpenDate = unit.OpenDate.Date; bulkInfo.CloseDate = unit.CloseDate.Date; bulkInfo.MaxPersons = unit.MaxPersons; return(new QTouristik.Utility.PriceCalculator.Helper.PriceBulkCopyHelper().GetUnitPriceSearchList(offerCode, bulkInfo, cpl, facilityCode)); }
private CalculatorPriceList ConvertToCalculatorPriceList(IntOffice.PriceList priceList, List <QTouristik.Data.DateInterval> stopbookingList) { var pl = new CalculatorPriceList(); foreach (var l1 in priceList.ActionsList) { pl.ActionsList.Add(new Utility.PriceCalculator.SeasonUnitAction() { ActionEnd = l1.ActionEnd.Date, ActionStart = l1.ActionStart.Date, ActionType = (Utility.PriceCalculator.ActionType)l1.ActionType, CanBeCombined = l1.CanBeCombined, DiscountEur = l1.DiscountEur, DiscountPercent = l1.DiscountPercent, FreeNights = l1.FreeNights, FromDate = l1.FromDate.Date, MinPrice = l1.MinPrice, MinStayDays = l1.MinStayDays, ToDate = l1.ToDate.Date }); } foreach (var l in priceList.AvailabilityList) { pl.AvailabilityList.Add(new Utility.PriceCalculator.SeasonUnitAvailability() { FromDate = ConvertTime(l.FromDate), ToDate = ConvertTime(l.ToDate), IsAutoStopBooking = l.IsAutoStopBooking, UnitCount = l.UnitCount }); } foreach (var l in priceList.ConditionsList) { var itm = new Utility.PriceCalculator.SeasonUnitCondition() { Arrival = l.Arrival, Departure = l.Departure, FromDate = l.FromDate.Date, ToDate = l.ToDate.Date, MinStay = l.MinStay, ReleaseDays = l.ReleaseDays }; if (itm.Arrival.Count == 0) { itm.Arrival.Add(l.ArrivalActual); } if (itm.Departure.Count == 0) { itm.Departure.Add(l.DepartureActual); } pl.ConditionsList.Add(itm); } foreach (var l in priceList.PaymentModeList) { pl.PaymentModeList.Add(new Utility.PriceCalculator.PaymentMode() { BookingFromDate = l.BookingFromDate, BookingToDate = l.BookingToDate, CancellationFeesPercent = l.CancellationFeesPercent, CancellationFeesToDays = l.CancellationFeesToDays, CheckInFromDate = l.CheckInFromDate, CheckInToDate = l.CheckInToDate, MaxDayToArrival = l.MaxDayToArrival, MinDayToArrival = l.MinDayToArrival, PaymentModeDescription = l.PaymentModeDescription, PaymentModeTitel = l.PaymentModeTitel, PriceDownPaymentAfterDays = l.PriceDownPaymentAfterDays, PriceDownPaymentEur = l.PriceDownPaymentEur, PriceDownPaymentPercent = l.PriceDownPaymentPercent, PricePercentDiscount = l.PricePercentDiscount, PriceRemainingBeforDays = l.PriceRemainingBeforDays }); } foreach (var l in priceList.SeasonPriceList) { pl.SeasonPriceList.Add(new Utility.PriceCalculator.SeasonAndPrice() { Eur = l.Eur, FromDate = l.FromDate.Date, FromPersons = l.FromPersons, PriceType = (Utility.PriceCalculator.PriceType)l.PriceType, ToDate = l.ToDate.Date, ToPersons = l.ToPersons }); } foreach (var l in priceList.ServicesList) { pl.ServicesList.Add(new Utility.PriceCalculator.SeasonUnitService() { Description = l.Description, FromDate = l.FromDate.Date, ToDate = l.ToDate.Date, OfDay = l.OfDay, ToDay = l.ToDay, Eur = l.Eur, IsOptional = l.IsOptional, OfOld = l.OfOld, PaymentPlace = (Utility.PriceCalculator.PaymentPlace)l.PaymentPlace, ServiceInterval = (Utility.PriceCalculator.ServiceInterval)l.ServiceInterval, ServiceType = (Utility.PriceCalculator.ServiceType)l.ServiceType, ServiceUnit = (Utility.PriceCalculator.ServiceUnit)l.ServiceUnit, ToOld = l.ToOld }); } if (stopbookingList != null) { foreach (var l in stopbookingList) { pl.StopBookingList.Add(new Utility.PriceCalculator.DateInterval() { FromDate = l.FromDate.Date, ToDate = l.ToDate.Date }); } } return(pl); }