{"version":3,"sources":["models/OfferValidPeriod.ts","store/Global.ts","store/Cities.ts","utils/dateFormatNoTime.ts","models/OfferTicketType.ts","models/OfferBookingType.ts","models/Offer.ts","models/BaseEntity.ts","models/TourManageModel.ts","services/ToursApiService.ts","services/ValidPeriodsService.ts","services/OffersApiService.ts","store/Tours.ts","models/BookingOperations.ts","store/ToursCategories.ts","store/Bookings.ts","services/AccountApiService.ts","models/AccountSettingsCurrenciesModel.ts","models/AccountSettingsModel.ts","store/Account.ts","models/TicketType.ts","services/TicketsApiService.ts","store/Tickets.ts","pages/TimeSlots/ExternalProviderOption.ts","services/daysOfferedService.ts","models/TimeSlot.ts","models/TimeSlotGroup.ts","services/TimeSlotsApiService.ts","store/TimeSlots.ts","models/PickUpTime.ts","services/PickUpTimesApiService.ts","models/Hotel.ts","services/HotelsApiService.ts","services/CitiesApiService.ts","store/PickUpTimes.ts","services/RegionsApiService.ts","store/Regions.ts","models/Supplier.ts","services/SupplierApiService.ts","store/Supplier.ts","services/CountriesApiService.ts","store/Countries.ts","pages/Agent/Models/BookingAgent.ts","services/AgencyAreaApiService.ts","pages/Arrivals/ArrivalGroupInfoModel.ts","pages/Agent/Models/OfferAgent.ts","store/AgencyCommissions.ts","pages/Agent/Models/AgentOfferPrice.ts","pages/Agent/Models/NewBookingArrival.ts","pages/Agent/Models/TimeSlotNewBookingModel.ts","pages/Agent/Models/OfferNewBookingModel.ts","pages/Agent/Models/TourNewBookingModel.ts","store/AgencyBookings.ts","pages/Arrivals/ArrivalGroupInfoHotelModel.ts","pages/Arrivals/ArrivalMeeting.ts","pages/Arrivals/ArrivalModel.ts","models/StaffModel.ts","services/ArrivalsApiService.ts","store/Arrivals.ts","store/ToursRecommendedFor.ts","store/index.ts","store/Counter.ts","components/MapsLocationPicker/MapsPlaceIdPicker.tsx","components/Header.tsx","components/Loading.tsx","components/Layout.tsx","pages/Unathorized.tsx","components/AuthorizedLayout.tsx","components/Home.tsx","effects/useLanguages.ts","pages/Tours.tsx","components/LoadingSection.tsx","services/parseId.ts","components/Video/Video.tsx","models/CancellationPolicy.ts","pages/TourForm/Cancellations.tsx","effects/useSupplier.ts","components/Ui/NoDefaultValue.tsx","models/TourFaqModel.ts","pages/TourForm/TourFormFaq.tsx","models/ItineraryModel.ts","pages/TourForm/TourItinerary.tsx","components/MapsLocationPicker/TripAdvisorLocationIdPicker.tsx","pages/TourForm/TourForm.tsx","models/ItineraryStopModel.ts","components/ItineraryDesigner/ItineraryDesigner.tsx","pages/TestTableFullScreen.tsx","pages/LogMeInPage.tsx","serviceModels/GenericServerFiltersModels.ts","serviceModels/BookingsOperationsFilter.ts","serviceModels/GenericFilterModel.ts","pages/Bookings.tsx","pages/Agent/Models/BookingsRequest.ts","pages/Agent/Bookings.tsx","pages/Agent/Commissions.tsx","utils/randomizer.ts","pages/Controls.tsx","pages/OfferForm/OfferForm.tsx","valueObjects/booleanOptions.ts","pages/TimeSlots/TimeSlots.tsx","pages/TimeSlots/TimeSlotForm.tsx","pages/PickUpTimes/PickUpTimes.tsx","models/PickUpTimeValues.ts","pages/PickUpTimes/PickUpTimeFormMassEdit.tsx","pages/PickUpTimes/PickUpTimeForm.tsx","pages/Admin/AdminLayout.tsx","pages/Admin/AdminCoreInfo.tsx","effects/useCountriesOptions.ts","pages/Admin/AdminContacts.tsx","pages/Admin/AdminContracting.tsx","pages/Admin/AdminStaff.tsx","pages/Admin/AdminDefaultSettings.tsx","pages/Arrivals/ArrivalsFilterModel.ts","pages/Arrivals/ArrivalsList.tsx","pages/Login.tsx","pages/Logout.tsx","pages/Agent/Models/NewBookingAgent.ts","pages/Agent/BookingForm.tsx","pages/Agent/BookingConfirm.tsx","ModulBank.tsx","App.tsx","index.tsx","store/configureStore.ts"],"names":["PricingPeriodModelPriceType","SET_GLOBAL_PATH","SET_GLOBAL_CITY","actionCreators","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dispatch","getState","wrap","_context","prev","next","stop","_x","_x2","apply","arguments","path","type","storageState","localStorage","getItem","undefined","unloadedState","Object","assign","JSON","parse","locale","Localization","city","language","RECEIVE_CITIES_OPTIONS","appState","result","_result$Content","cities","citiesOptions","length","apiCallWrapper","sent","IsOk","payload","Content","sort","a","b","label","dateFormatNoTime","OffersTicketTypesType","PricePer","_classCallCheck","recBaseCurWithVat","recBaseCur","recSecCurWithVat","recSecCur","netBaseCurWithVat","netBaseCur","netSecCurWithVat","netSecCur","_createClass","key","value","this","comm","PriceTypePostfixes","OfferValidPeriod","vat","vatK","convRate","convType","defaultCommission","id","offerId","minimumAdvancedPayment","periodStart","moment","utc","periodEnd","pricePerAdultRecBaseCurrencyWithVat","pricePerAdultRecBaseCurrency","pricePerChildRecBaseCurrencyWithVat","pricePerChildRecBaseCurrency","pricePerTripRecBaseCurrencyWithVat","pricePerTripRecBaseCurrency","pricePerAdultRecUsdWithVat","pricePerAdultRecUsd","pricePerChildRecUsdWithVat","pricePerChildRecUsd","pricePerTripRecUsdWithVat","pricePerTripRecUsd","netCommissionPerAdult","netCommissionPerChild","netCommissionPerTrip","netPricePerAdultUsd","netPricePerAdultUsdWithVat","netPricePerChildUsd","netPricePerChildUsdWithVat","netPricePerTripUsd","netPricePerTripUsdWithVat","netPricePerAdultBaseCurrency","netPricePerAdultBaseCurrencyWithVat","netPricePerChildBaseCurrency","netPricePerChildBaseCurrencyWithVat","netPricePerTripBaseCurrency","netPricePerTripBaseCurrencyWithVat","guid","d","Date","getFullYear","getMonth","getDate","priceFor","priceType","priceTypePostfix","recPrice","getValueByFieldName","concat","fieldName","p","setValueByFieldName","round","CurrencyConverter","convert","updateNetPrices","setPrices","valueNoVat","convertBack","recPriceBaseCurWithVat","recPriceBaseCur","recPriceSecCurWithVat","recPriceSecCur","netPriceBaseCurWithVat","netPriceBaseCur","netPriceSecCurWithVat","netPriceSecCur","dropNetPrices","setNetPrices","_this$periodEnd","format","obj","tax","taxK","accountSettings","totalTaxAmount","totalTaxK","currencyConversionSettings","OfferTicketType","ticketTypeId","Adult","BookingType","BookingTypeOptions","Offer","tourId","nameInternal","nameDisplay","minNumOfPeople","maxNumOfPeople","numberOfHours","isTicketsRequired","origin","validPeriods","description","heroImageId","photos","childrenAllowed","childAge","infantsAllowed","infantAge","isDirectReporting","allowDirectCollection","isAppendTransactionFeeB2b","ticketsTypes","isDeleted","timeSlots","bookingType","LiveBook","notesToClientsPostBooking","get","_this$ticketsTypes$fi","find","x","set","filter","_this$ticketsTypes$fi2","Child","_this$ticketsTypes$fi3","Infant","_obj$validPeriods$map","_obj$validPeriods","as","map","vp","Create","OfferManageTourModel","_OfferTourManageTable","_inherits","_super","_createSuper","_this","_len","args","Array","_key","call","validPeriod","OfferTourManageTableModel","BaseEntity","TourManageModel","_BaseEntity","url","cityId","toursCategories","recommendedFor","languageId","videoUrl","cancellationPolicy","offers","isDefaultCancellationPolicy","isDefaultNotesToClientsPostBooking","isDefaultTermsAndConditions","isDefaultFaq","termsAndConditions","faq","faqs","shortDescription","salesDescription","tourItinerary","itineraries","notesToAgents","seo","seoPageTitle","seoPageDescription","locationAddress","locationLatitude","locationLongitude","googlePlacesId","googlePlacesRating","googlePlacesTotalRatings","tripAdvisorId","tripAdvisorRating","tripAdvisorTotalRatings","facebookPageId","isTopTour","res","ToursApiService","save","model","abrupt","getToursManageTable","_ref2","_callee2","_context2","_x3","getTourForEdit","_ref3","_callee3","_context3","_x4","_x5","getCategoriesOptions","_ref4","_callee4","_context4","_x6","getRecommendedForOptions","_ref5","_callee5","_context5","Code","_x7","ValidPeriodsApiService","OffersApiService","getOfferForEdit","BookingStatus","RECEIVE_TOURS_MANAGE","VALID_PERIOD_SAVED","SET_ADD_VALID_PERIOD","exTour","fetchTask","data","localization","tours","tour","LoadingStore","incrementLoading","NotificationsStore","add","NotificationModel","NotificationType","error","getString","push","decrementLoading","offer","toursManage","addValidPeriod","RECEIVE_TOURS_CATEGORIES_OPTIONS","options","BookingOperations","date","bookingDateTime","hotelId","customHotelName","region","guestName","tel","ad","ch","inf","foc","paid","paidTo","collect","collectTo","voucher","status","New","BookingStatusOptions","PendingVerification","Cancelled","BookingStatusDescription","RECEIVE_BOOKINGS","EntitiesPaginatedModel","entities","pagingInfo","PaginationModel","bookings","AccountApiService","getDefaultCommission","getAccountSettings","AccountSettingsCurrenciesModel","baseCurrency","secondaryCurrency","ConversionType","DEV","AccountSettingsModel","taxes","reduce","amount","amountK","AccountTaxModel","name","settings","CreateConstructor","TicketType","shortName","reorderLevel","reservationTime","available","expired","freezed","expiresIn5Days","TicketsApiService","getTypes","ExternalProviderCodeType","TICKETS_TYPES_RESPONSE","types","DaysOfferedService","days","i","forEach","day","daysNames","index","getDays","TimeSlotType","TimeSlotTimeType","ExternalProviderCodeTypesNames","TimeSlot","groupId","groupName","startTimeHour","startTimeMinutes","endTimeHour","endTimeMinutes","isAnytime","isNoTime","interval","pickUpTimeId","duration","cutOffResponseTime","timeType","Fixed","externalId","externalPerChildId","isExternalId","bookingReferencePrefix","externalProviderId","externalProviderCodeType","None","externalProviderDiffProductsAdultChild","externalProductId","externalProductPerChildId","externalIsTicketPerPax","daysOffered","daysOfferedList","capacity","minimumAdvancedBooking","Live","toStringFormatWithNumDigits","parts","split","hours","parseInt","minutes","_unused","_unused2","startTimeDescription","endTimeDescription","tsg","GetTimeType","NoTime","Anytime","getTimeSlotTimeTypeOptions","TimeSlotGroup","isTimeSlotsIndependant","ts","TimeSlotsApiService","getExternalProviders","getExternalTimeSlots","apiProviderId","productId","getExternalOffers","getTable","_res$Content","getForEdit","_x8","_x9","_ref6","_callee6","_context6","_x10","_x11","RECEIVE_TIMESLOTS_GROUPS","TIMESLOT_SAVED","SET_TIMESLOT_MANAGE","RECEIVE_EXTERNAL_PROVIDERS","RECEIVE_EXTERNAL_OFFERS","RECEIVE_EXTERNAL_OFFERS_START","RECEIVE_EXTERNAL_OFFERS_END","RECEIVE_EXTERNAL_TIMESLOTS","RECEIVE_EXTERNAL_TIMESLOTS_START","RECEIVE_EXTERNAL_TIMESLOTS_END","_getState$timeSlots$e","_getState$timeSlots$e2","isLoadingTimeSlots","externalTimeSlotsOptions","has","_getState$timeSlots$e3","isLoadingOffers","externalOffersOptions","timeSlotsGroups","timeSlotGroup","externalProvidersOptions","Map","PickUpTime","isFixedTime","regionsPickUpTimes","hotelsPickUpTimes","PickUpTimesApiService","getOptions","_res$Content$sort","getManageList","pickUpTime","Hotel","regionId","regionName","cityName","HotelsApiService","getHotelsWithArrivalsByArrivals","getHotelsInSuppliersCountry","_res$Content2","CitiesApiService","_getCitiesOptions","_getCitiesInSuppliersCountry","SET_HOTELS_OPTIONS","SET_CITIES_OPTIONS","PICKUPTIME_SAVED","SET_PICKUPTIME_MANAGE","RECEIVE_PICKUPTIMES_MANAGE_LIST","RECEIVE_PICKUPTIMES_OPTIONS","pickUpTimes","hotelsOptions","getCitiesInSuppliersCountry","pupt","pickUpTimesManage","RegionsApiService","_getSupplierRegions","RECEIVE_SUPPLIER_REGIONS","regions","supplierRegions","getSupplierRegions","Supplier","code","address","countryId","taxRegistrationNumber","tradeLicenseNumber","paymentDetails","SupplierPaymentDetails","isAcknowledged","customerSupport","SupportContacts","operationsSupport","accountsDepartment","defaultSettings","SupplierDefaultSettings","notesToClientPostBooking","bankName","accountNumber","ibanNumber","swiftCode","bankBranchAddress","primaryName","secondaryName","emergencyName","primaryPhone","secondaryPhone","emergencyPhone","primaryEmail","secondaryEmail","emergencyEmail","SupplierApiService","getMy","update","supplier","updates","CountriesApiService","COUNTRIES_OPTIONS_RESPONSE","countriesOptions","BookingAgent","numAdults","numChildren","numInfants","numFoc","grossSales","agencyReceivable","agentId","staffAgentId","pickUpTimeStart","pickUpTimeEnd","notes","canDownloadTickets","AgencyAreaApiService","addBooking","getBookingDetails","getNewBookingTours","getNewBookingGroupInfo","groupInfoId","getNewBookingArrivals","getNewBookingOfferPrice","_x12","_x13","_x14","getNewBookingHotels","_ref7","_callee7","_context7","_x15","getBookingsAgents","_ref8","_callee8","_context8","_x16","getCommissionAgents","_ref9","_callee9","_context9","_x17","getBookingsHotels","_ref10","_callee10","_context10","_x18","getCommissionHotels","_ref11","_callee11","_context11","_x19","getBookingsOffers","_ref12","_callee12","_context12","_x20","getCommissionOffers","_ref13","_callee13","_context13","_x21","getCommissions","_ref14","_callee14","request","_context14","query","_x22","_x23","getBookings","_ref15","_callee15","_context15","_x24","_x25","ArrivalGroupInfoCommunicationStatus","ArrivalGroupStatus","OfferAgent","RECEIVE_AGENCY_COMMISSIONS","RECEIVE_AGENT_AGENTS","RECEIVE_AGENT_OFFERS","RECEIVE_AGENT_HOTELS","offersHash","hotels","hotelsHash","agents","agentsHash","AgentOfferPrice","pricePerAdultRec","pricePerChildRec","pricePerTripRec","commission","netPricePerAdult","netPricePerChild","netPricePerTrip","totalPublishRateUsd","adults","children","totalPublishRate","totalNetPriceUsd","totalNetPrice","NewBookingArrival","paxId","phoneNumbers","TimeSlotNewBookingModel","isOnDay","weekDay","w","isAnyTime","OfferNewBookingModel","citiesIds","TourNewBookingModel","o","BOOKING_DETAILS_CLEAR","BOOKING_DETAILS_SET","RECEIVE_AGENT_BOOKINGS","RECEIVE_AGENCY_BOOKINGS_AGENTS","RECEIVE_AGENCY_BOOKINGS_OFFERS","RECEIVE_AGENCY_BOOKINGS_HOTELS","RECEIVE_AGENT_NEWBOOKING_HOTELS","RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE","RECEIVE_AGENT_NEWBOOKING_TOURS","RECEIVE_AGENT_NEWBOOKING_ARRIVALS","_fetchTask$Content","hotelsNewBooking","newBookingArrivals","toursNewBooking","ArrivalGroupInfoHotelModel","roomNumber","ArrivalGroupInfoModel","arrivals","Pending","numberOfBookings","communicationStatus","phones","phone","slice","join","_obj$arrivals$map","_obj$arrivals","ArrivalModel","h","GetStatusOptions","Purchased","toString","Deleted","s","cs","ArrivalGroupStatusDescriptions","ArrivalStatusStyles","_ArrivalGroupStatusDe","_defineProperty","_ArrivalStatusStyles","backgroundColor","color","ArrivalMeeting","staffId","staffName","timeStart","timeEnd","timeDisplay","fromNumber","tdHotelId","hotelName","tdAgencyId","tdAgencyName","arrivalDate","arrivalTime","departureDate","departureTime","departureTimeString","touristName","birthDate","touristPhone","touristEmail","touristCountry","roomType","accType","mealType","arrivalTerminal","arrivalFlight","arrivalTransport","departureFlight","departureTerminal","departureTransport","agencyId","hotelConfNumber","agentConfNumber","groupInfo","isManuallyEntered","arrivalListId","arrivalListName","meetings","_this$groupInfo$hotel","_this$groupInfo","_this$groupInfo$hotel2","_this$groupInfo$hotel3","_this2","gi","_this$groupInfo$notes","_this$groupInfo2","_this$groupInfo$phone","_this$groupInfo3","age","AgeNumber","diff","btoa","StaffModel","email","ArrivalsApiService","getSales","_data$Content$map","_data$Content","saveGroupInfo","_data$Content$groupId","_data$Content2","_data$Content$entitie","_data$Content3","_data$Content4","A_SET_SALES","A_SET_HOTELS","A_UPDATE_GROUP_INFO","A_SET_ARRIVALS","sales","_data$reduce","console","log","_slicedToArray","RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS","reducers","auth","AuthStore","reducer","state","action","_objectSpread","agencyCommissions","incomingAction","agencyBookings","newBookingOfferPrices","bookingDetails","account","_state$offer$tourId","_state$offer","_state$offer2","defaultLabelSort","toursRecommendedFor","global","setItem","stringify","updateStorage","counter","count","languages","LanguagesStore","notifications","MediaStore","loading","Loading","tickets","externalTimeSlotsOptionsNew","apiProvidersProductsTimeSlots","externalOffersOptionsNew","some","countries","SettingsStore","autocomplete","Version","styled","span","_templateObject","_taggedTemplateLiteral","Header","_auth$authData","_auth$authData2","_auth$authData3","_auth$authData4","_auth$authData5","_auth$authData6","_auth$authData7","_auth$authData8","_auth$authData9","_auth$authData10","_React$useState","React","_React$useState2","isOpened","setIsOpened","_React$useState3","_React$useState4","showMobileMenu","setShowMobileMenu","useSelector","useDispatch","close","toggle","ref","useOnCloseElement","citiesActions","requestLanguages","className","Link","to","src","alt","width","height","title","onClick","method","placeholder","isAuthorized","authData","isInRole","Roles","ArrivalsManager","Agent","Admin","HeaderMenuItemWithChildren","Accounts","Operations","Editor","href","signOut","loadingState","document","body","style","overflow","LoadingSpinner","props","LayoutWrapper","NotificationsWrapper","UnathorizedPage","Container","PrivateRoute","Component","component","Route","exact","render","componentProps","roles","role","arole","Redirect","pathname","Home","history","useLanguagesManageTable","selector","useEffect","isOffers","useLanguages","ToursPage","languagesOptions","setLanguagesOptions","toursOptions","setToursOptions","_React$useState5","_React$useState6","showDeleted","setShowDeleted","setFiltersOptions","toggleShowDeleted","getTours","ToursState","DataTable","onRefreshData","sortField","sortType","dataTable","columns","DataTableColumnModel","displayName","sortable","filterType","FilterType","MULTISELECT","filterOptions","filterFieldName","customRenderer","customFilterFunc","filterValue","f","_languages$languagesH","_languages$languagesH2","languagesHash","PInTableList","SELECT","DataTableModel","fileName","customActions","DataTableModelCustomAction","initDataTable","isFullScreenable","isFullScreen","LoadingSection","SectionTitle","parseId","toLowerCase","VideoContainer","div","VideoDisplay","ReactPlayer","CancellationPolicy","percents","Cancellations","setEditCallback","setSetEditCallback","isData","cancellations","FormFieldWrapper","hideClearFilter","hideToolbar","isHidden","embededScreen","setEditFromParentCallback","callback","isEditable","editType","InputType","Number","editStep","onEdit","c","checkDuplicates","onChange","onDelete","fixedHeight","FieldFooter","Tooltip","text","Buttons","ButtonSmallGreen","useSupplier","supplierActions","I","NoDefaultValue","richText","target","containerStyle","MapsPlaceIdPicker","isLoaded","useJsApiLoader","googleMapsApiKey","apiKey","libraries","setIsLoading","isGooglePlaceId","setIdGooglePlaceId","setMap","_React$useState7","lat","lng","_React$useState8","userLocation","setUserLocation","setUserLocationFromNavigator","position","coords","latitude","longitude","window","google","maps","center","LatLng","setCenter","navigator","geolocation","getCurrentPosition","onLoad","onUnmount","placeId","ToggleFormField","readOnly","placeIdLabel","validationError","Autocomplete","autocompleteParam","onPlaceChanged","place","getPlace","place_id","geometry","location","alert","GoogleMap","mapContainerStyle","e","zoom","TourFaqModel","question","answer","TourFormFaq","newFaq","indexUp","onFaqUp","indexDown","onFaqDown","_props$tour","ItineraryModel","stops","TourItineraryForm","newItenerary","onAddEditItinerary","itinerary","onEditItenerary","newItinerary","onItineraryUp","onItineraryDown","TourFormTab","TripAdvisorLocationIdPicker","isTripAdvisorId","setIsTripAdvisorId","_e$target$value","match","getLocationIdFromUrl","ItineraryStopModel","itineraryId","time","minutesToTimeString","timeStringToMinutes","ItineraryDesigner","_useForm","useForm","register","handleSubmit","errors","formState","control","getValues","setValue","watch","reset","setError","onAddStop","Grid","onSubmit","Row","Col","IdFormField","TextFormField","isRequired","message","defaultValue","nameof","required","padding","fNames","timeDescription","timeEndDescription","getStopsFieldsNames","onDeleteStop","onStopUp","onStopDown","Controller","field","hidden","TextAreaField","TimePickerFormFieldController","MapsLocation","values","MapsLocationPicker","GLOBAL_SETTINGS","GOOGLE_MAPS_API_KEY","StickySaveButton","TourForm","_tour$videoUrl","_tour$nameDisplay","_tour$url","_tour$isDefaultNotesT","_tour$isDefaultFaq","_tour$isDefaultTermsA","_tour$isDefaultNotesT2","_tour$photos","_tour$faqs","_tour$itineraries","_tour$locationAddress","_tour$id2","iteneraryEdit","setIteneraryEdit","Basic","tab","setTab","toursCategoriesOptions","toursRecommendedForOptions","toursCategoriesActions","toursRecommendedForActions","slugify","isAutoUrl","setIsAutoUrl","nameDisplayUrl","setPhotos","_React$useState9","_React$useState10","setFaq","_React$useState11","_React$useState12","setItineraries","_React$useState13","_React$useState14","setLocation","_React$useState15","_React$useState16","showDeletedOffers","setShowDeletedOffers","_React$useState17","_React$useState18","cancellation","setCancellation","_React$useState19","_React$useState20","setHeroImageId","params","toursActions","_tour$photos2","_tour$faqs2","_tour$itineraries2","_tour$locationAddress2","toggleShowDeletedOffers","seoPageDescr","nameInternalError","nameDisplayError","urlError","languageError","tourCategoriesError","recommendedForError","basicTabErrors","mediaWarning","tabIconStyle","marginLeft","Location","Terms","Media","Itinerary","Faq","Seo","Tickets","subLabel","SelectFormFieldController","isNotSearchable","rules","validate","fontSize","WysiwygFieldController","toolTipHtml","isMultiple","ToggleButtonsSmallFieldController","yesText","isDefaultNotesToClientPostBooking","noText","disabled","toolTip","apiCallWrapperNoDispatch","rating","ratingsCount","ErrorTitle","_res$Content3","_res$Content4","MediaSelector","onHeroImageChanged","photo","selected","onSelectPhotos","newPhotos","SeoLen","_offer$validPeriod$pr","_offer$validPeriod","_offer$validPeriod$pr2","_offer$validPeriod2","_offer$validPeriod$pr3","_offer$validPeriod3","_offer$validPeriod$pe","_offer$validPeriod4","_offer$validPeriod4$p","_tour$id","headerGroups","Title","ColSpan","customRowClassFunction","initOffersDataTable","Popup","onClose","LogMeInPage","logMeIn","GenericFilterModelBase","FieldName","GenericFilterModelText","_GenericFilterModelBa","Value","GenericFilterModelMultiSelect","_GenericFilterModelBa2","_super2","_len2","_key2","Values","BookingsOperationsFilter","_GenericFilterModel","from","startOf","clone","GenericFilterModel","page","textFilters","multiSelectFilters","fv","MultiSelectFilters","TEXT","BookingsPage","setFilter","BookingsState","DATERANGE","showSum","onSortChanged","SortField","SortType","onClearFilter","onPageChange","BookingsRequest","search","dateStart","dateEnd","download","require","Bookings","_bookings$entities","_bookings$pagingInfo","AgencyBookingsState","initFilter","setRequest","getData","onFilterValueChange","onShowMy","v","downloadTickets","apiCallWrapperNoDispatchBlob","FileName","newFilter","FilterValuesWrapper","dataTableModel","dataTableColumns","TEXTNUMBER","customExcelRenderer","_agentsHash$get$name","_agentsHash$get","_agentsHash$get2","_agentsHash$get$name2","_agentsHash$get3","_agentsHash$get4","isExportExcel","textAlign","toFixed","_filter$get$value","_filter$get","CheckBox","isChecked","r","Commissions","_commissions$entities","_commissions$pagingIn","commissions","AgencyCommissionsState","generateRandomInteger","range","Math","floor","random","generateRandomString","characters","charactersLength","charAt","n","generateArrayOfN","multiselectTest","TestTableFullScreenPage","numColumns","setNumColumns","DATEPICKER","multi","select","Controls","htmlFor","display","checked","min","max","left","tabIndex","xmlns","viewBox","transform","OfferForm","_offer$photos","ticketsOptions","timeSlotsOptions","level","lang","defaultValues","_offer$photos2","ScrollToTop","ticketId","ticketsActions","timeSlotsActions","ContainerWithPadding","NumberFormField","ToggleFieldController","newPhoto","booleanOptions","TimeSlots","groupsOptions","tsGroup","offersOptions","daysOptions","getTimeSlots","sortFunc","obj1","obj2","getDaysNames","indexOf","hash","TimeSlotsForm","pickUpTimesOptions","externalOffersMap","externalTimeSlotsMap","getDaysNamesOptions","pickUpTimesActions","externalSlots","onAddTimeSlot","timeSlotTypesOptioons","OnRequest","timeSlotTimeTypesOptions","_ts","encode","SetTimeType","_externalTimeSlotsMap","_externalTimeSlotsMap2","startTime","endTime","availabilityType","getTimeSlotFieldsNames","externalTimeSlotsOptionsForChild","selectedProviderId","selectedProdiverOption","parseFloat","FormFieldHidable","isDifferentProducts","codeType","_externalTimeSlotsMap3","_externalTimeSlotsMap4","PickUpTimes","PickUpTimeValue","PickUpTimeRegionValue","_PickUpTimeValue","isActive","PickUpTimeHotelValue","_PickUpTimeValue2","PickUpTimeFormMassEdit","PopupFormWrapper","clearSelectedHotelsCallback","PickUpTimeForm","showOverridenHotels","setShowOverridenHotels","showDeactivatedRegions","setShowDeactivatedRegions","showHotelsPickUps","setShowHotelsPickUps","regionsPickUps","setRegionsPickUps","hotelsPickUps","setHotelsPickUps","selectedHotels","setSelectedHotels","isMassSetHotels","setIsMassSetHotels","_pickUpTime$hotelsPic","regionsActions","hotel","_regions$find$name","_regions$find","_cities$find$label","_cities$find","_cities$find2","hotelsPickUpsDisplay","regionsPickUpsDisplay","regionsDataTableModel","Time","Checkbox","initRegionsDataTable","hotelsDataTableModel","regionsOptions","initHotelsDataTable","hp","onSelectedChanged","selectIdField","setSelectClearFromParentCallback","urls","countriesActions","useCountriesOptions","SelectFormField","FormFieldLabel","StickySaveButtonTabs","setCancellations","_supplier$cancellatio","AdminLayout","ArrivalsDetailsFilter","inHouse","ArrivalsListPage","SetFilter","onInHouseFilterChanged","getArrivals","ArrivalsState","getHotels","salesOptions","GetMultiselectFilterValue","customCellStyleFunction","_obj$groupInfo$number","_obj$groupInfo","StatusStyle","Status","CommunicationStatus","GetStatusOptionsFilter","StatusDescription","_obj$groupInfo$number2","_obj$groupInfo2","GetDateRangeFilterValue","dateTimeDisplay","GetTextFilterValue","_hotelsHash$get$name","_hotelsHash$get","_hotelsHash$get$name2","_hotelsHash$get2","Text","LoginPage","signIn","signInError","autoComplete","password","LogoutPage","NewBookingAgent","arrivalId","timeSlotId","infants","paidOrig","collectOrig","voucherNumber","TdTimeSelect","td","BookingForm","_offer$childAge","_prices$offerPrice","_offer$childAge2","_prices$offerPrice2","_offer$infantAge","_prices$offerPrice3","_errors$guestName","useFormState","timeSlotIdWithTime","col","colOrig","isNaN","t","_useState","useState","_useState2","setOffersOptions","offerPrices","op","setOffer","isoWeekday","resTs","option","moreDates","selDate","daysBefore","dates","resDates","_timeSlots$some","isOfferAvailable","isAvailable","toDate","tso","selectedTimeSlots","setSelectedTimeSlots","arrivalsOptions","showAll","getGroupInfo","onChangeGuest","onSelectDateFromCarousel","selTs","prices","_offerPrice$totalNetP","_offerPrice$totalNetP2","_offerPrice$totalPubl","_offerPrice$totalPubl2","offerPrice","publishRateUsd","publishRate","payable","payableUsd","DateFormFieldController","disabledDays","before","NumPeopleInput","tooltip","price","minValue","hidePrice","_offer","oid","_offerId","colSpan","DateCarousel","onSelectDate","Button","active","onClickHandler","iconLeft","hideIfNoOptions","isClearable","onClear","onInputChanged","isAutoComplete","step","LabelFormField","BookingConfirm","booking","bookingId","setBookingId","bookingActions","Routes","agentBookings","downloadInvoice","downloadVoucher","Modulbank","Layout","fallback","AgentBookingForm","AgentBookingConfirm","AgentBookings","agentBookingsTemplate","AgentCommissions","_process$env$REACT_AP","process","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","configureStore","globalActions","initialize","listen","ReactDOM","Provider","ConnectedRouter","App","getElementById"],"mappings":"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","file":"static/js/main.b2ddb847.chunk.js","sourcesContent":["import moment from 'moment'\r\nimport { ConversionType, CurrencyConverter, guid, round } from 'traveldesk-ui'\r\nimport { dateFormatNoTime } from '../utils/dateFormatNoTime'\r\nimport { AccountSettingsModel } from './AccountSettingsModel'\r\nexport enum PricingPeriodModelPriceType {\r\n BaseCurrencyWithVat,\r\n BaseCurrency,\r\n SecCurrencyWithVat,\r\n SecCurrency\r\n}\r\nexport const PricesTypes = [\r\n \"Adult\",\r\n \"Child\",\r\n \"Trip\"\r\n]\r\n\r\nexport const CurrenciesFieldNames = [\r\n \"BaseCurrency\",\r\n \"Usd\"\r\n]\r\nclass PricePer {\r\n recBaseCurWithVat: number = 0\r\n recBaseCur: number = 0\r\n recSecCurWithVat: number = 0\r\n recSecCur: number = 0\r\n netBaseCurWithVat?: number\r\n netBaseCur?: number\r\n netSecCurWithVat?: number\r\n netSecCur?: number\r\n dropNetPrices() {\r\n this.netBaseCurWithVat = undefined\r\n this.netBaseCur = undefined\r\n this.netSecCurWithVat = undefined\r\n this.netSecCur = undefined\r\n }\r\n updateNetPrices(comm?: number) {\r\n if (comm) {\r\n this.netBaseCurWithVat = this.recBaseCurWithVat - this.recBaseCurWithVat * comm / 100\r\n this.netBaseCur = this.recBaseCur - this.recBaseCur * comm / 100\r\n this.netSecCurWithVat = this.recSecCurWithVat - this.recSecCurWithVat * comm / 100\r\n this.netSecCur = this.recSecCur - this.recSecCur * comm / 100\r\n }\r\n else {\r\n this.netBaseCurWithVat = undefined\r\n this.netBaseCur = undefined\r\n this.netSecCurWithVat = undefined\r\n this.netSecCur = undefined\r\n }\r\n }\r\n}\r\nconst PriceTypePostfixes = [\r\n \"BaseCurrencyWithVat\", \"BaseCurrency\", \"UsdWithVat\", \"Usd\"\r\n]\r\nexport default class OfferValidPeriod {\r\n public static Create(obj: OfferValidPeriod, tax: number, taxK: number, convRate: number, convType: ConversionType, defaultCommission: number) {\r\n return Object.assign(new OfferValidPeriod(tax, taxK, convRate, convType, defaultCommission), obj, {\r\n periodStart: moment.utc(obj.periodStart),\r\n periodEnd: obj.periodEnd ? moment.utc(obj.periodEnd) : undefined\r\n })\r\n }\r\n public static CreateNew(accountSettings: AccountSettingsModel) {\r\n return Object.assign(new OfferValidPeriod(\r\n accountSettings.totalTaxAmount, accountSettings.totalTaxK,\r\n accountSettings.currencyConversionSettings.convRate, accountSettings.currencyConversionSettings.convType,\r\n accountSettings.defaultCommission))\r\n }\r\n\r\n id: number = 0\r\n offerId: number = 0\r\n minimumAdvancedPayment?: number\r\n periodStart: moment.Moment = moment.utc()\r\n periodEnd?: moment.Moment = moment.utc()\r\n //#region Rec Prices Base Currency\r\n pricePerAdultRecBaseCurrencyWithVat: number = 0\r\n pricePerAdultRecBaseCurrency: number = 0\r\n pricePerChildRecBaseCurrencyWithVat: number = 0\r\n pricePerChildRecBaseCurrency: number = 0\r\n pricePerTripRecBaseCurrencyWithVat: number = 0\r\n pricePerTripRecBaseCurrency: number = 0\r\n //#endregion\r\n //#region Rec Prices Sec Currency\r\n pricePerAdultRecUsdWithVat: number = 0\r\n pricePerAdultRecUsd: number = 0\r\n pricePerChildRecUsdWithVat: number = 0\r\n pricePerChildRecUsd: number = 0\r\n pricePerTripRecUsdWithVat: number = 0\r\n pricePerTripRecUsd: number = 0\r\n //#endregion\r\n defaultNetPrice(priceFor: string, priceType: PricingPeriodModelPriceType) {\r\n const priceTypePostfix = PriceTypePostfixes[priceType]\r\n const recPrice = this.getValueByFieldName(`pricePer${priceFor}Rec${priceTypePostfix}`)\r\n return recPrice - (recPrice * this.defaultCommission / 100)\r\n }\r\n private getValueByFieldName(fieldName: string) {\r\n return this[fieldName as keyof this] as unknown as T\r\n }\r\n private setValueByFieldName(fieldName: string, value: any) {\r\n this[fieldName as keyof this] = value as any\r\n }\r\n setPrices(priceFor: string, p: PricePer) {\r\n this.setValueByFieldName(`pricePer${priceFor}RecBaseCurrencyWithVat`, round(p.recBaseCurWithVat, 4))\r\n this.setValueByFieldName(`pricePer${priceFor}RecBaseCurrency`, round(p.recBaseCur, 4))\r\n this.setValueByFieldName(`pricePer${priceFor}RecUsdWithVat`, round(p.recSecCurWithVat, 4))\r\n this.setValueByFieldName(`pricePer${priceFor}RecUsd`, round(p.recSecCur, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrencyWithVat`, round(p.netBaseCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrency`, round(p.netBaseCur, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}UsdWithVat`, round(p.netSecCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}Usd`, round(p.netSecCur, 4))\r\n }\r\n setNetPrices(priceFor: string, p: PricePer) {\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrencyWithVat`, round(p.netBaseCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrency`, round(p.netBaseCur, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}UsdWithVat`, round(p.netSecCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}Usd`, round(p.netSecCur, 4))\r\n const recBaseCurWithVat = this.getValueByFieldName(`pricePer${priceFor}RecBaseCurrencyWithVat`)\r\n if (p.netBaseCurWithVat) {\r\n const commAmmount = recBaseCurWithVat - p.netBaseCurWithVat\r\n const comm = (commAmmount / recBaseCurWithVat) * 100\r\n this.setValueByFieldName(`netCommissionPer${priceFor}`, round(comm, 4))\r\n }\r\n else {\r\n this.setValueByFieldName(`netCommissionPer${priceFor}`, undefined)\r\n }\r\n }\r\n setRecPriceBaseCurrencyWithVat(value: number, priceFor: string) {\r\n // Base cur with vat\r\n const p = new PricePer()\r\n p.recBaseCurWithVat = value\r\n p.recBaseCur = value / this.vatK\r\n p.recSecCurWithVat = CurrencyConverter.convert(value, this.convRate, this.convType)\r\n p.recSecCur = CurrencyConverter.convert(p.recBaseCur, this.convRate, this.convType)\r\n const comm = this.getValueByFieldName(`netCommissionPer${priceFor}`)\r\n p.updateNetPrices(comm)\r\n this.setPrices(priceFor, p)\r\n }\r\n setRecPriceBaseCurrency(valueNoVat: number, priceFor: string) {\r\n // Base cur\r\n const p = new PricePer()\r\n p.recBaseCurWithVat = valueNoVat * this.vatK\r\n p.recBaseCur = valueNoVat\r\n p.recSecCur = CurrencyConverter.convert(valueNoVat, this.convRate, this.convType)\r\n p.recSecCurWithVat = p.recSecCur * this.vatK\r\n const comm = this.getValueByFieldName(`netCommissionPer${priceFor}`)\r\n p.updateNetPrices(comm)\r\n this.setPrices(priceFor, p)\r\n }\r\n\r\n\r\n\r\n setRecPriceSecCurrencyWithVat(value: number, priceFor: string) {\r\n // Sec Cur With Vat\r\n const p = new PricePer()\r\n p.recSecCurWithVat = value\r\n p.recSecCur = value / this.vatK\r\n p.recBaseCurWithVat = CurrencyConverter.convertBack(value, this.convRate, this.convType)\r\n p.recBaseCur = CurrencyConverter.convertBack(p.recSecCur, this.convRate, this.convType)\r\n const comm = this.getValueByFieldName(`netCommissionPer${priceFor}`)\r\n p.updateNetPrices(comm)\r\n this.setPrices(priceFor, p)\r\n }\r\n\r\n setRecPriceSecCurrency(valueNoVat: number, priceFor: string) {\r\n // Sec Cur \r\n const p = new PricePer()\r\n p.recSecCur = valueNoVat\r\n p.recSecCurWithVat = valueNoVat * this.vatK\r\n p.recBaseCurWithVat = CurrencyConverter.convertBack(p.recSecCurWithVat, this.convRate, this.convType)\r\n p.recBaseCur = CurrencyConverter.convertBack(valueNoVat, this.convRate, this.convType)\r\n const comm = this.getValueByFieldName(`netCommissionPer${priceFor}`)\r\n p.updateNetPrices(comm)\r\n this.setPrices(priceFor, p)\r\n }\r\n\r\n setCommission(comm: number | undefined, priceFor: string) {\r\n if (comm) {\r\n const recPriceBaseCurWithVat = this.getValueByFieldName(`pricePer${priceFor}RecBaseCurrencyWithVat`)\r\n const recPriceBaseCur = this.getValueByFieldName(`pricePer${priceFor}RecBaseCurrency`)\r\n const recPriceSecCurWithVat = this.getValueByFieldName(`pricePer${priceFor}RecUsdWithVat`)\r\n const recPriceSecCur = this.getValueByFieldName(`pricePer${priceFor}RecUsd`)\r\n const netPriceBaseCurWithVat = recPriceBaseCurWithVat - recPriceBaseCurWithVat * comm / 100\r\n const netPriceBaseCur = recPriceBaseCur - recPriceBaseCur * comm / 100\r\n const netPriceSecCurWithVat = recPriceSecCurWithVat - recPriceSecCurWithVat * comm / 100\r\n const netPriceSecCur = recPriceSecCur - recPriceSecCur * comm / 100\r\n this.setValueByFieldName(`netCommissionPer${priceFor}`, comm)\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrencyWithVat`, round(netPriceBaseCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrency`, round(netPriceBaseCur, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}UsdWithVat`, round(netPriceSecCurWithVat, 4))\r\n this.setValueByFieldName(`netPricePer${priceFor}Usd`, round(netPriceSecCur, 4))\r\n }\r\n else {\r\n this.setValueByFieldName(`netCommissionPer${priceFor}`, undefined)\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrencyWithVat`, undefined)\r\n this.setValueByFieldName(`netPricePer${priceFor}BaseCurrency`, undefined)\r\n this.setValueByFieldName(`netPricePer${priceFor}UsdWithVat`, undefined)\r\n this.setValueByFieldName(`netPricePer${priceFor}Usd`, undefined)\r\n }\r\n }\r\n\r\n netCommissionPerAdult?: number\r\n netCommissionPerChild?: number\r\n netCommissionPerTrip?: number\r\n netPricePerAdultUsd?: number\r\n netPricePerAdultUsdWithVat?: number\r\n netPricePerChildUsd?: number\r\n netPricePerChildUsdWithVat?: number\r\n netPricePerTripUsd?: number\r\n netPricePerTripUsdWithVat?: number\r\n netPricePerAdultBaseCurrency?: number\r\n netPricePerAdultBaseCurrencyWithVat?: number\r\n netPricePerChildBaseCurrency?: number\r\n netPricePerChildBaseCurrencyWithVat?: number\r\n netPricePerTripBaseCurrency?: number\r\n netPricePerTripBaseCurrencyWithVat?: number\r\n\r\n setNetPriceBaseCurWithVat(value: number | undefined, priceFor: string) {\r\n const p = new PricePer()\r\n if (value) {\r\n p.netBaseCurWithVat = value\r\n p.netBaseCur = value / this.vatK\r\n p.netSecCurWithVat = CurrencyConverter.convertBack(value, this.convRate, this.convType)\r\n p.netSecCur = CurrencyConverter.convertBack(p.recSecCur, this.convRate, this.convType)\r\n }\r\n else {\r\n p.dropNetPrices()\r\n }\r\n this.setNetPrices(priceFor, p)\r\n\r\n }\r\n setNetPriceBaseCur(valueNoVat: number | undefined, priceFor: string) {\r\n const p = new PricePer()\r\n if (valueNoVat) {\r\n p.netBaseCurWithVat = valueNoVat * this.vatK\r\n p.netBaseCur = valueNoVat\r\n p.netSecCur = CurrencyConverter.convertBack(valueNoVat, this.convRate, this.convType)\r\n p.netSecCurWithVat = p.netSecCur * this.vatK\r\n }\r\n else {\r\n p.dropNetPrices()\r\n }\r\n this.setNetPrices(priceFor, p)\r\n }\r\n setNetPriceSecCurWithVat(value: number | undefined, priceFor: string) {\r\n const p = new PricePer()\r\n if (value) {\r\n p.netSecCurWithVat = value\r\n p.netSecCur = value / this.vatK\r\n p.netBaseCurWithVat = CurrencyConverter.convertBack(value, this.convRate, this.convType)\r\n p.netBaseCur = CurrencyConverter.convertBack(p.netSecCur, this.convRate, this.convType)\r\n }\r\n else {\r\n p.dropNetPrices();\r\n }\r\n this.setNetPrices(priceFor, p)\r\n }\r\n setNetPriceSecCur(valueNoVat: number | undefined, priceFor: string) {\r\n const p = new PricePer()\r\n if (valueNoVat) {\r\n p.netSecCur = valueNoVat\r\n p.netSecCurWithVat = valueNoVat * this.vatK\r\n p.netBaseCurWithVat = CurrencyConverter.convertBack(p.netSecCurWithVat, this.convRate, this.convType)\r\n p.netBaseCur = CurrencyConverter.convertBack(valueNoVat, this.convRate, this.convType)\r\n }\r\n else {\r\n p.dropNetPrices()\r\n }\r\n this.setNetPrices(priceFor, p)\r\n }\r\n\r\n\r\n guid: string\r\n vat: number\r\n vatK: number\r\n convRate: number\r\n convType: ConversionType\r\n defaultCommission: number\r\n constructor(vat: number, vatK: number, convRate: number, convType: ConversionType, defaultCommission: number) {\r\n const d = new Date();\r\n this.id = 0;\r\n this.vat = vat\r\n this.vatK = vatK\r\n this.convRate = convRate\r\n this.convType = convType\r\n this.defaultCommission = defaultCommission;\r\n this.periodStart = moment(new Date(d.getFullYear(), d.getMonth(), d.getDate(), 12, 0, 0));\r\n this.periodEnd = moment(new Date(d.getFullYear(), d.getMonth() + 1, d.getDate(), 12, 0, 0));\r\n this.guid = guid();\r\n }\r\n toString() {\r\n return `${this.periodStart.format(dateFormatNoTime)}-${this.periodEnd?.format(dateFormatNoTime)}`\r\n }\r\n}\r\n","import { Action, Reducer } from 'redux'\r\nimport { AppThunkAction } from '.'\r\nimport { LoadingStore, Localization } from 'traveldesk-ui'\r\n\r\nexport interface State {\r\n city?: number\r\n path: string\r\n}\r\nconst SET_GLOBAL_PATH = 'A_SET_GLOBAL_PATH'\r\ninterface SetGlobalPath {\r\n type: 'A_SET_GLOBAL_PATH'\r\n path: string\r\n}\r\nconst SET_GLOBAL_CITY = 'A_SET_GLOBAL_CITY'\r\ninterface SetGlobalCityAction {\r\n type: 'A_SET_GLOBAL_CITY'\r\n city: number\r\n}\r\n\r\ntype KnownAction = SetGlobalCityAction | SetGlobalPath\r\n\r\nexport const actionCreators = {\r\n initialize: (): AppThunkAction => async (dispatch, getState) => {},\r\n\r\n setPath: (path: string) => ({ type: SET_GLOBAL_PATH, path }),\r\n setCity: (city: number) => ({ type: SET_GLOBAL_CITY, city } as SetGlobalCityAction),\r\n}\r\nconst storageState = localStorage ? localStorage.getItem('settings') : undefined\r\nconst unloadedState: State = storageState\r\n ? Object.assign(JSON.parse(storageState), { locale: new Localization.Localization() })\r\n : { city: undefined, language: 'en', locale: new Localization.Localization() }\r\nconst updateStorage = (state: State) => {\r\n if (localStorage) {\r\n localStorage.setItem('settings', JSON.stringify(state))\r\n }\r\n}\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case SET_GLOBAL_PATH:\r\n return {\r\n ...state,\r\n path: action.path,\r\n }\r\n\r\n case SET_GLOBAL_CITY:\r\n state = {\r\n ...state,\r\n city: action.city,\r\n }\r\n updateStorage(state)\r\n return state\r\n default:\r\n return state\r\n }\r\n}\r\n","import { Action, Reducer } from 'redux'\r\nimport { AppThunkAction } from './'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\nimport { apiCallWrapper } from 'traveldesk-ui'\r\n\r\nexport interface State {\r\n citiesOptions: SelectOptionModel[]\r\n}\r\n\r\nconst RECEIVE_CITIES_OPTIONS = 'A_RECEIVE_CITIES_OPTIONS'\r\ninterface ReceiveCitiesOptionsAction {\r\n type: 'A_RECEIVE_CITIES_OPTIONS'\r\n payload: SelectOptionModel[]\r\n}\r\n\r\ntype KnownAction = ReceiveCitiesOptionsAction\r\n\r\nexport const actionCreators = {\r\n requestCitiesOptions: (): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState()\r\n if (appState && appState.cities && appState.cities.citiesOptions.length === 0) {\r\n const result = await apiCallWrapper('/api/cities/options', 'GET', dispatch)\r\n if (result.IsOk) {\r\n dispatch({ type: RECEIVE_CITIES_OPTIONS, payload: result.Content?.sort((a, b) => a.label > b.label ? 1 : -1) || [] })\r\n }\r\n }\r\n },\r\n}\r\n\r\nconst unloadedState: State = { citiesOptions: [] as SelectOptionModel[] }\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_CITIES_OPTIONS:\r\n return {\r\n citiesOptions: action.payload,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","export const dateFormatNoTime = 'DD.MM.YYYY'\r\n","export default class OfferTicketType {\r\n constructor(ticketTypeId?: number, type?: OffersTicketTypesType) {\r\n this.ticketTypeId = ticketTypeId || 0\r\n this.type = type ?? OffersTicketTypesType.Adult\r\n }\r\n ticketTypeId: number\r\n type: OffersTicketTypesType\r\n}\r\nexport enum OffersTicketTypesType {\r\n Adult,\r\n Child,\r\n Infant,\r\n}\r\n","\r\nexport const BookingTypeOptions = [\r\n { value: 0, label: \"On Request\" },\r\n { value: 1, label: \"Live Book\" },\r\n { value: 2, label: \"Ticket Only\" }\r\n]\r\nexport enum BookingType {\r\n OnRequest, LiveBook, TicketOnly\r\n}","import { Photo } from 'traveldesk-ui'\r\nimport OfferValidPeriod from './OfferValidPeriod'\r\nimport OfferTicketType, { OffersTicketTypesType } from './OfferTicketType'\r\nimport { Localization } from 'traveldesk-ui'\r\nimport { AccountSettingsModel } from './AccountSettingsModel'\r\nimport { BookingType } from './OfferBookingType'\r\n\r\nexport const offerBookingTypeOptions = (lang: Localization.Localization) => [\r\n { value: 0, label: lang.getString('On request') },\r\n { value: 1, label: lang.getString('Live book') },\r\n { value: 2, label: lang.getString('Ticket only') },\r\n\r\n]\r\nexport default class Offer {\r\n\r\n constructor(tourId: number) {\r\n this.tourId = tourId\r\n }\r\n public static Create(obj: Offer, tourId: number, accountSettings: AccountSettingsModel) {\r\n const as = accountSettings\r\n return Object.assign(new Offer(tourId), obj, {\r\n tourId,\r\n validPeriods: obj.validPeriods?.map((vp) => OfferValidPeriod.Create(\r\n vp,\r\n as.totalTaxAmount, as.totalTaxK,\r\n as.currencyConversionSettings.convRate, as.currencyConversionSettings.convType,\r\n as.defaultCommission)) ?? [],\r\n })\r\n }\r\n id: number = 0\r\n tourId: number = 0\r\n nameInternal: string = ''\r\n nameDisplay: string = ''\r\n minNumOfPeople: number = 1\r\n maxNumOfPeople?: number\r\n numberOfHours: number = 0\r\n isTicketsRequired: boolean = false\r\n minimumAdvancedPayment?: number\r\n origin: number[] = []\r\n validPeriods: OfferValidPeriod[] = []\r\n description: string = ''\r\n heroImageId?: number = undefined\r\n photos: Photo[] = []\r\n childrenAllowed: boolean = false\r\n childAge: number = 12\r\n infantsAllowed: boolean = false\r\n infantAge: number = 3\r\n isDirectReporting: boolean = false\r\n allowDirectCollection: boolean = false\r\n isAppendTransactionFeeB2b: boolean = false\r\n get ticketTypeAdult(): number | undefined {\r\n return this.ticketsTypes.find((x) => x.type == OffersTicketTypesType.Adult)?.ticketTypeId\r\n }\r\n set ticketTypeAdult(value: number | undefined) {\r\n this.ticketsTypes = this.ticketsTypes.filter((x) => x.type != OffersTicketTypesType.Adult)\r\n if (value) {\r\n this.ticketsTypes = this.ticketsTypes.concat(new OfferTicketType(value, OffersTicketTypesType.Adult))\r\n }\r\n }\r\n get ticketTypeChild(): number | undefined {\r\n return this.ticketsTypes.find((x) => x.type == OffersTicketTypesType.Child)?.ticketTypeId\r\n }\r\n set ticketTypeChild(value: number | undefined) {\r\n this.ticketsTypes = this.ticketsTypes.filter((x) => x.type != OffersTicketTypesType.Child)\r\n if (value) {\r\n this.ticketsTypes = this.ticketsTypes.concat(new OfferTicketType(value, OffersTicketTypesType.Child))\r\n }\r\n }\r\n get ticketTypeInfant(): number | undefined {\r\n return this.ticketsTypes.find((x) => x.type == OffersTicketTypesType.Infant)?.ticketTypeId\r\n }\r\n set ticketTypeInfant(value: number | undefined) {\r\n this.ticketsTypes = this.ticketsTypes.filter((x) => x.type != OffersTicketTypesType.Infant)\r\n if (value) {\r\n this.ticketsTypes = this.ticketsTypes.concat(new OfferTicketType(value, OffersTicketTypesType.Infant))\r\n }\r\n }\r\n ticketsTypes: OfferTicketType[] = []\r\n isDeleted: boolean = false\r\n timeSlots: number[] = []\r\n bookingType: BookingType = BookingType.LiveBook\r\n notesToClientsPostBooking: string = ''\r\n // isDeleted: boolean = false\r\n // cancellations: CancellationPolicy[] = []\r\n // isAvailableForChildren: boolean = false\r\n // childAge: number = 0\r\n // isAvailableForInfants: boolean = false\r\n // infantAge: number = 0\r\n // minNumberOfPeople: number = 0\r\n // maxNumberOfPeople: number = 0\r\n // numberOfHours: number = 0\r\n // description: OfferDescription[] = []\r\n // availableDays: number[] = []\r\n // photos: Photo[] = []\r\n // heroImage?: Photo\r\n}\r\n\r\nclass OfferDescription {\r\n title: string = ''\r\n description: string = ''\r\n}\r\n\r\nexport class OfferTourManageTableModel {\r\n id: number = 0\r\n nameDisplay: string = ''\r\n nameInternal: string = ''\r\n isDeleted: boolean = false\r\n}\r\nexport class OfferManageTourModel extends OfferTourManageTableModel {\r\n public static Create(obj: OfferManageTourModel, accountSettings: AccountSettingsModel) {\r\n const as = accountSettings\r\n return Object.assign(new OfferManageTourModel(), obj, {\r\n validPeriod: obj.validPeriod ? OfferValidPeriod.Create(obj.validPeriod, as.totalTaxAmount, as.totalTaxK, as.currencyConversionSettings.convRate, as.currencyConversionSettings.convType, as.defaultCommission) : undefined,\r\n })\r\n }\r\n validPeriod?: OfferValidPeriod\r\n}\r\n","export default class BaseEntity {\r\n id: number = 0\r\n}\r\n","import Offer, { OfferTourManageTableModel, OfferManageTourModel } from './Offer'\r\nimport { Photo } from 'traveldesk-ui'\r\nimport BaseEntity from './BaseEntity'\r\nimport CancellationPolicy from './CancellationPolicy'\r\nimport { AccountSettingsModel } from './AccountSettingsModel'\r\nimport TourFaqModel from './TourFaqModel'\r\nimport ItineraryModel from './ItineraryModel'\r\n\r\nexport class TourManageModel extends BaseEntity {\r\n public static Create(obj: TourManageModel, accountSettings: AccountSettingsModel) {\r\n const res = Object.assign(new TourManageModel(), obj, {\r\n offers: obj.offers.map((x) => OfferManageTourModel.Create(x, accountSettings)),\r\n })\r\n if (res.cityId === 0) res.cityId = undefined\r\n return res\r\n }\r\n id: number = 0\r\n nameInternal: string = ''\r\n nameDisplay: string = ''\r\n url: string = ''\r\n cityId?: number = 0\r\n toursCategories: number[] = []\r\n recommendedFor: number = 0\r\n languageId: number = 0\r\n isDeleted: boolean = false\r\n videoUrl: string = ''\r\n cancellationPolicy: CancellationPolicy[] = []\r\n // heroImage: Photo = new Photo()\r\n offers: OfferManageTourModel[] = []\r\n heroImageId?: number = undefined\r\n photos: Photo[] = []\r\n isDefaultCancellationPolicy: boolean = true\r\n isDefaultNotesToClientsPostBooking: boolean = true\r\n isDefaultTermsAndConditions: boolean = true\r\n isDefaultFaq: boolean = true\r\n termsAndConditions: string = ''\r\n faq: string = ''\r\n faqs: TourFaqModel[] = []\r\n shortDescription: string = ''\r\n salesDescription: string = ''\r\n tourItinerary: string = ''\r\n itineraries: ItineraryModel[] = []\r\n notesToAgents: string = ''\r\n seo: string = ''\r\n seoPageTitle: string = ''\r\n seoPageDescription: string = ''\r\n notesToClientsPostBooking: string = ''\r\n locationAddress: string = ''\r\n locationLatitude?: number\r\n locationLongitude?: number\r\n googlePlacesId?: string\r\n googlePlacesRating?: number\r\n googlePlacesTotalRatings?: number\r\n tripAdvisorId?: string\r\n tripAdvisorRating?: number\r\n tripAdvisorTotalRatings?: number\r\n facebookPageId?: string\r\n isTopTour: boolean = false\r\n}\r\n\r\nexport class TourManageTableModel extends BaseEntity {\r\n public static Create(obj: TourManageTableModel) {\r\n return Object.assign(new TourManageTableModel(), obj)\r\n }\r\n nameDisplay: string = ''\r\n nameInternal: string = ''\r\n languageId: number = 0\r\n offers: OfferTourManageTableModel[] = []\r\n isTopTour: boolean = false\r\n}\r\n","import { apiCallWrapper, SelectOptionModel } from 'traveldesk-ui'\r\nimport { TourManageTableModel, TourManageModel } from '../models/TourManageModel'\r\n\r\nexport default class ToursApiService {\r\n static save = async (dispatch: any, model: TourManageModel) => {\r\n return await apiCallWrapper('/api/tours', model.id == 0 ? 'POST' : 'PUT', dispatch, model)\r\n }\r\n static getToursManageTable = async (dispatch: any) => {\r\n return await apiCallWrapper('/api/tours/manageList', 'GET', dispatch)\r\n }\r\n static getTourForEdit = async (dispatch: any, id: number) => {\r\n return await apiCallWrapper(`/api/tours/manage/${id}`, 'GET', dispatch)\r\n }\r\n static getCategoriesOptions = async (dispatch: any) => {\r\n return await apiCallWrapper('/api/toursCategories/options', 'GET', dispatch)\r\n }\r\n static getRecommendedForOptions = async (dispatch: any) => {\r\n return {\r\n IsOk: true,\r\n Code: 200,\r\n Content: [\r\n { value: 0, label: 'Everybody' },\r\n { value: 1, label: 'Families With Children' },\r\n { value: 2, label: 'Families With Infants' },\r\n { value: 3, label: 'Young Adults' },\r\n { value: 4, label: 'Elderly' },\r\n ],\r\n }\r\n }\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\n\r\nimport OfferValidPeriod from '../models/OfferValidPeriod'\r\nexport default class ValidPeriodsApiService {\r\n static save = async (dispatch: any, model: OfferValidPeriod) => {\r\n return await apiCallWrapper('/api/validperiods', 'POST', dispatch, model)\r\n }\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport Offer from '../models/Offer'\r\nexport default class OffersApiService {\r\n static save = async (dispatch: any, model: Offer) => {\r\n return await apiCallWrapper('/api/offers', model.id == 0 ? 'POST' : 'PUT', dispatch, model)\r\n }\r\n static getOfferForEdit = async (dispatch: any, id: number) => {\r\n return await apiCallWrapper(`/api/offers/manage/${id}`, 'GET', dispatch)\r\n }\r\n}\r\n","import Offer, { OfferManageTourModel, OfferTourManageTableModel } from '../models/Offer'\r\nimport { Reducer, Action } from 'redux'\r\nimport { AppThunkAction } from './'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\nimport { TourManageModel, TourManageTableModel } from '../models/TourManageModel'\r\nimport { NotificationsStore } from 'traveldesk-ui'\r\nimport { push } from 'react-router-redux'\r\nimport ToursApiService from '../services/ToursApiService'\r\n// import { SetAccountDefaultCommission } from './Account'\r\nimport OfferValidPeriod from './../models/OfferValidPeriod'\r\nimport ValidPeriodsApiService from '../services/ValidPeriodsService'\r\nimport OffersApiService from './../services/OffersApiService'\r\nimport { RouterAction } from 'connected-react-router'\r\nimport { NotificationType, NotificationModel } from 'traveldesk-ui'\r\nimport { AccountSettingsModel } from '../models/AccountSettingsModel'\r\nexport interface State {\r\n toursManage: TourManageTableModel[]\r\n tour?: TourManageModel\r\n offer?: Offer\r\n addValidPeriod: boolean\r\n}\r\ninterface SetTourManageAction {\r\n type: 'A_SET_TOUR_MANAGE'\r\n payload: TourManageModel | undefined\r\n}\r\ninterface SetOfferManageAction {\r\n type: 'A_SET_OFFER_MANAGE'\r\n payload: Offer | undefined\r\n}\r\nconst RECEIVE_TOURS_MANAGE = 'A_RECEIVE_TOURS_MANAGE'\r\n\r\ninterface ReceiveToursManageAction {\r\n type: 'A_RECEIVE_TOURS_MANAGE'\r\n payload: TourManageTableModel[]\r\n}\r\ninterface ReceiveToursAction {\r\n type: 'A_RECIEVE_TOURS'\r\n payload: TourManageModel[]\r\n}\r\nconst TOUR_SAVED = 'A_TOUR_SAVED'\r\ninterface TourSaved {\r\n type: 'A_TOUR_SAVED'\r\n payload: TourManageModel\r\n}\r\nconst OFFER_SAVED = 'A_OFFER_SAVED'\r\ninterface OfferSaved {\r\n type: 'A_OFFER_SAVED'\r\n payload: Offer\r\n}\r\nconst VALID_PERIOD_SAVED = 'A_VALID_PERIOD_SAVED'\r\ninterface ValidPeriodSaved {\r\n type: 'A_VALID_PERIOD_SAVED'\r\n payload: OfferValidPeriod\r\n}\r\nconst SET_ADD_VALID_PERIOD = 'A_SET_ADD_VALID_PERIOD'\r\ninterface SetAddValidPeriod {\r\n type: 'A_SET_ADD_VALID_PERIOD'\r\n payload: boolean\r\n}\r\ntype KnownAction =\r\n | ReceiveToursAction\r\n | ReceiveToursManageAction\r\n | SetTourManageAction\r\n | SetOfferManageAction\r\n | TourSaved\r\n | OfferSaved\r\n // | SetAccountDefaultCommission\r\n | ValidPeriodSaved\r\n | SetAddValidPeriod\r\n | RouterAction\r\n\r\nexport const actionCreators = {\r\n manageTourClear: () => ({ type: 'A_SET_TOUR_MANAGE', payload: undefined }),\r\n manageOfferClear: () => ({ type: 'A_SET_OFFER_MANAGE', payload: undefined }),\r\n\r\n manageTour:\r\n (id: number, accountSettings: AccountSettingsModel): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (id == 0) {\r\n dispatch({ type: 'A_SET_TOUR_MANAGE', payload: TourManageModel.Create(new TourManageModel(), accountSettings) })\r\n } else {\r\n const exTour = getState().tours.tour\r\n if (exTour && exTour.id != id) {\r\n }\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await ToursApiService.getTourForEdit(dispatch, id) //apiCallWrapper(`/api/tours/manage/${id}`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: 'A_SET_TOUR_MANAGE', payload: TourManageModel.Create(data, accountSettings) })\r\n } else {\r\n const localization = getState().localization.locale\r\n dispatch(\r\n NotificationsStore.actionCreators.add(\r\n new NotificationModel(\r\n NotificationType.error,\r\n localization.getString('Not found'),\r\n localization.getString('Tour not found or you are not allowed to manage it'),\r\n ),\r\n ),\r\n )\r\n\r\n dispatch(push('/tours'))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n }\r\n },\r\n\r\n manageOffer:\r\n (\r\n id: number,\r\n tourId: number,\r\n accountSettings: AccountSettingsModel\r\n ): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (id == 0) {\r\n dispatch({ type: 'A_SET_OFFER_MANAGE', payload: Offer.Create(new Offer(tourId), tourId, accountSettings) })\r\n } else {\r\n const exTour = getState().tours.tour\r\n if (exTour && exTour.id != id) {\r\n }\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await OffersApiService.getOfferForEdit(dispatch, id)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: 'A_SET_OFFER_MANAGE', payload: Offer.Create(data, tourId, accountSettings) })\r\n } else {\r\n const localization = getState().localization.locale\r\n dispatch(\r\n NotificationsStore.actionCreators.add(\r\n new NotificationModel(\r\n NotificationType.error,\r\n localization.getString('Not found'),\r\n localization.getString('Ticket not found or you are not allowed to manage it'),\r\n ),\r\n ),\r\n )\r\n dispatch(push(`/tours/${tourId}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n }\r\n },\r\n requestToursManage: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await ToursApiService.getToursManageTable(dispatch) // apiCallWrapper(`/api/tours/managelist`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_TOURS_MANAGE, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n saveOffer:\r\n (offer: Offer): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await OffersApiService.save(dispatch, offer)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({ type: OFFER_SAVED, payload: fetchTask.Content })\r\n }\r\n if (fetchTask.Content) {\r\n dispatch(push(`/tours/${fetchTask.Content.tourId}/${fetchTask.Content.id}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n saveTour:\r\n (tour: TourManageModel): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n tour.offers = []\r\n let fetchTask = await ToursApiService.save(dispatch, tour)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({ type: TOUR_SAVED, payload: fetchTask.Content })\r\n dispatch(push(`/tours/${fetchTask.Content.id}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n saveOfferValidPeriod:\r\n (accountSettings: AccountSettingsModel, validPeriod: OfferValidPeriod, offerId: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await ValidPeriodsApiService.save(dispatch, validPeriod)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n const payload = OfferValidPeriod.Create(fetchTask.Content, accountSettings.totalTaxAmount, accountSettings.totalTaxK, accountSettings.currencyConversionSettings.convRate, accountSettings.currencyConversionSettings.convType, accountSettings.defaultCommission)\r\n dispatch({ type: VALID_PERIOD_SAVED, payload })\r\n const tour = getState().tours.toursManage.find((x) => x.offers.some((offer) => offer.id == offerId))\r\n dispatch(push(`/tours/${tour?.id ?? 'add'}/${offerId}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n setAddValidPeriod: (value: boolean) => ({ type: SET_ADD_VALID_PERIOD, payload: value }),\r\n}\r\nconst unloadedState: State = {\r\n toursManage: [],\r\n tour: undefined,\r\n addValidPeriod: false,\r\n offer: undefined,\r\n}\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_TOURS_MANAGE:\r\n return {\r\n ...state,\r\n toursManage: action.payload,\r\n }\r\n case SET_ADD_VALID_PERIOD:\r\n return {\r\n ...state,\r\n addValidPeriod: action.payload,\r\n }\r\n // case 'A_SET_ACCOUNT_DEFAULT_COMMISSION':\r\n // if (state.offer) {\r\n // return { ...state, offer: Offer.Create(state.offer, action.payload) }\r\n // }\r\n // return state\r\n case 'A_SET_OFFER_MANAGE':\r\n return { ...state, offer: action.payload }\r\n case 'A_SET_TOUR_MANAGE':\r\n return { ...state, tour: action.payload }\r\n case VALID_PERIOD_SAVED:\r\n return {\r\n ...state,\r\n offer: Object.assign(new Offer(state.offer?.tourId ?? 0), state.offer, {\r\n validPeriods: state.offer?.validPeriods.map((vp) =>\r\n vp.id == action.payload.id ? action.payload : vp,\r\n ),\r\n }),\r\n addValidPeriod: false,\r\n }\r\n default:\r\n }\r\n return state || unloadedState\r\n}\r\n","import { SelectOptionModel } from 'traveldesk-ui'\r\nimport moment from 'moment'\r\nexport default class BookingOperations {\r\n public static Create(obj: BookingOperations) {\r\n return Object.assign(new BookingOperations(), obj, {\r\n date: moment.utc(obj.date),\r\n bookingDateTime: moment.utc(obj.date),\r\n })\r\n }\r\n id: number = 0\r\n date: moment.Moment = moment()\r\n bookingDateTime: moment.Moment = moment()\r\n tourId?: number\r\n offerId: number = 0\r\n hotelId?: number\r\n customHotelName: string = ''\r\n region: string = ''\r\n guestName: string = ''\r\n tel: string = ''\r\n ad: number = 1\r\n ch: number = 0\r\n inf: number = 0\r\n foc: number = 0\r\n paid: number = 0\r\n paidTo: string = ''\r\n collect: number = 0\r\n collectTo: string = ''\r\n voucher: string = ''\r\n status: BookingStatus = BookingStatus.New\r\n}\r\nexport enum BookingStatus {\r\n New,\r\n PendingVerification,\r\n QuotationRequest,\r\n PaymentRequired,\r\n Cancelled,\r\n Completed,\r\n}\r\nexport const BookingStatusOptions: SelectOptionModel[] = [\r\n { value: BookingStatus.New, label: 'Normal' },\r\n { value: BookingStatus.PendingVerification, label: 'Pending' },\r\n { value: BookingStatus.Cancelled, label: 'Cancelled' },\r\n]\r\nexport const BookingStatusDescription = ['Normal', 'Pending Reconfirmation', '', '', 'Cancelled', '']\r\n","import { Action, Reducer } from 'redux'\r\nimport { AppThunkAction } from '.'\r\nimport { apiCallWrapper, defaultLabelSort } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\nimport ToursApiService from '../services/ToursApiService'\r\nexport interface State {\r\n options: SelectOptionModel[]\r\n}\r\nconst RECEIVE_TOURS_CATEGORIES_OPTIONS = 'A_RECEIVE_TOURS_CATEGORIES_OPTIONS'\r\ninterface ReceiveToursCategoriesOptionsAction {\r\n type: 'A_RECEIVE_TOURS_CATEGORIES_OPTIONS'\r\n payload: SelectOptionModel[]\r\n}\r\n\r\ntype KnownAction = ReceiveToursCategoriesOptionsAction\r\n\r\nexport const actionCreators = {\r\n requestOptions: (): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState()\r\n if (appState && appState.toursCategories && appState.toursCategories.options.length === 0) {\r\n const result = await ToursApiService.getCategoriesOptions(dispatch)\r\n if (result.IsOk) {\r\n dispatch({ type: RECEIVE_TOURS_CATEGORIES_OPTIONS, payload: result.Content || [] })\r\n }\r\n }\r\n },\r\n}\r\n\r\nconst unloadedState: State = { options: [] as SelectOptionModel[] }\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_TOURS_CATEGORIES_OPTIONS:\r\n return {\r\n ...state,\r\n options: action.payload.sort(defaultLabelSort),\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import BookingOperations from '../models/BookingOperations'\r\nimport { AppThunkAction } from '.'\r\nimport { PaginationModel } from 'traveldesk-ui'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\nimport { apiCallWrapper } from 'traveldesk-ui'\r\nimport { Action, Reducer } from 'redux'\r\nimport BookingsOperationsFilter from '../serviceModels/BookingsOperationsFilter'\r\nimport { EntitiesPaginatedModel } from 'traveldesk-ui'\r\nexport interface State {\r\n bookings: EntitiesPaginatedModel\r\n}\r\n\r\nconst RECEIVE_BOOKINGS = 'A_RECEIVE_BOOKINGS'\r\ninterface ReceiveBookingsAction {\r\n type: 'A_RECEIVE_BOOKINGS'\r\n payload: EntitiesPaginatedModel\r\n}\r\nconst UPDATE_BOOKING = 'A_UPDATE_BOOKING'\r\ninterface UpdateBookingAction {\r\n type: 'A_UPDATE_BOOKING'\r\n payload: BookingOperations\r\n}\r\ntype KnownAction = ReceiveBookingsAction | UpdateBookingAction\r\n\r\nexport const actionCreators = {\r\n requestBookingsOperations: (\r\n filter: BookingsOperationsFilter,\r\n ): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await apiCallWrapper>(\r\n `/api/bookings/operations`,\r\n 'POST',\r\n dispatch,\r\n filter,\r\n )\r\n const data = fetchTask.Content\r\n ? Object.assign(new EntitiesPaginatedModel(), {\r\n entities: fetchTask.Content.entities.map((x) => BookingOperations.Create(x)),\r\n pagingInfo: Object.assign(new PaginationModel(), fetchTask.Content.pagingInfo),\r\n })\r\n : new EntitiesPaginatedModel()\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_BOOKINGS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\n\r\nconst unloadedState: State = {\r\n bookings: new EntitiesPaginatedModel(),\r\n}\r\n\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_BOOKINGS:\r\n return {\r\n ...state,\r\n bookings: action.payload,\r\n }\r\n default:\r\n }\r\n return state || unloadedState\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport { AccountSettingsModel } from '../models/AccountSettingsModel'\r\n\r\nexport default class AccountApiService {\r\n static getDefaultCommission = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/account/defaultcommission`, 'GET', dispatch)\r\n }\r\n static getAccountSettings = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/account/settings`, 'GET', dispatch)\r\n }\r\n}\r\n","import { ConversionType } from \"traveldesk-ui\"\r\n\r\nexport default class AccountSettingsCurrenciesModel {\r\n baseCurrency: string = \"AED\"\r\n secondaryCurrency: string = \"$\"\r\n convRate: number = 1\r\n convType: ConversionType = ConversionType.DEV\r\n}","import { ConversionType } from \"traveldesk-ui\"\r\nimport AccountSettingsCurrenciesModel from \"./AccountSettingsCurrenciesModel\"\r\n\r\nexport class AccountSettingsModel {\r\n taxes: AccountTaxModel[] = []\r\n defaultCommission: number = 20\r\n get currencies() {\r\n const res = [this.currencyConversionSettings.baseCurrency] as string[]\r\n if (this.currencyConversionSettings.secondaryCurrency) {\r\n res.push(this.currencyConversionSettings.secondaryCurrency)\r\n }\r\n return res\r\n }\r\n currencyConversionSettings: AccountSettingsCurrenciesModel = new AccountSettingsCurrenciesModel()\r\n get totalTaxAmount() {\r\n return this.taxes.reduce((res, next) => res + next.amount, 0)\r\n }\r\n get totalTaxK() {\r\n return this.taxes.reduce((res, next) => res + (next.amountK - 1), 1)\r\n }\r\n}\r\nexport class AccountTaxModel {\r\n public static CreateConstructor(name: string, amount: number, amountK: number, convRate: number, convType: ConversionType) {\r\n return Object.assign(new AccountTaxModel(), { name, amount, amountK })\r\n }\r\n name: string = ''\r\n amount: number = 5\r\n amountK: number = 1.05\r\n}","import { ConversionType, LoadingStore } from 'traveldesk-ui'\r\nimport { NotificationsStore } from 'traveldesk-ui'\r\nimport { AppThunkAction } from '.'\r\nimport { Action, Reducer } from 'redux'\r\nimport AccountApiService from './../services/AccountApiService'\r\nimport { AccountSettingsModel, AccountTaxModel } from '../models/AccountSettingsModel'\r\n\r\nexport interface State {\r\n // defaultCommission?: number\r\n settings: AccountSettingsModel\r\n}\r\nexport interface SetAccountSettings {\r\n type: 'A_SET_ACCOUNT_SETTINGS'\r\n payload: AccountSettingsModel\r\n}\r\n\r\ntype KnownAction = SetAccountSettings\r\n\r\nexport const actionCreators = {\r\n getAccountSettings:\r\n (): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await AccountApiService.getAccountSettings(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({ type: 'A_SET_ACCOUNT_SETTINGS', payload: fetchTask.Content })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n // getDefaultCommission:\r\n // (): AppThunkAction =>\r\n // async (dispatch) => {\r\n // dispatch(LoadingStore.actionCreators.incrementLoading())\r\n // let fetchTask = await AccountApiService.getDefaultCommission(dispatch)\r\n // if (fetchTask.IsOk && fetchTask.Content) {\r\n // dispatch({ type: 'A_SET_ACCOUNT_SETTINGS', payload: fetchTask.Content })\r\n // }\r\n // dispatch(LoadingStore.actionCreators.decrementLoading())\r\n // },\r\n}\r\nconst unloadedState: State = {\r\n // defaultCommission: undefined,\r\n settings: Object.assign(new AccountSettingsModel(), {\r\n taxes: [\r\n AccountTaxModel.CreateConstructor(\"vat\", 5, 1.05, 3.65, ConversionType.DEV)\r\n ],\r\n defaultCommission: 20,\r\n currencyConversionSettings: Object.assign(new AccountSettingsModel(), { convRate: 3.65, convType: ConversionType.DEV })\r\n })\r\n}\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case 'A_SET_ACCOUNT_SETTINGS':\r\n return {\r\n ...state,\r\n settings: action.payload,\r\n }\r\n\r\n default:\r\n }\r\n return state || unloadedState\r\n}\r\n","export default class TicketType {\r\n static Create(obj: TicketType) {\r\n return Object.assign(new TicketType(), obj)\r\n }\r\n id: number = 0\r\n name: string = ''\r\n shortName: string = ''\r\n reorderLevel: number = 0\r\n reservationTime: number = 0\r\n available: number = 0\r\n expired: number = 0\r\n freezed: number = 0\r\n expiresIn5Days: number = 0\r\n againstReorderLevel() {\r\n return this.available - this.reorderLevel\r\n }\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\n\r\nimport TicketType from './../models/TicketType'\r\n\r\nexport default class TicketsApiService {\r\n static getTypes = async (dispatch: any) => {\r\n return await apiCallWrapper('/api/tickets/types', 'GET', dispatch)\r\n }\r\n}\r\n","import TicketType from './../models/TicketType'\r\nimport { AppThunkAction } from '.'\r\nimport TicketsApiService from './../services/TicketsApiService'\r\nimport { Reducer, Action } from 'redux'\r\n\r\nexport interface State {\r\n types: TicketType[]\r\n}\r\nconst TICKETS_TYPES_RESPONSE = 'A_TICKETS_TYPES_RESPONSE'\r\ninterface TicektsTypesResponse {\r\n type: 'A_TICKETS_TYPES_RESPONSE'\r\n payload: TicketType[]\r\n}\r\n\r\ntype KnownAction = TicektsTypesResponse\r\nexport const actionCreators = {\r\n requestTypes: (): AppThunkAction => async (dispatch) => {\r\n let fetchTask = await TicketsApiService.getTypes(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: TICKETS_TYPES_RESPONSE,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => TicketType.Create(x)),\r\n })\r\n }\r\n },\r\n}\r\nconst unloadedState: State = {\r\n types: [] as TicketType[],\r\n}\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case TICKETS_TYPES_RESPONSE:\r\n return { ...state, types: action.payload }\r\n }\r\n return state || unloadedState\r\n}\r\n","import { SelectOptionModel } from \"traveldesk-ui\";\r\n\r\nexport default interface ExternalProviderOption extends SelectOptionModel {\r\n isDifferentProducts: boolean\r\n codeType: ExternalProviderCodeType\r\n bookingReferencePrefix: string\r\n}\r\nexport enum ExternalProviderCodeType {\r\n None, QrCode, BarCode\r\n}\r\nexport const ExternalProviderCodeTypesNames = [\"None\", \"QR Code\", \"Bar Code\"]","import { Localization } from 'traveldesk-ui'\r\n\r\nexport default class DaysOfferedService {\r\n public static daysNames = ['Everyday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']\r\n public static getDays(days: number) {\r\n let res = [] as number[]\r\n if (days == 0) {\r\n res.push(0)\r\n } else {\r\n for (let i = 1; i <= 7; i++) {\r\n const w = 1 << (i - 1)\r\n if ((w & days) > 0) {\r\n res.push(i)\r\n }\r\n }\r\n if (res.length == 7) {\r\n res = [0]\r\n }\r\n }\r\n return res\r\n }\r\n public static encode(days: number[]) {\r\n let res = 0\r\n if (days && days.length > 0) {\r\n days.forEach((day) => {\r\n if (day > 0) {\r\n res = res | (1 << (day - 1))\r\n }\r\n })\r\n }\r\n return res\r\n }\r\n public static getDaysNamesOptions(localization: Localization.Localization) {\r\n return this.daysNames.map((day, index) => ({ label: localization.getString(day), value: index }))\r\n }\r\n public static getDaysNames(days: number, localization: Localization.Localization) {\r\n return this.getDays(days).map((x) => localization.getString(this.daysNames[x]))\r\n }\r\n}\r\n","import { toStringFormatWithNumDigits, Localization } from 'traveldesk-ui'\r\nimport TimeSlotGroup from './TimeSlotGroup'\r\nimport DaysOfferedService from './../services/daysOfferedService'\r\nimport { guid } from 'traveldesk-ui'\r\nimport Offer from './Offer'\r\nimport { ExternalProviderCodeType } from '../pages/TimeSlots/ExternalProviderOption'\r\n\r\nexport default class TimeSlot {\r\n public static Create(obj: TimeSlot, tsg: TimeSlotGroup) {\r\n return Object.assign(new TimeSlot(), obj, {\r\n groupId: tsg.id,\r\n groupName: tsg.name,\r\n timeType: TimeSlot.GetTimeType(obj),\r\n daysOfferedList: DaysOfferedService.getDays(obj.daysOffered),\r\n isExternalId: obj.externalProductId && obj.externalProductId.length > 0\r\n })\r\n }\r\n\r\n id: number = 0\r\n guid: string = guid()\r\n groupId: number = 0\r\n groupName: string = ''\r\n name: string = ''\r\n startTimeHour: number = 0\r\n startTimeMinutes: number = 0\r\n endTimeHour: number = 0\r\n endTimeMinutes: number = 0\r\n isAnytime: boolean = false\r\n isNoTime: boolean = false\r\n interval?: number\r\n pickUpTimeId?: number\r\n duration?: number\r\n cutOffResponseTime?: number\r\n timeType: TimeSlotTimeType = TimeSlotTimeType.Fixed\r\n externalId: string = ''\r\n externalPerChildId: string = ''\r\n isExternalId: boolean = false\r\n bookingReferencePrefix: string = ''\r\n externalProviderId?: number\r\n externalProviderCodeType: ExternalProviderCodeType = ExternalProviderCodeType.None\r\n externalProviderDiffProductsAdultChild: boolean = false\r\n externalProductId: string = \"\"\r\n externalProductPerChildId: string = \"\"\r\n externalIsTicketPerPax: boolean = false\r\n offers: Offer[] = []\r\n public static GetTimeType(obj: TimeSlot) {\r\n if (obj.isNoTime) return TimeSlotTimeType.NoTime\r\n if (obj.isAnytime) return TimeSlotTimeType.Anytime\r\n return TimeSlotTimeType.Fixed\r\n }\r\n // public static GetTimeType(obj: TimeSlot) {\r\n // if (obj.isNoTime) return TimeSlotTimeType.NoTime\r\n // if (obj.isAnytime) return TimeSlotTimeType.Anytime\r\n // return TimeSlotTimeType.Fixed\r\n // }\r\n public static SetTimeType(obj: TimeSlot, value: TimeSlotTimeType) {\r\n obj.isNoTime = false\r\n obj.isAnytime = false\r\n switch (value) {\r\n case TimeSlotTimeType.Anytime:\r\n obj.isAnytime = true\r\n break\r\n case TimeSlotTimeType.NoTime:\r\n obj.isNoTime = true\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n get startTimeDescription() {\r\n return `${toStringFormatWithNumDigits(this.startTimeHour)}:${toStringFormatWithNumDigits(\r\n this.startTimeMinutes,\r\n )}`\r\n }\r\n set startTimeDescription(value: string) {\r\n try {\r\n const parts = value.split(':')\r\n const hours = parseInt(parts[0])\r\n const minutes = parseInt(parts[1])\r\n this.startTimeHour = hours\r\n this.startTimeMinutes = minutes\r\n } catch {\r\n this.startTimeHour = 0\r\n this.startTimeMinutes = 0\r\n }\r\n }\r\n get startTimeTotalMinutes() {\r\n return this.startTimeHour * 60 + this.startTimeMinutes\r\n }\r\n get endTimeTotalMinutes() {\r\n return this.endTimeHour * 60 + this.endTimeMinutes\r\n }\r\n set endTimeDescription(value: string) {\r\n try {\r\n const parts = value.split(':')\r\n const hours = parseInt(parts[0])\r\n const minutes = parseInt(parts[1])\r\n this.endTimeHour = hours\r\n this.endTimeMinutes = minutes\r\n } catch {\r\n this.endTimeHour = 0\r\n this.endTimeMinutes = 0\r\n }\r\n }\r\n get endTimeDescription() {\r\n return `${toStringFormatWithNumDigits(this.endTimeHour)}:${toStringFormatWithNumDigits(this.endTimeMinutes)}`\r\n }\r\n get timeDescription() {\r\n return `${this.startTimeDescription} - ${this.endTimeDescription}`\r\n }\r\n // group: TimeSlotGroup = new TimeSlotGroup()\r\n // get groupId() {\r\n // return this.group.id\r\n // }\r\n daysOffered: number = 0\r\n daysOfferedList: number[] = []\r\n // get daysOfferedList() {\r\n // console.log('Get daus ooffere')\r\n // const res = DaysOfferedService.getDays(this.daysOffered)\r\n // return res\r\n // }\r\n // set daysOfferedList(value: number[]) {\r\n // console.log('Set days of')\r\n // this.daysOffered = DaysOfferedService.encode(value)\r\n // }\r\n capacity: number = 0\r\n minimumAdvancedBooking: number = 0\r\n type: TimeSlotType = TimeSlotType.Live\r\n}\r\nexport enum TimeSlotType {\r\n Live,\r\n OnRequest,\r\n}\r\nexport enum TimeSlotTimeType {\r\n Fixed,\r\n Anytime,\r\n NoTime,\r\n}\r\nexport const getTimeSlotTypeOptions = (localization: Localization.Localization) => [\r\n { label: localization.getString('Live availability'), value: TimeSlotType.Live },\r\n { label: localization.getString('Manual confirmation'), value: TimeSlotType.OnRequest },\r\n]\r\nexport const getTimeSlotTimeTypeOptions = (localization: Localization.Localization) => [\r\n { label: localization.getString('A specific time'), value: TimeSlotTimeType.Fixed },\r\n { label: localization.getString('Time is not applicable'), value: TimeSlotTimeType.NoTime },\r\n { label: localization.getString('Guest defines time'), value: TimeSlotTimeType.Anytime },\r\n]\r\n\r\n// export interface TimeSlotOption {\r\n// value: string\r\n// id: number\r\n// label: string\r\n// startTime: number\r\n// endTime: number\r\n// }\r\n","import TimeSlot from './TimeSlot'\r\n\r\nexport default class TimeSlotGroup {\r\n static Create(obj: TimeSlotGroup) {\r\n return Object.assign(new TimeSlotGroup(), obj, {\r\n timeSlots: (obj.timeSlots || []).map((ts) => TimeSlot.Create(ts, obj)),\r\n })\r\n }\r\n id: number = 0\r\n name: string = ''\r\n pickUpTimeId?: number\r\n capacity: number = 1\r\n minimumAdvancedBooking?: number = 0\r\n isTimeSlotsIndependant: boolean = false\r\n timeSlots: TimeSlot[] = []\r\n}\r\n","import ExternalProviderOptionModel from '../pages/TimeSlots/ExternalProviderOption'\r\nimport TimeSlotGroup from './../models/TimeSlotGroup'\r\nimport { SelectOptionModel, apiCallWrapper } from 'traveldesk-ui'\r\n\r\nexport default class TimeSlotsApiService {\r\n static getExternalProviders = async (dispatch: any) => {\r\n const res = await apiCallWrapper(`/api/timeslots/externalproviders`, 'GET', dispatch)\r\n return res\r\n }\r\n static getExternalTimeSlots = async (apiProviderId: number, productId: string, dispatch: any) => {\r\n const res = await apiCallWrapper(`/api/timeslots/externaltimeslots?apiProviderId=${apiProviderId}&productId=${productId}`, 'GET', dispatch)\r\n return res\r\n }\r\n static getExternalOffers = async (apiProviderId: number, dispatch: any) => {\r\n const res = await apiCallWrapper(`/api/timeslots/externaloffers?apiproviderid=${apiProviderId}`, 'GET', dispatch)\r\n return res\r\n }\r\n static getTable = async (dispatch: any) => {\r\n const res = await apiCallWrapper(`/api/timeslots/groups`, 'GET', dispatch)\r\n res.Content = res.Content?.map((x) => TimeSlotGroup.Create(x))\r\n return res\r\n }\r\n static getForEdit = async (dispatch: any, id: number) => {\r\n const res = await apiCallWrapper(`/api/timeslots/groups/${id}`, 'GET', dispatch)\r\n return res\r\n }\r\n static save = async (tsg: TimeSlotGroup, dispatch: any) => {\r\n const res = await apiCallWrapper(\r\n `/api/timeslots/group`,\r\n tsg.id == 0 ? 'POST' : 'PUT',\r\n dispatch,\r\n tsg,\r\n )\r\n res.Content = res.Content ? TimeSlotGroup.Create(res.Content) : res.Content\r\n return res\r\n }\r\n}\r\n","import TimeSlotGroup from '../models/TimeSlotGroup'\r\nimport { LoadingStore, SelectOptionModel } from 'traveldesk-ui'\r\nimport TimeSlotsApiService from './../services/TimeSlotsApiService'\r\nimport { AppThunkAction } from '.'\r\nimport { Reducer, Action } from 'redux'\r\nimport { NotificationsStore, NotificationModel, NotificationType } from 'traveldesk-ui'\r\nimport { push } from 'react-router-redux'\r\nimport { RouterAction } from 'connected-react-router'\r\n\r\nexport interface State {\r\n timeSlotsGroups: TimeSlotGroup[]\r\n timeSlotGroup?: TimeSlotGroup\r\n externalProvidersOptions?: SelectOptionModel[]\r\n externalOffersOptions: Map\r\n isLoadingOffers: boolean\r\n externalTimeSlotsOptions: Map>\r\n isLoadingTimeSlots: boolean\r\n}\r\n\r\nconst RECEIVE_TIMESLOTS_GROUPS = 'A_RECEIVE_TIMESLOTS_GROUPS'\r\ninterface ReceiveTimeSlotsGroups {\r\n type: 'A_RECEIVE_TIMESLOTS_GROUPS'\r\n payload: TimeSlotGroup[]\r\n}\r\nconst TIMESLOT_SAVED = 'A_TIMESLOT_SAVED'\r\ninterface TimeSlotSaved {\r\n type: 'A_TIMESLOT_SAVED'\r\n payload: TimeSlotGroup\r\n}\r\nconst SET_TIMESLOT_MANAGE = 'A_SET_TIMESLOT_MANAGE'\r\ninterface SetTimeSlotManage {\r\n type: 'A_SET_TIMESLOT_MANAGE'\r\n payload: TimeSlotGroup\r\n}\r\nconst RECEIVE_EXTERNAL_PROVIDERS = \"RECEIVE_EXTERNAL_PROVIDERS\"\r\ninterface ReceiveExternalProviders {\r\n type: \"RECEIVE_EXTERNAL_PROVIDERS\"\r\n payload: SelectOptionModel[]\r\n}\r\nconst RECEIVE_EXTERNAL_OFFERS = \"RECEIVE_EXTERNAL_OFFERS\"\r\nconst RECEIVE_EXTERNAL_OFFERS_START = \"RECEIVE_EXTERNAL_OFFERS_START\"\r\nconst RECEIVE_EXTERNAL_OFFERS_END = \"RECEIVE_EXTERNAL_OFFERS_END\"\r\ninterface ReceiveExternalOffers {\r\n type: \"RECEIVE_EXTERNAL_OFFERS\"\r\n payload: { apiProviderId: number, offers: SelectOptionModel[] }\r\n}\r\ninterface ReceiveExternalOffersStart {\r\n type: \"RECEIVE_EXTERNAL_OFFERS_START\"\r\n}\r\ninterface ReceiveExternalOffersEnd {\r\n type: \"RECEIVE_EXTERNAL_OFFERS_END\"\r\n}\r\nconst RECEIVE_EXTERNAL_TIMESLOTS = \"RECEIVE_EXTERNAL_TIMESLOTS\"\r\nconst RECEIVE_EXTERNAL_TIMESLOTS_START = \"RECEIVE_EXTERNAL_TIMESLOTS_START\"\r\nconst RECEIVE_EXTERNAL_TIMESLOTS_END = \"RECEIVE_EXTERNAL_TIMESLOTS_END\"\r\ninterface ReceiveExternalTimeSltos {\r\n type: \"RECEIVE_EXTERNAL_TIMESLOTS\",\r\n payload: { apiProviderId: number, productId: string, timeSlots: SelectOptionModel[] }\r\n}\r\ninterface ReceiveExternalTimeSlotsStart {\r\n type: \"RECEIVE_EXTERNAL_TIMESLOTS_START\"\r\n}\r\ninterface ReceiveExternalTimeSlotsEnd {\r\n type: \"RECEIVE_EXTERNAL_TIMESLOTS_END\"\r\n}\r\n\r\ntype KnownAction = ReceiveTimeSlotsGroups | SetTimeSlotManage | TimeSlotSaved | RouterAction\r\n | ReceiveExternalProviders\r\n | ReceiveExternalOffers | ReceiveExternalOffersStart | ReceiveExternalOffersEnd\r\n | ReceiveExternalTimeSltos | ReceiveExternalTimeSlotsStart | ReceiveExternalTimeSlotsEnd\r\n\r\n\r\nexport const actionCreators = {\r\n requestExternalTimeSlots: (apiProviderId: number, offerId: string): AppThunkAction => async (dispatch, getState) => {\r\n if (getState().timeSlots.isLoadingTimeSlots) return\r\n if (getState().timeSlots.externalTimeSlotsOptions?.get(apiProviderId)?.has(offerId)) return\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n dispatch({ type: RECEIVE_EXTERNAL_TIMESLOTS_START })\r\n let fetchTask = await TimeSlotsApiService.getExternalTimeSlots(apiProviderId, offerId, dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_EXTERNAL_TIMESLOTS, payload: { apiProviderId, productId: offerId, timeSlots: data } })\r\n }\r\n dispatch({ type: RECEIVE_EXTERNAL_TIMESLOTS_END })\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestExternalOffers: (apiProviderId: number): AppThunkAction => async (dispatch, getState) => {\r\n if (getState().timeSlots.isLoadingOffers) return\r\n dispatch({ type: RECEIVE_EXTERNAL_OFFERS_START })\r\n if (getState().timeSlots.externalOffersOptions?.has(apiProviderId)) return\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n dispatch({ type: RECEIVE_EXTERNAL_OFFERS_START })\r\n let fetchTask = await TimeSlotsApiService.getExternalOffers(apiProviderId, dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_EXTERNAL_OFFERS, payload: { apiProviderId: apiProviderId, offers: data } })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n dispatch({ type: RECEIVE_EXTERNAL_OFFERS_END })\r\n\r\n },\r\n requestExternalProviders: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await TimeSlotsApiService.getExternalProviders(dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_EXTERNAL_PROVIDERS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestTimeSlotsGroups: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await TimeSlotsApiService.getTable(dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_TIMESLOTS_GROUPS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n save:\r\n (tsg: TimeSlotGroup): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await TimeSlotsApiService.save(tsg, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({ type: TIMESLOT_SAVED, payload: fetchTask.Content })\r\n }\r\n if (fetchTask.Content) {\r\n dispatch(push(`/timeslots/${fetchTask.Content.id}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n manageTimeSlotGroup:\r\n (id: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (id == 0) {\r\n dispatch({ type: SET_TIMESLOT_MANAGE, payload: TimeSlotGroup.Create(new TimeSlotGroup()) })\r\n } else {\r\n const exTour = getState().tours.tour\r\n if (exTour && exTour.id != id) {\r\n }\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await TimeSlotsApiService.getForEdit(dispatch, id)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: SET_TIMESLOT_MANAGE, payload: TimeSlotGroup.Create(data) })\r\n } else {\r\n const localization = getState().localization.locale\r\n dispatch(\r\n NotificationsStore.actionCreators.add(\r\n new NotificationModel(\r\n NotificationType.error,\r\n localization.getString('Not found'),\r\n localization.getString('Time slot group not found or you are not allowed to manage it'),\r\n ),\r\n ),\r\n )\r\n dispatch(push('/timeslots'))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n }\r\n },\r\n}\r\nconst unloadedState: State = {\r\n timeSlotsGroups: [],\r\n timeSlotGroup: undefined as unknown as TimeSlotGroup,\r\n externalProvidersOptions: undefined as unknown as SelectOptionModel[],\r\n externalOffersOptions: new Map(),\r\n externalTimeSlotsOptions: new Map>(),\r\n isLoadingOffers: false,\r\n isLoadingTimeSlots: false\r\n}\r\n\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_EXTERNAL_TIMESLOTS_START:\r\n return { ...state, isLoadingTimeSlots: true }\r\n case RECEIVE_EXTERNAL_TIMESLOTS_END:\r\n return { ...state, isLoadingTimeSlots: false }\r\n case RECEIVE_EXTERNAL_OFFERS_START:\r\n return { ...state, isLoadingOffers: true }\r\n case RECEIVE_EXTERNAL_OFFERS_END:\r\n return { ...state, isLoadingOffers: false }\r\n case RECEIVE_EXTERNAL_TIMESLOTS:\r\n const externalTimeSlotsOptionsNew = Object.assign(new Map>(), state.externalTimeSlotsOptions)\r\n let apiProvidersProductsTimeSlots = externalTimeSlotsOptionsNew.get(action.payload.apiProviderId);\r\n if (!apiProvidersProductsTimeSlots) {\r\n apiProvidersProductsTimeSlots = new Map()\r\n externalTimeSlotsOptionsNew.set(action.payload.apiProviderId, apiProvidersProductsTimeSlots)\r\n }\r\n apiProvidersProductsTimeSlots.set(action.payload.productId, action.payload.timeSlots)\r\n return { ...state, externalTimeSlotsOptions: externalTimeSlotsOptionsNew }\r\n case RECEIVE_EXTERNAL_OFFERS:\r\n const externalOffersOptionsNew = Object.assign(new Map(), state.externalOffersOptions)\r\n externalOffersOptionsNew.set(action.payload.apiProviderId, action.payload.offers)\r\n return { ...state, externalOffersOptions: externalOffersOptionsNew }\r\n case RECEIVE_EXTERNAL_PROVIDERS:\r\n return { ...state, externalProvidersOptions: action.payload }\r\n case RECEIVE_TIMESLOTS_GROUPS:\r\n return { ...state, timeSlotsGroups: action.payload }\r\n case SET_TIMESLOT_MANAGE:\r\n return { ...state, timeSlotGroup: action.payload }\r\n case TIMESLOT_SAVED:\r\n const timeSlotsGroups = state.timeSlotsGroups.some((x) => x.id == action.payload.id)\r\n ? state.timeSlotsGroups.map((x) => (x.id == action.payload.id ? action.payload : x))\r\n : state.timeSlotsGroups.concat(action.payload)\r\n return { ...state, timeSlotsGroups }\r\n }\r\n return state || unloadedState\r\n}\r\n","import { PickUpTimeRegionValue, PickUpTimeHotelValue } from './PickUpTimeValues'\r\n\r\nexport default class PickUpTime {\r\n public static Create(obj: PickUpTime) {\r\n return Object.assign(new PickUpTime(), obj)\r\n }\r\n id: number = 0\r\n name: string = ''\r\n isFixedTime: boolean = false\r\n regionsPickUpTimes: PickUpTimeRegionValue[] = [] as PickUpTimeRegionValue[]\r\n hotelsPickUpTimes: PickUpTimeHotelValue[] = [] as PickUpTimeHotelValue[]\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\nimport PickUpTime from './../models/PickUpTime'\r\nexport default class PickUpTimesApiService {\r\n static getOptions = async (dispatch: any) => {\r\n const res = await apiCallWrapper('/api/pickuptimes/options', 'GET', dispatch)\r\n res.Content =\r\n res.Content?.sort((a: SelectOptionModel, b: SelectOptionModel) => (a.label > b.label ? 1 : -1)) ?? []\r\n return res\r\n }\r\n static getManageList = async (dispatch: any) => {\r\n const res = await apiCallWrapper('/api/pickuptimes', 'GET', dispatch)\r\n return res\r\n }\r\n static getForEdit = async (dispatch: any, id: number) => {\r\n const res = await apiCallWrapper(`/api/pickuptimes/${id}`, 'GET', dispatch)\r\n return res\r\n }\r\n static save = async (pickUpTime: PickUpTime, dispatch: any) => {\r\n const res = await apiCallWrapper(\r\n `/api/pickuptimes`,\r\n pickUpTime.id == 0 ? 'POST' : 'PUT',\r\n dispatch,\r\n pickUpTime,\r\n )\r\n res.Content = res.Content ? PickUpTime.Create(res.Content) : res.Content\r\n return res\r\n }\r\n}\r\n","export default class Hotel {\r\n public static Create(obj: Hotel) {\r\n return Object.assign(new Hotel(), obj)\r\n }\r\n id: number = 0\r\n name: string = ''\r\n regionId?: number\r\n regionName: string = ''\r\n cityId: number = 0\r\n cityName: string = ''\r\n}\r\n","import { apiCallWrapper, apiCallWrapperNoDispatch } from 'traveldesk-ui'\r\n\r\nimport Hotel from './../models/Hotel'\r\n\r\nexport default class HotelsApiService {\r\n static getHotelsWithArrivalsByArrivals = async (dispatch: any) => {\r\n const res = await apiCallWrapper('/api/hotels/witharrivals', 'GET', dispatch)\r\n res.Content = res.Content?.map((x) => Hotel.Create(x))\r\n return res\r\n }\r\n static getHotelsInSuppliersCountry = async (dispatch: any) => {\r\n const res = await apiCallWrapper('/api/hotels/supplier', 'GET', dispatch)\r\n res.Content = res.Content?.map((x) => Hotel.Create(x))\r\n return res\r\n }\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\n\r\nexport default class CitiesApiService {\r\n public static async getCitiesOptions(dispatch: any) {\r\n return await apiCallWrapper('/api/cities/options', 'GET', dispatch)\r\n }\r\n public static async getCitiesInSuppliersCountry(dispatch: any) {\r\n const res = await apiCallWrapper('/api/cities/supplier', 'GET', dispatch)\r\n return res\r\n }\r\n}\r\n","import { SelectOptionModel } from 'traveldesk-ui'\r\nimport { AppThunkAction } from '.'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\n\r\nimport PickUpTimesApiService from './../services/PickUpTimesApiService'\r\nimport { Reducer, Action } from 'redux'\r\nimport PickUpTime from './../models/PickUpTime'\r\nimport { NotificationsStore } from 'traveldesk-ui'\r\nimport { NotificationModel, NotificationType } from 'traveldesk-ui'\r\nimport { push, RouterAction } from 'connected-react-router'\r\nimport Hotel from './../models/Hotel'\r\nimport HotelsApiService from './../services/HotelsApiService'\r\nimport CitiesApiService from './../services/CitiesApiService'\r\n\r\nexport interface State {\r\n options: SelectOptionModel[]\r\n pickUpTimesManage: PickUpTime[]\r\n pickUpTime?: PickUpTime\r\n hotelsOptions: Hotel[]\r\n citiesOptions: SelectOptionModel[]\r\n}\r\nconst SET_HOTELS_OPTIONS = 'A_SET_HOTELS_OPTIONS'\r\ninterface SetHotelsOptions {\r\n type: 'A_SET_HOTELS_OPTIONS'\r\n payload: Hotel[]\r\n}\r\nconst SET_CITIES_OPTIONS = 'A_SET_CITIES_OPTIONS'\r\ninterface SetCitiesOptions {\r\n type: 'A_SET_CITIES_OPTIONS'\r\n payload: SelectOptionModel[]\r\n}\r\nconst PICKUPTIME_SAVED = 'A_PICKUPTIME_SAVED'\r\ninterface PickUpTimeSaved {\r\n type: 'A_PICKUPTIME_SAVED'\r\n payload: PickUpTime\r\n}\r\nconst SET_PICKUPTIME_MANAGE = 'A_SET_PICKUPTIME_MANAGE'\r\ninterface SetPickUpTimeManage {\r\n type: 'A_SET_PICKUPTIME_MANAGE'\r\n payload: PickUpTime | undefined\r\n}\r\nconst RECEIVE_PICKUPTIMES_MANAGE_LIST = 'A_RECEIVE_PICKUPTIMES_MANAGE_LIST'\r\ninterface ReceivePickUpTimesManageList {\r\n type: 'A_RECEIVE_PICKUPTIMES_MANAGE_LIST'\r\n payload: PickUpTime[]\r\n}\r\nconst RECEIVE_PICKUPTIMES_OPTIONS = 'A_RECEIVE_PICKUPTIMES_OPTIONS'\r\ninterface ReceivePickUpTimesOptions {\r\n type: 'A_RECEIVE_PICKUPTIMES_OPTIONS'\r\n payload: SelectOptionModel[]\r\n}\r\ntype KnownAction =\r\n | PickUpTimeSaved\r\n | ReceivePickUpTimesOptions\r\n | ReceivePickUpTimesManageList\r\n | SetPickUpTimeManage\r\n | RouterAction\r\n | SetHotelsOptions\r\n | SetCitiesOptions\r\n\r\nexport const actionCreators = {\r\n getCitiesOptions:\r\n (): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (getState().pickUpTimes.hotelsOptions.length == 0) {\r\n let fetchTask = await CitiesApiService.getCitiesInSuppliersCountry(dispatch)\r\n const payload = fetchTask.Content\r\n if (fetchTask.IsOk && payload) {\r\n dispatch({ type: SET_CITIES_OPTIONS, payload })\r\n }\r\n }\r\n },\r\n getHotelsOptions:\r\n (): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (getState().pickUpTimes.hotelsOptions.length == 0) {\r\n let fetchTask = await HotelsApiService.getHotelsInSuppliersCountry(dispatch)\r\n const payload = fetchTask.Content\r\n if (fetchTask.IsOk && payload) {\r\n dispatch({ type: SET_HOTELS_OPTIONS, payload })\r\n }\r\n }\r\n },\r\n managePickUpTime:\r\n (id: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n if (id == 0) {\r\n dispatch({ type: SET_PICKUPTIME_MANAGE, payload: PickUpTime.Create(new PickUpTime()) })\r\n } else {\r\n const exTour = getState().tours.tour\r\n if (exTour && exTour.id != id) {\r\n }\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await PickUpTimesApiService.getForEdit(dispatch, id)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: SET_PICKUPTIME_MANAGE, payload: PickUpTime.Create(data) })\r\n } else {\r\n const localization = getState().localization.locale\r\n dispatch(\r\n NotificationsStore.actionCreators.add(\r\n new NotificationModel(\r\n NotificationType.error,\r\n localization.getString('Not found'),\r\n localization.getString('Time slot group not found or you are not allowed to manage it'),\r\n ),\r\n ),\r\n )\r\n dispatch(push('/timeslots'))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n }\r\n },\r\n save:\r\n (pupt: PickUpTime): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await PickUpTimesApiService.save(pupt, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({ type: PICKUPTIME_SAVED, payload: fetchTask.Content })\r\n }\r\n dispatch(push('/pickuptimes'))\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestPickUpTimesManageList:\r\n (): AppThunkAction => async (dispatch, getState) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await PickUpTimesApiService.getManageList(dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n const payload = data\r\n dispatch({ type: RECEIVE_PICKUPTIMES_MANAGE_LIST, payload })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestPickUpTimesOptions:\r\n (): AppThunkAction => async (dispatch, getState) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await PickUpTimesApiService.getOptions(dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n const Localization = getState().localization.locale\r\n const payload = [\r\n { value: undefined, label: Localization.getString('Not applicable') } as SelectOptionModel,\r\n ].concat(data)\r\n dispatch({ type: RECEIVE_PICKUPTIMES_OPTIONS, payload })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\nconst unloadedState: State = {\r\n options: [] as unknown as SelectOptionModel[],\r\n pickUpTimesManage: [] as PickUpTime[],\r\n hotelsOptions: [] as Hotel[],\r\n citiesOptions: [] as SelectOptionModel[],\r\n}\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case PICKUPTIME_SAVED:\r\n const pickUpTimesManage = state.pickUpTimesManage\r\n ? state.pickUpTimesManage.some((x) => x.id == action.payload.id)\r\n ? state.pickUpTimesManage.map((x) => (x.id == action.payload.id ? action.payload : x))\r\n : state.pickUpTimesManage.concat([action.payload])\r\n : []\r\n return { ...state, pickUpTime: undefined, pickUpTimesManage }\r\n case SET_PICKUPTIME_MANAGE:\r\n return { ...state, pickUpTime: action.payload }\r\n case RECEIVE_PICKUPTIMES_OPTIONS:\r\n return { ...state, options: action.payload }\r\n case RECEIVE_PICKUPTIMES_MANAGE_LIST:\r\n return { ...state, pickUpTimesManage: action.payload }\r\n case SET_HOTELS_OPTIONS:\r\n return { ...state, hotelsOptions: action.payload }\r\n case SET_CITIES_OPTIONS:\r\n return { ...state, citiesOptions: action.payload }\r\n }\r\n return state || unloadedState\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport Region from './../models/Region'\r\n\r\nexport default class RegionsApiService {\r\n public static async getSupplierRegions(dispatch: any) {\r\n return await apiCallWrapper('/api/regions/supplier', 'GET', dispatch)\r\n }\r\n}\r\n","import Region from './../models/Region'\r\nimport RegionsApiService from './../services/RegionsApiService'\r\nimport { AppThunkAction } from '.'\r\nimport { Reducer, Action } from 'redux'\r\n\r\nexport interface State {\r\n supplierRegions: Region[]\r\n}\r\nconst RECEIVE_SUPPLIER_REGIONS = 'A_RECEIVE_SUPPLIER_REGIONS'\r\ninterface ReceiveSupplierRegions {\r\n type: 'A_RECEIVE_SUPPLIER_REGIONS'\r\n payload: Region[]\r\n}\r\n\r\ntype KnownAction = ReceiveSupplierRegions\r\n\r\nexport const actionCreators = {\r\n requestSupplierRegions: (): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState()\r\n if (appState && appState.regions && appState.regions.supplierRegions.length === 0) {\r\n const result = await RegionsApiService.getSupplierRegions(dispatch)\r\n if (result.IsOk) {\r\n dispatch({ type: RECEIVE_SUPPLIER_REGIONS, payload: result.Content || [] })\r\n }\r\n }\r\n },\r\n}\r\n\r\nconst unloadedState: State = { supplierRegions: [] as Region[] }\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_SUPPLIER_REGIONS:\r\n return {\r\n supplierRegions: action.payload,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import CancellationPolicy from './CancellationPolicy'\r\n\r\nexport class Supplier {\r\n static Create(obj: Supplier) {\r\n return Object.assign(new Supplier(), obj)\r\n }\r\n name: string = ''\r\n code: string = ''\r\n address: string = ''\r\n countryId?: number\r\n taxRegistrationNumber: string = ''\r\n tradeLicenseNumber: string = ''\r\n paymentDetails: SupplierPaymentDetails = new SupplierPaymentDetails()\r\n isAcknowledged: boolean = false\r\n customerSupport: SupportContacts = new SupportContacts()\r\n operationsSupport: SupportContacts = new SupportContacts()\r\n accountsDepartment: SupportContacts = new SupportContacts()\r\n defaultSettings: SupplierDefaultSettings = new SupplierDefaultSettings()\r\n cancellationPolicy: CancellationPolicy[] = [] as CancellationPolicy[]\r\n get isDefaultNotesToClientPostBooking() {\r\n return this.defaultSettings.notesToClientPostBooking && this.defaultSettings.notesToClientPostBooking.length > 0\r\n }\r\n}\r\nexport class SupplierPaymentDetails {\r\n bankName: string = ''\r\n accountNumber: string = ''\r\n ibanNumber: string = ''\r\n swiftCode: string = ''\r\n bankBranchAddress: string = ''\r\n}\r\nexport class SupportContacts {\r\n primaryName: string = ''\r\n secondaryName: string = ''\r\n emergencyName: string = ''\r\n primaryPhone: string = ''\r\n secondaryPhone: string = ''\r\n emergencyPhone: string = ''\r\n primaryEmail: string = ''\r\n secondaryEmail: string = ''\r\n emergencyEmail: string = ''\r\n}\r\nexport class SupplierDefaultSettings {\r\n faq: string = ''\r\n termsAndConditions: string = ''\r\n notesToClientPostBooking: string = ''\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport { Supplier } from '../models/Supplier'\r\n\r\nexport default class SupplierApiService {\r\n static getMy = async (dispatch: any) => {\r\n return await apiCallWrapper('/api/suppliers/my', 'GET', dispatch)\r\n }\r\n static update = async (dispatch: any, model: Supplier) => {\r\n return await apiCallWrapper('/api/suppliers', 'PUT', dispatch, model)\r\n }\r\n}\r\n","import { Supplier } from './../models/Supplier'\r\nimport { Reducer, Action } from 'redux'\r\nimport { AppThunkAction } from '.'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\n\r\nimport { NotificationsStore } from 'traveldesk-ui'\r\nimport SupplierApiService from './../services/SupplierApiService'\r\n\r\nexport interface State {\r\n supplier?: Supplier\r\n}\r\n\r\ninterface SetSupplier {\r\n type: 'A_SET_SUPPLIER'\r\n payload: Supplier\r\n}\r\n\r\ntype KnownAction = SetSupplier | LoadingStore.KnownAction | NotificationsStore.KnownAction\r\n\r\nexport const actionCreators = {\r\n updateSupplier:\r\n (supplier: Supplier | undefined, updates: Supplier): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const model = Object.assign(Supplier.Create(supplier || new Supplier()), updates)\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await SupplierApiService.update(dispatch, model) //apiCallWrapper(`/api/tours/manage/${id}`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: 'A_SET_SUPPLIER', payload: Supplier.Create(data) })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestSupplier: (): AppThunkAction => async (dispatch, getState) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await SupplierApiService.getMy(dispatch) //apiCallWrapper(`/api/tours/manage/${id}`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: 'A_SET_SUPPLIER', payload: Supplier.Create(data) })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\n\r\nconst unloadedState: State = {}\r\n\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case 'A_SET_SUPPLIER':\r\n return {\r\n ...state,\r\n supplier: action.payload,\r\n }\r\n }\r\n return state || unloadedState\r\n}\r\n","import { apiCallWrapper } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\n\r\nexport default class CountriesApiService {\r\n static getOptions = async (dispatch: any) => {\r\n return await apiCallWrapper('/api/countries/options', 'GET', dispatch)\r\n }\r\n}\r\n","import { SelectOptionModel } from 'traveldesk-ui'\r\nimport CountriesApiService from './../services/CountriesApiService'\r\nimport { AppThunkAction } from '.'\r\nimport { Reducer, Action } from 'redux'\r\n\r\nexport interface State {\r\n countriesOptions: SelectOptionModel[]\r\n}\r\n\r\nconst COUNTRIES_OPTIONS_RESPONSE = 'A_COUNTRIES_OPTIONS_RESPONSE'\r\ninterface CountriesOptionsResponse {\r\n type: 'A_COUNTRIES_OPTIONS_RESPONSE'\r\n payload: SelectOptionModel[]\r\n}\r\n\r\ntype KnownAction = CountriesOptionsResponse\r\n\r\nexport const actionCreators = {\r\n requestCountriesOptions: (): AppThunkAction => async (dispatch) => {\r\n let fetchTask = await CountriesApiService.getOptions(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: COUNTRIES_OPTIONS_RESPONSE,\r\n payload: fetchTask.Content,\r\n })\r\n }\r\n },\r\n}\r\n\r\nconst unloadedState: State = {\r\n countriesOptions: [] as SelectOptionModel[],\r\n}\r\n\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case COUNTRIES_OPTIONS_RESPONSE:\r\n return { ...state, countriesOptions: action.payload }\r\n }\r\n return state || unloadedState\r\n}\r\n","import { BookingStatus } from '../../../models/BookingOperations'\r\nimport moment from 'moment'\r\n\r\nexport default class BookingAgent {\r\n public static Create(obj: BookingAgent) {\r\n return Object.assign(new BookingAgent(), obj, {\r\n date: moment(obj.date),\r\n })\r\n }\r\n id: number = 0\r\n date: moment.Moment = moment()\r\n offerId: number = 0\r\n hotelId: number = 0\r\n numAdults: number = 0\r\n numChildren: number = 0\r\n numInfants: number = 0\r\n numFoc: number = 0\r\n grossSales: number = 0\r\n agencyReceivable: number = 0\r\n agentId: number = 0\r\n staffAgentId: number = 0\r\n status: BookingStatus = BookingStatus.New\r\n pickUpTime: string = ''\r\n pickUpTimeStart: number = 0\r\n pickUpTimeEnd: number = 0\r\n voucher: string = ''\r\n notes: string = ''\r\n canDownloadTickets: boolean = false\r\n get customClass() {\r\n switch (this.status) {\r\n case BookingStatus.Cancelled:\r\n return 'cancelled'\r\n case BookingStatus.PendingVerification:\r\n return 'pending'\r\n default:\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { apiCallWrapper, EntitiesPaginatedModel } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\nimport BookingAgent from '../pages/Agent/Models/BookingAgent'\r\nimport BookingsRequest from '../pages/Agent/Models/BookingsRequest'\r\nimport OfferAgent from '../pages/Agent/Models/OfferAgent'\r\nimport Hotel from '../models/Hotel'\r\nimport IdNameModel from '../models/IdNameModel'\r\nimport NewBookingAgent from '../pages/Agent/Models/NewBookingAgent'\r\nimport AgentOfferPrice from '../pages/Agent/Models/AgentOfferPrice'\r\nimport NewBookingArrival from '../pages/Agent/Models/NewBookingArrival'\r\nimport NewBookingGroupInfo from '../pages/Agent/Models/NewBookingArrivalGroupInfo'\r\nimport TourNewBookingModel from '../pages/Agent/Models/TourNewBookingModel'\r\n\r\nexport default class AgencyAreaApiService {\r\n static addBooking = async (model: NewBookingAgent, dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/bookings`, 'POST', dispatch, model)\r\n }\r\n static getBookingDetails = async (id: number, dispatch: any) => {\r\n return await apiCallWrapper(`api/agent/bookings/${id}`, 'GET', dispatch)\r\n }\r\n static getNewBookingTours = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/tours/fornewbooking`, 'GET', dispatch)\r\n }\r\n static getNewBookingGroupInfo = async (groupInfoId: number, hotelId: number, dispatch: any) => {\r\n return await apiCallWrapper(\r\n `/api/agent/customers/groupInfo?hotelId=${hotelId}&groupInfoId=${groupInfoId}`,\r\n 'GET',\r\n dispatch,\r\n )\r\n }\r\n static getNewBookingArrivals = async (hotelId: number, date: moment.Moment, dispatch: any) => {\r\n return await apiCallWrapper(\r\n `/api/agent/customers/inHouse?hotelId=${hotelId}&date=${date.format('YYYY-MM-DD')}`,\r\n 'GET',\r\n dispatch,\r\n )\r\n }\r\n static getNewBookingOfferPrice = async (tourId: number, date: moment.Moment, dispatch: any) => {\r\n return await apiCallWrapper(\r\n `/api/agent/offers/price?tourId=${tourId}&date=${date.format('YYYY-MM-DD')}`,\r\n 'GET',\r\n dispatch,\r\n )\r\n }\r\n static getNewBookingHotels = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/hotels/fornewbooking`, 'GET', dispatch)\r\n }\r\n // static getNewBookingOffers = async (dispatch: any) => {\r\n // return await apiCallWrapper(`/api/agent/offers/fornewbooking`, 'GET', dispatch)\r\n // }\r\n static getBookingsAgents = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/agents/bookings`, 'GET', dispatch)\r\n }\r\n static getCommissionAgents = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/agents/commissions`, 'GET', dispatch)\r\n }\r\n static getBookingsHotels = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/hotels/bookings`, 'GET', dispatch)\r\n }\r\n static getCommissionHotels = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/hotels/commissions`, 'GET', dispatch)\r\n }\r\n static getBookingsOffers = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/offers/bookings`, 'GET', dispatch)\r\n }\r\n static getCommissionOffers = async (dispatch: any) => {\r\n return await apiCallWrapper(`/api/agent/offers/commissions`, 'GET', dispatch)\r\n }\r\n static getCommissions = async (request: BookingsRequest, dispatch: any) => {\r\n return await apiCallWrapper>(\r\n `/api/agent/commissions?${request.query}`,\r\n 'GET',\r\n dispatch,\r\n )\r\n }\r\n static getBookings = async (request: BookingsRequest, dispatch: any) => {\r\n const { query } = request\r\n return await apiCallWrapper>(\r\n `/api/agent/bookings?${query}`,\r\n 'GET',\r\n dispatch,\r\n )\r\n }\r\n}\r\n","import { SelectOptionModel } from 'traveldesk-ui'\r\nimport ArrivalGroupInfoHotelModel from './ArrivalGroupInfoHotelModel'\r\nimport ArrivalModel from './ArrivalModel'\r\n\r\nexport default class ArrivalGroupInfoModel {\r\n id: number = 0\r\n groupId: string = ''\r\n arrivals: ArrivalModel[] = []\r\n status: ArrivalGroupStatus = ArrivalGroupStatus.Pending\r\n hotels: ArrivalGroupInfoHotelModel[] = []\r\n notes: string = ''\r\n numberOfBookings: number = 0\r\n phoneNumbers: string = ''\r\n communicationStatus: ArrivalGroupInfoCommunicationStatus = ArrivalGroupInfoCommunicationStatus.None\r\n public static GetPhonesHidden(phones: string) {\r\n return phones\r\n ? phones\r\n .split(',')\r\n .map((phone, index) => `${phone.slice(0, 7)}...`)\r\n .join(',')\r\n : undefined\r\n }\r\n public static Create(obj: ArrivalGroupInfoModel): ArrivalGroupInfoModel {\r\n return Object.assign(new ArrivalGroupInfoModel(obj.groupId), obj, {\r\n arrivals: obj.arrivals?.map((a) => ArrivalModel.Create(a)) ?? [],\r\n hotels: (obj.hotels || []).map((h) => ArrivalGroupInfoHotelModel.Create(h)),\r\n })\r\n }\r\n constructor(groupId: string) {\r\n this.groupId = groupId\r\n this.hotels = []\r\n }\r\n // RenderPhones(fontSize?:number) {\r\n // return this.PhoneNumbers\r\n // ? this.PhoneNumbers.split(',').map((phone,index)=>{phone})\r\n // : null\r\n // }\r\n // RenderPhonesNoLink(fontSize?:number) {\r\n // return this.PhoneNumbers\r\n // ? this.PhoneNumbers.split(',').map((phone,index)=>{phone})\r\n // : null\r\n // }\r\n\r\n public static get GetStatusOptionsFilter(): SelectOptionModel[] {\r\n return this.GetStatusOptions.concat([\r\n { value: ArrivalGroupStatus.Purchased.toString(), label: 'Purchased' },\r\n { value: ArrivalGroupStatus.Deleted.toString(), label: 'Deleted' },\r\n ])\r\n }\r\n public static get GetStatusOptions(): SelectOptionModel[] {\r\n return [\r\n {\r\n value: '0',\r\n label: 'Pending',\r\n },\r\n // {\r\n // value:\"1\",\r\n // label:\"Did No Attend\"\r\n // }, {\r\n // value:\"2\",\r\n // label:\"Did not Buy\"\r\n // },\r\n {\r\n value: '3',\r\n label: 'Purchased Diff. Name',\r\n },\r\n {\r\n value: '4',\r\n label: 'Cancelled',\r\n },\r\n {\r\n value: '6',\r\n label: 'Non tourist',\r\n },\r\n ]\r\n }\r\n\r\n public static StatusDescription(\r\n s: ArrivalGroupStatus,\r\n cs: ArrivalGroupInfoCommunicationStatus,\r\n isDeleted: boolean,\r\n numberOfBookings: number,\r\n ) {\r\n const status = cs > 0 && s < 3 ? (cs >= 16 ? 8 : 7) : s\r\n return isDeleted\r\n ? ArrivalGroupStatusDescriptions[-1]\r\n : numberOfBookings > 0\r\n ? `${numberOfBookings} Booking${numberOfBookings > 1 ? 's' : ''}`\r\n : ArrivalGroupStatusDescriptions[status]\r\n }\r\n public static StatusStyle(\r\n s: ArrivalGroupStatus,\r\n cs: ArrivalGroupInfoCommunicationStatus,\r\n isDeleted: boolean,\r\n numberOfBookings: number,\r\n ) {\r\n const status = cs > 0 && s < 3 ? (cs >= 16 ? 8 : 7) : s\r\n return isDeleted\r\n ? ArrivalStatusStyles[-1]\r\n : numberOfBookings > 0\r\n ? ArrivalStatusStyles[5]\r\n : ArrivalStatusStyles[status]\r\n }\r\n}\r\nexport enum ArrivalGroupInfoCommunicationStatus {\r\n None = 0,\r\n CallInitiated = 1,\r\n MeetInPersonInitiated = 1 << 1,\r\n MessengerInitiated = 1 << 2,\r\n LetterInLobbyInitiated = 1 << 3,\r\n CallResponded = 1 << 4,\r\n MeetInPersonResponded = 1 << 5,\r\n MessengerResponded = 1 << 6,\r\n LetterInLobbyResponded = 1 << 7,\r\n}\r\nexport enum ArrivalGroupStatus {\r\n Deleted = -1,\r\n Pending,\r\n DidNotAttend,\r\n DidNotBuy,\r\n PurchasedDiffName,\r\n Cancelled,\r\n Purchased,\r\n NonTourist,\r\n}\r\nconst ArrivalGroupStatusDescriptions = {\r\n [-1]: 'Deleted',\r\n [0]: 'No Comm.',\r\n [1]: 'Did Not Attend', //remove\r\n [2]: 'Did Not Buy', //remove\r\n [3]: 'Purch Diff. Name',\r\n [4]: 'Cancelled',\r\n [5]: 'Purchased',\r\n [6]: 'Non Tourist', //6\r\n [7]: 'Comm. Initiated',\r\n [8]: 'Comm. Resp.',\r\n}\r\nconst ArrivalStatusStyles = {\r\n [-1]: { backgroundColor: 'gray', color: '#aaa' },\r\n [0]: { backgroundColor: 'red', color: 'white' },\r\n [1]: { backgroundColor: 'orange', color: 'white' },\r\n [2]: { backgroundColor: 'lightblue' },\r\n [3]: { backgroundColor: 'lightgreen' },\r\n [4]: { backgroundColor: 'yellow' },\r\n [5]: { backgroundColor: 'lightgreen' },\r\n [6]: { backgroundColor: 'wheat' },\r\n [7]: { backgroundColor: 'peachpuff' },\r\n [8]: { backgroundColor: 'lightblue' },\r\n}\r\n","export default class OfferAgent {\r\n public static Create(obj: OfferAgent) {\r\n return Object.assign(new OfferAgent(), obj)\r\n }\r\n id: number = 0\r\n name: string = ''\r\n}\r\n","import { PaginationModel, EntitiesPaginatedModel } from 'traveldesk-ui'\r\nimport BookingAgent from '../pages/Agent/Models/BookingAgent'\r\nimport BookingsRequest from '../pages/Agent/Models/BookingsRequest'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\nimport AgencyAreaApiService from '../services/AgencyAreaApiService'\r\nimport { AppThunkAction } from '.'\r\nimport { Reducer, Action } from 'redux'\r\nimport OfferAgent from '../pages/Agent/Models/OfferAgent'\r\nimport Hotel from '../models/Hotel'\r\nimport IdNameModel from '../models/IdNameModel'\r\n\r\nexport interface State {\r\n data?: EntitiesPaginatedModel\r\n offers: OfferAgent[]\r\n offersHash: Map\r\n hotels: Hotel[]\r\n hotelsHash: Map\r\n agents: IdNameModel[]\r\n agentsHash: Map\r\n}\r\n\r\nconst RECEIVE_AGENCY_COMMISSIONS = 'A_RECEIVE_AGENCY_COMMISSIONS'\r\ninterface ReceiveAgentCommissions {\r\n type: 'A_RECEIVE_AGENCY_COMMISSIONS'\r\n payload: EntitiesPaginatedModel\r\n}\r\nconst RECEIVE_AGENT_AGENTS = 'A_RECEIVE_AGENT_AGENTS'\r\ninterface ReceiveAgentAgents {\r\n type: 'A_RECEIVE_AGENT_AGENTS'\r\n payload: IdNameModel[]\r\n}\r\nconst RECEIVE_AGENT_OFFERS = 'A_RECEIVE_AGENT_OFFERS'\r\ninterface ReceiveAgentOffers {\r\n type: 'A_RECEIVE_AGENT_OFFERS'\r\n payload: OfferAgent[]\r\n}\r\nconst RECEIVE_AGENT_HOTELS = 'A_RECEIVE_AGENT_HOTELS'\r\ninterface ReceiveAgentHotels {\r\n type: 'A_RECEIVE_AGENT_HOTELS'\r\n payload: Hotel[]\r\n}\r\ntype KnownAction = ReceiveAgentCommissions | ReceiveAgentOffers | ReceiveAgentHotels | ReceiveAgentAgents\r\n\r\nexport const actionCreators = {\r\n requestAgencyAgents: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissionAgents(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_AGENTS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyHotels: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissionHotels(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_HOTELS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => Hotel.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyOffers: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissionOffers(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_OFFERS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => OfferAgent.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyCommissions: (\r\n request: BookingsRequest,\r\n ): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissions(request, dispatch)\r\n const data = fetchTask.Content\r\n ? Object.assign(new EntitiesPaginatedModel(), {\r\n entities: fetchTask.Content.entities.map((x) => BookingAgent.Create(x)),\r\n pagingInfo: Object.assign(new PaginationModel(), fetchTask.Content.pagingInfo),\r\n })\r\n : new EntitiesPaginatedModel()\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_AGENCY_COMMISSIONS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\nconst unloadedState: State = {\r\n data: undefined,\r\n offers: [],\r\n offersHash: new Map(),\r\n hotels: [],\r\n hotelsHash: new Map(),\r\n agents: [],\r\n agentsHash: new Map(),\r\n}\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_AGENCY_COMMISSIONS:\r\n return {\r\n ...state,\r\n data: action.payload,\r\n }\r\n case RECEIVE_AGENT_AGENTS:\r\n const agentsHash = action.payload.reduce((res, next) => {\r\n res.set(next.id as number, next)\r\n return res\r\n }, new Map())\r\n return {\r\n ...state,\r\n agents: action.payload,\r\n agentsHash,\r\n }\r\n case RECEIVE_AGENT_HOTELS:\r\n return {\r\n ...state,\r\n hotels: action.payload,\r\n hotelsHash: action.payload.reduce((res, next) => {\r\n res.set(next.id, next)\r\n return res\r\n }, new Map()),\r\n }\r\n case RECEIVE_AGENT_OFFERS:\r\n return {\r\n ...state,\r\n offers: action.payload,\r\n offersHash: action.payload.reduce((res, next) => {\r\n res.set(next.id, next)\r\n return res\r\n }, new Map()),\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { round } from 'traveldesk-ui'\r\nimport moment from 'moment'\r\n\r\nexport default class AgentOfferPrice {\r\n public static Create(obj: AgentOfferPrice) {\r\n return Object.assign(new AgentOfferPrice(), obj, {\r\n periodStart: moment(obj.periodStart),\r\n periodEnd: moment(obj.periodEnd),\r\n })\r\n }\r\n offerId: number = 0\r\n periodStart: moment.Moment = moment()\r\n periodEnd: moment.Moment = moment()\r\n pricePerAdultRecUsd: number = 0\r\n pricePerChildRecUsd: number = 0\r\n pricePerTripRecUsd: number = 0\r\n pricePerAdultRec: number = 0\r\n pricePerChildRec: number = 0\r\n pricePerTripRec: number = 0\r\n commission: number = 0\r\n netPricePerAdultUsd: number = 0\r\n netPricePerChildUsd: number = 0\r\n netPricePerTripUsd: number = 0\r\n netPricePerAdult: number = 0\r\n netPricePerChild: number = 0\r\n netPricePerTrip: number = 0\r\n totalPublishRateUsd = (adults: number, children: number) => {\r\n return round(\r\n (adults || 0) * this.pricePerAdultRecUsd +\r\n (children || 0) * this.pricePerChildRecUsd +\r\n this.pricePerTripRecUsd,\r\n )\r\n }\r\n totalPublishRate = (adults: number, children: number) => {\r\n return round(\r\n (adults || 0) * this.pricePerAdultRec + (children || 0) * this.pricePerChildRec + this.pricePerTripRec,\r\n )\r\n }\r\n\r\n totalNetPriceUsd = (adults: number, children: number) => {\r\n return round(\r\n (adults || 0) * this.netPricePerAdultUsd +\r\n (children || 0) * this.netPricePerChildUsd +\r\n this.netPricePerTripUsd,\r\n )\r\n }\r\n totalNetPrice = (adults: number, children: number) => {\r\n return round(\r\n (adults || 0) * this.netPricePerAdult + (children || 0) * this.netPricePerChild + this.netPricePerTrip,\r\n )\r\n }\r\n}\r\n","export default class NewBookingArrival {\r\n public static Create(obj: NewBookingArrival) {\r\n return Object.assign(new NewBookingArrival(), obj)\r\n }\r\n id: number = 0\r\n paxId: string = ''\r\n name: string = ''\r\n groupId: string = ''\r\n phoneNumbers: string = ''\r\n hotelId: number = 0\r\n groupInfoId?: number\r\n}\r\n","export default class TimeSlotNewBookingModel {\r\n public static Create(obj: TimeSlotNewBookingModel) {\r\n return Object.assign(new TimeSlotNewBookingModel(), obj)\r\n }\r\n isOnDay = (weekDay: number) => {\r\n // return true\r\n const w = 1 << (weekDay - 1)\r\n const isAvailable = this.daysOffered == 0 ? true : (w & this.daysOffered) > 0\r\n return isAvailable\r\n }\r\n id: number = 0\r\n name: string = ''\r\n description: string = ''\r\n daysOffered: number = 0\r\n isAnyTime: boolean = false\r\n isNoTime: boolean = false\r\n startTimeHour: number = 0\r\n startTimeMinutes: number = 0\r\n endTimeHour: number = 0\r\n endTimeMinutes: number = 0\r\n toString() {\r\n return `${this.description}` // (${this.name})`\r\n }\r\n}\r\n","import TimeSlotNewBookingModel from './TimeSlotNewBookingModel'\r\nexport default class OfferNewBookingModel {\r\n public static Create(obj: OfferNewBookingModel) {\r\n return Object.assign(new OfferNewBookingModel(), obj, {\r\n timeSlots: obj.timeSlots.map((ts) => TimeSlotNewBookingModel.Create(ts)),\r\n })\r\n }\r\n id: number = 0\r\n nameInternal: string = ''\r\n nameDisplay: string = ''\r\n numberOfHours: number = 0\r\n citiesIds: number[] = []\r\n daysOffered: number = 0\r\n isOnDay = (weekDay: number) => {\r\n const w = 1 << (weekDay - 1)\r\n const isAvailable = this.daysOffered == 0 ? true : (w & this.daysOffered) > 0\r\n // console.log(\r\n // 'If offer on ' +\r\n // weekDay +\r\n // ' ' +\r\n // this.daysOffered +\r\n // ' ' +\r\n // w +\r\n // ' ' +\r\n // (w & this.daysOffered) +\r\n // ' ' +\r\n // isAvailable,\r\n // )\r\n return isAvailable\r\n }\r\n childAge: number = 12\r\n childrenAllowed: boolean = true\r\n infantAge: number = 3\r\n infantsAllowed: boolean = true\r\n maxNumOfPeople: number = 0\r\n minNumOfPeople: number = 0\r\n timeSlots: TimeSlotNewBookingModel[] = []\r\n}\r\n","import OfferNewBookingModel from './OfferNewBookingModel'\r\nexport default class TourNewBookingModel {\r\n public static Create(obj: TourNewBookingModel) {\r\n return Object.assign(new TourNewBookingModel(), obj, {\r\n offers: obj.offers.map((o) => OfferNewBookingModel.Create(o)),\r\n })\r\n }\r\n id: number = 0\r\n offers: OfferNewBookingModel[] = []\r\n nameInternal: string = ''\r\n nameDisplay: string = ''\r\n}\r\n","import { CallHistoryMethodAction, push } from 'connected-react-router'\r\nimport { EntitiesPaginatedModel, PaginationModel } from 'traveldesk-ui'\r\nimport OfferAgent from '../pages/Agent/Models/OfferAgent'\r\nimport Hotel from '../models/Hotel'\r\nimport BookingAgent from '../pages/Agent/Models/BookingAgent'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\nimport { AppThunkAction } from '.'\r\nimport AgencyAreaApiService from '../services/AgencyAreaApiService'\r\nimport BookingsRequest from '../pages/Agent/Models/BookingsRequest'\r\nimport { Reducer, Action } from 'redux'\r\n// import TourNewBookingModel from '../pages/Agent/Models/TourNewBookingModel'\r\nimport AgentOfferPrice from '../pages/Agent/Models/AgentOfferPrice'\r\nimport NewBookingAgent from '../pages/Agent/Models/NewBookingAgent'\r\nimport NewBookingArrival from '../pages/Agent/Models/NewBookingArrival'\r\nimport { async } from 'q'\r\nimport TourNewBookingModel from '../pages/Agent/Models/TourNewBookingModel'\r\nimport IdNameModel from '../models/IdNameModel'\r\nexport interface State {\r\n data?: EntitiesPaginatedModel\r\n offers: OfferAgent[]\r\n offersHash: Map\r\n hotels: Hotel[]\r\n hotelsNewBooking: Hotel[]\r\n toursNewBooking: TourNewBookingModel[]\r\n newBookingOfferPrices?: AgentOfferPrice[]\r\n hotelsHash: Map\r\n newBookingArrivals: NewBookingArrival[]\r\n bookingDetails?: BookingAgent\r\n agents: IdNameModel[]\r\n agentsHash: Map\r\n}\r\n\r\nconst BOOKING_DETAILS_CLEAR = 'A_BOOKING_DETAILS_CLEAR'\r\ninterface BookingDetailsClear {\r\n type: 'A_BOOKING_DETAILS_CLEAR'\r\n}\r\nconst BOOKING_DETAILS_SET = 'A_BOOKING_DETAILS_SET'\r\ninterface BookingDetailsSet {\r\n type: 'A_BOOKING_DETAILS_SET'\r\n payload: BookingAgent\r\n}\r\nconst RECEIVE_AGENT_BOOKINGS = 'A_RECEIVE_AGENT_BOOKINGS'\r\ninterface ReceiveAgentBookings {\r\n type: 'A_RECEIVE_AGENT_BOOKINGS'\r\n payload: EntitiesPaginatedModel\r\n}\r\nconst RECEIVE_AGENCY_BOOKINGS_AGENTS = 'A_RECEIVE_AGENCY_BOOKINGS_AGENTS'\r\ninterface ReceiveAgencyBookingsAgents {\r\n type: 'A_RECEIVE_AGENCY_BOOKINGS_AGENTS'\r\n payload: IdNameModel[]\r\n}\r\nconst RECEIVE_AGENCY_BOOKINGS_OFFERS = 'A_RECEIVE_AGENCY_BOOKINGS_OFFERS'\r\ninterface ReceiveAgencyBookingsOffers {\r\n type: 'A_RECEIVE_AGENCY_BOOKINGS_OFFERS'\r\n payload: OfferAgent[]\r\n}\r\nconst RECEIVE_AGENCY_BOOKINGS_HOTELS = 'RECEIVE_AGENCY_BOOKINGS_HOTELS'\r\ninterface ReceiveAgencyBookingsHotels {\r\n type: 'RECEIVE_AGENCY_BOOKINGS_HOTELS'\r\n payload: Hotel[]\r\n}\r\nconst RECEIVE_AGENT_NEWBOOKING_HOTELS = 'A_RECEIVE_AGENT_NEWBOOKING_HOTELS'\r\ninterface ReceiveAgentNewBookingHotels {\r\n type: 'A_RECEIVE_AGENT_NEWBOOKING_HOTELS'\r\n payload: Hotel[]\r\n}\r\nconst RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE = 'A_RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE'\r\ninterface ReceiveAgentNewBookingOfferPrice {\r\n type: 'A_RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE'\r\n payload?: AgentOfferPrice[]\r\n}\r\nconst RECEIVE_AGENT_NEWBOOKING_TOURS = 'A_RECEIVE_AGENT_NEWBOOKING_TOURS'\r\ninterface ReceiveAgentNewBookingTours {\r\n type: 'A_RECEIVE_AGENT_NEWBOOKING_TOURS'\r\n payload: TourNewBookingModel[]\r\n}\r\nconst RECEIVE_AGENT_NEWBOOKING_ARRIVALS = 'A_RECEIVE_AGENT_NEWBOOKING_ARRIVALS'\r\ninterface ReceiveAgentNewBookingArrivals {\r\n type: 'A_RECEIVE_AGENT_NEWBOOKING_ARRIVALS'\r\n payload: NewBookingArrival[]\r\n}\r\ntype KnownAction =\r\n | ReceiveAgentBookings\r\n | ReceiveAgentNewBookingOfferPrice\r\n | ReceiveAgencyBookingsOffers\r\n | ReceiveAgencyBookingsHotels\r\n | ReceiveAgentNewBookingHotels\r\n | ReceiveAgentNewBookingTours\r\n | ReceiveAgentNewBookingArrivals\r\n | ReceiveAgencyBookingsAgents\r\n | LoadingStore.KnownAction\r\n | CallHistoryMethodAction\r\n | BookingDetailsClear\r\n | BookingDetailsSet\r\n\r\nexport const actionCreators = {\r\n addBooking:\r\n (model: NewBookingAgent): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n const fetchTask = await AgencyAreaApiService.addBooking(model, dispatch)\r\n if (fetchTask.IsOk) {\r\n dispatch(push(`/agent/bookings/details/${fetchTask.Content?.id}`))\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n clearBookingDetails: () => {\r\n type: BOOKING_DETAILS_CLEAR\r\n },\r\n requestAgencyBookingsAgents: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getBookingsAgents(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENCY_BOOKINGS_AGENTS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestBookingDetails:\r\n (id: number): AppThunkAction =>\r\n async (dispatch) => {\r\n var fetchTask = await AgencyAreaApiService.getBookingDetails(id, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: BOOKING_DETAILS_SET,\r\n payload: BookingAgent.Create(fetchTask.Content),\r\n })\r\n }\r\n },\r\n requestNewBookingTours: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getNewBookingTours(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_NEWBOOKING_TOURS,\r\n payload: fetchTask.Content.sort((a, b) => (a.nameInternal > b.nameInternal ? 1 : -1)).map((x) =>\r\n TourNewBookingModel.Create(x),\r\n ),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestNewBookingArrivals:\r\n (hotelId: number, date: moment.Moment): AppThunkAction =>\r\n async (dispatch) => {\r\n if (hotelId && date) {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getNewBookingArrivals(hotelId, date, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_NEWBOOKING_ARRIVALS,\r\n payload: fetchTask.Content.map((x) => NewBookingArrival.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n } else {\r\n dispatch({ type: RECEIVE_AGENT_NEWBOOKING_ARRIVALS, payload: [] })\r\n }\r\n },\r\n requestNewBookingOfferPrices:\r\n (tourId: number, date: moment.Moment): AppThunkAction =>\r\n async (dispatch) => {\r\n if (tourId && date) {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getNewBookingOfferPrice(tourId, date, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE,\r\n payload: fetchTask.Content.map((x) => AgentOfferPrice.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n } else {\r\n dispatch({ type: RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE, payload: undefined })\r\n }\r\n },\r\n requestNewBookingHotels: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getNewBookingHotels(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENT_NEWBOOKING_HOTELS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => Hotel.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyBookingsHotels: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getBookingsHotels(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENCY_BOOKINGS_HOTELS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => Hotel.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgentCommissionHotels: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissionHotels(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENCY_BOOKINGS_HOTELS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => Hotel.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyBookingsOffers: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getBookingsOffers(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENCY_BOOKINGS_OFFERS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => OfferAgent.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgentCommissionOffers: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getCommissionOffers(dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n dispatch({\r\n type: RECEIVE_AGENCY_BOOKINGS_OFFERS,\r\n payload: fetchTask.Content.sort((a, b) => (a.name > b.name ? 1 : -1)).map((x) => OfferAgent.Create(x)),\r\n })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestAgencyBookings:\r\n (request: BookingsRequest): AppThunkAction =>\r\n async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getBookings(request, dispatch)\r\n const data = fetchTask.Content\r\n ? Object.assign(new EntitiesPaginatedModel(), {\r\n entities: fetchTask.Content.entities.map((x) => BookingAgent.Create(x)),\r\n pagingInfo: Object.assign(new PaginationModel(), fetchTask.Content.pagingInfo),\r\n })\r\n : new EntitiesPaginatedModel()\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: RECEIVE_AGENT_BOOKINGS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\nconst unloadedState: State = {\r\n data: undefined,\r\n agents: [],\r\n agentsHash: new Map(),\r\n offers: [],\r\n offersHash: new Map(),\r\n hotels: [],\r\n hotelsHash: new Map(),\r\n hotelsNewBooking: [],\r\n newBookingArrivals: [],\r\n toursNewBooking: [] as TourNewBookingModel[],\r\n}\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_AGENT_BOOKINGS:\r\n return {\r\n ...state,\r\n data: action.payload,\r\n }\r\n case RECEIVE_AGENT_NEWBOOKING_TOURS:\r\n return {\r\n ...state,\r\n toursNewBooking: action.payload,\r\n }\r\n case RECEIVE_AGENCY_BOOKINGS_HOTELS:\r\n return {\r\n ...state,\r\n hotels: action.payload,\r\n hotelsHash: action.payload.reduce((res, next) => {\r\n res.set(next.id, next)\r\n return res\r\n }, new Map()),\r\n }\r\n case RECEIVE_AGENCY_BOOKINGS_OFFERS:\r\n return {\r\n ...state,\r\n offers: action.payload,\r\n offersHash: action.payload.reduce((res, next) => {\r\n res.set(next.id, next)\r\n return res\r\n }, new Map()),\r\n }\r\n case RECEIVE_AGENT_NEWBOOKING_HOTELS:\r\n return {\r\n ...state,\r\n hotelsNewBooking: action.payload,\r\n }\r\n case RECEIVE_AGENT_NEWBOOKING_OFFER_PRICE:\r\n return {\r\n ...state,\r\n newBookingOfferPrices: action.payload,\r\n }\r\n case RECEIVE_AGENCY_BOOKINGS_AGENTS:\r\n const agentsHash = action.payload.reduce((res, next) => {\r\n res.set(next.id as number, next)\r\n return res\r\n }, new Map())\r\n return {\r\n ...state,\r\n agents: action.payload,\r\n agentsHash,\r\n }\r\n case RECEIVE_AGENT_NEWBOOKING_ARRIVALS:\r\n return {\r\n ...state,\r\n newBookingArrivals: action.payload,\r\n }\r\n case BOOKING_DETAILS_SET:\r\n return {\r\n ...state,\r\n bookingDetails: action.payload,\r\n }\r\n case BOOKING_DETAILS_CLEAR:\r\n return {\r\n ...state,\r\n bookingDetails: undefined,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","export default class ArrivalGroupInfoHotelModel {\r\n public static Create(obj: ArrivalGroupInfoHotelModel) {\r\n return Object.assign(new ArrivalGroupInfoHotelModel(obj.groupInfoId, obj.hotelId, obj.roomNumber), obj)\r\n }\r\n\r\n constructor(groupInfoId: number, hotelId: number, roomNumber: string) {\r\n this.groupInfoId = groupInfoId\r\n this.hotelId = hotelId\r\n this.roomNumber = roomNumber\r\n }\r\n groupInfoId: number = 0\r\n hotelId: number = 0\r\n roomNumber: string = ''\r\n}\r\n","import moment from \"moment\";\r\nimport { fromNumber } from \"traveldesk-ui\";\r\n\r\nexport default class ArrivalMeeting {\r\n static Create(obj: ArrivalMeeting) {\r\n return Object.assign(new ArrivalMeeting(), obj, {\r\n date: moment(obj.date)\r\n })\r\n }\r\n date: moment.Moment = moment()\r\n get dateTimeDisplay() {\r\n return `${this.date.format(\"DD.MM.YYYY\")} ${this.timeDisplay}`\r\n }\r\n get timeDisplay() {\r\n return this.isNoTime ? \"N/A\" : `${fromNumber(this.timeStart)} - ${fromNumber(this.timeEnd)}`\r\n }\r\n staffId: number = 0\r\n staffName: string = ''\r\n timeStart: number = 0\r\n timeEnd: number = 0\r\n isNoTime: boolean = false\r\n}","// import { fromNumber } from \"../../UI/TimePicker/utils\";\r\nimport ArrivalGroupInfoModel, { ArrivalGroupInfoCommunicationStatus, ArrivalGroupStatus } from './ArrivalGroupInfoModel'\r\nimport IdNameModel from '../../models/IdNameModel'\r\nimport { fromNumber } from 'traveldesk-ui'\r\nimport moment from 'moment/moment'\r\nimport ArrivalGroupInfoHotelModel from './ArrivalGroupInfoHotelModel'\r\nimport ArrivalMeeting from './ArrivalMeeting'\r\nexport default class ArrivalModel {\r\n public static Create(model: ArrivalModel) {\r\n const res = Object.assign(new ArrivalModel(), model, {\r\n arrivalDate: moment(model.arrivalDate),\r\n departureDate: moment(model.departureDate),\r\n birthDate: moment(model.birthDate),\r\n groupInfo: model.groupInfo ? ArrivalGroupInfoModel.Create(model.groupInfo) : undefined,\r\n meetings: model.meetings ? model.meetings.map(x => ArrivalMeeting.Create(x)) : []\r\n })\r\n return res\r\n }\r\n public static GroupIdUrl(groupId: string) {\r\n return btoa(groupId)\r\n }\r\n id: number = 0\r\n tdHotelId: number = 0\r\n hotelName: string = ''\r\n paxId: string = ''\r\n tdAgencyId: number = 0\r\n tdAgencyName: string = ''\r\n arrivalDate: moment.Moment = moment()\r\n arrivalTime: number = 0\r\n departureDate: moment.Moment = moment()\r\n departureTime: number = 0\r\n departureTimeString: string = ''\r\n pickUpTime?: number\r\n pickUpTimeEnd?: number\r\n isDeleted: boolean = false\r\n get customClass() {\r\n return this.isDeleted ? 'deleted deleted-arrival' : undefined\r\n }\r\n // RenderPhones(fontSize?:number) {\r\n // return this.GroupInfo\r\n // ? this.GroupInfo.PhoneNumbers\r\n // ? this.GroupInfo.PhoneNumbers.split(',').map((phone,index)=>{phone})\r\n // : null\r\n // : null\r\n // }\r\n get PickUpTimeDescr() {\r\n return `${this.pickUpTime ? fromNumber(this.pickUpTime) : ' '} ${this.pickUpTimeEnd ? `- ${fromNumber(this.pickUpTimeEnd)}` : ' '\r\n }`\r\n }\r\n touristName: string = ''\r\n birthDate?: moment.Moment\r\n get RoomNumber() {\r\n return this.groupInfo?.hotels?.find((x) => x.hotelId == this.tdHotelId)?.roomNumber ?? ''\r\n }\r\n set RoomNumber(value: string) {\r\n let gi = this.groupInfo\r\n if (!gi) {\r\n gi = new ArrivalGroupInfoModel(this.groupId)\r\n this.groupInfo = gi\r\n }\r\n let h = gi.hotels.find((x) => x.hotelId == this.tdHotelId)\r\n if (!h) {\r\n h = new ArrivalGroupInfoHotelModel(gi.id, this.tdHotelId, value)\r\n gi.hotels.push(h)\r\n }\r\n h.roomNumber = value\r\n }\r\n get Notes() {\r\n return this.groupInfo?.notes ?? ''\r\n }\r\n set Notes(value: string) {\r\n let gi = this.groupInfo\r\n if (!gi) {\r\n gi = new ArrivalGroupInfoModel(this.groupId)\r\n this.groupInfo = gi\r\n }\r\n gi.notes = value\r\n }\r\n get PhoneNumbers() {\r\n return this.groupInfo?.phoneNumbers ?? this.touristPhone\r\n }\r\n set PhoneNumbers(value: string) {\r\n let gi = this.groupInfo\r\n if (!gi) {\r\n gi = new ArrivalGroupInfoModel(this.groupId)\r\n this.groupInfo = gi\r\n }\r\n gi.phoneNumbers = value\r\n }\r\n get Age() {\r\n const age = this.AgeNumber\r\n return age > 0 ? age : 'Not set'\r\n }\r\n get AgeNumber(): number {\r\n return this.birthDate ? moment().diff(this.birthDate, 'years') : 0\r\n }\r\n touristPhone: string = ''\r\n touristEmail: string = ''\r\n touristCountry: string = ''\r\n roomType: string = ''\r\n accType: string = ''\r\n mealType: string = ''\r\n hotelId: string = ''\r\n arrivalTerminal: string = ''\r\n arrivalFlight: string = ''\r\n arrivalTransport: string = ''\r\n departureFlight: string = ''\r\n departureTerminal: string = ''\r\n departureTransport: string = ''\r\n agencyId: string = ''\r\n // Agency: string\r\n groupId: string = ''\r\n hotelConfNumber: string = ''\r\n agentConfNumber: string = ''\r\n groupInfo?: ArrivalGroupInfoModel = undefined\r\n isManuallyEntered: boolean = false\r\n arrivalListId: number = 0\r\n arrivalListName: string = ''\r\n get CommunicationStatus() {\r\n return this.groupInfo ? this.groupInfo.communicationStatus : ArrivalGroupInfoCommunicationStatus.None\r\n }\r\n get Status() {\r\n return this.isDeleted\r\n ? -1\r\n : this.groupInfo\r\n ? this.groupInfo.numberOfBookings > 0\r\n ? ArrivalGroupStatus.Purchased\r\n : this.groupInfo.status\r\n : ArrivalGroupStatus.Pending\r\n }\r\n notes: string = ''\r\n meetings: ArrivalMeeting[] = []\r\n // public static get ArrivalsGroupStatusesDescriptions (){\r\n // return [\r\n // \"New\",\r\n // \"Has Bookings\",\r\n // \"No Show\"\r\n // ]\r\n // }\r\n}\r\n","export default class StaffModel {\r\n public static Create(obj: StaffModel) {\r\n return Object.assign(new StaffModel(), obj)\r\n }\r\n id: number = 0\r\n name: string = ''\r\n email: string = ''\r\n phone: string = ''\r\n}\r\n","import { apiCallWrapper, EntitiesPaginatedModel, PaginationModel } from 'traveldesk-ui'\r\nimport ArrivalsDetailsFilter from '../pages/Arrivals/ArrivalsFilterModel'\r\nimport ArrivalModel from '../pages/Arrivals/ArrivalModel'\r\nimport StaffModel from '../models/StaffModel'\r\nimport ArrivalGroupInfoModel from '../pages/Arrivals/ArrivalGroupInfoModel'\r\n\r\nexport default class ArrivalsApiService {\r\n static getSales = async (dispatch: any) => {\r\n const data = await apiCallWrapper(`/api/arrivals/sales`, 'GET', dispatch)\r\n data.Content = data.Content?.map((s) => StaffModel.Create(s)) ?? []\r\n return data\r\n }\r\n static saveGroupInfo = async (dispatch: any, groupInfo: ArrivalGroupInfoModel) => {\r\n const data = await apiCallWrapper(`/api/arrivals/groupinfo`, 'POST', dispatch, groupInfo)\r\n data.Content = Object.assign(new ArrivalGroupInfoModel(data.Content?.groupId ?? ''), data.Content)\r\n return data\r\n }\r\n static get = async (dispatch: any, filter: ArrivalsDetailsFilter) => {\r\n const data = await apiCallWrapper>(\r\n `/api/arrivals/filtered`,\r\n 'POST',\r\n dispatch,\r\n filter,\r\n )\r\n data.Content = Object.assign(new EntitiesPaginatedModel(), data.Content, {\r\n entities: data.Content?.entities.map((x) => ArrivalModel.Create(x)) ?? [],\r\n pagingInfo: PaginationModel.Create(data.Content?.pagingInfo || new PaginationModel()),\r\n })\r\n return data\r\n }\r\n}\r\n","import ArrivalModel from '../pages/Arrivals/ArrivalModel'\r\nimport { LoadingStore, EntitiesPaginatedModel, SelectOptionModel } from 'traveldesk-ui'\r\nimport { AppThunkAction } from './'\r\nimport ArrivalsApiService from '../services/ArrivalsApiService'\r\nimport ArrivalsDetailsFilter from '../pages/Arrivals/ArrivalsFilterModel'\r\nimport { Reducer, Action } from 'redux'\r\nimport Hotel from '../models/Hotel'\r\nimport HotelsApiService from '../services/HotelsApiService'\r\nimport StaffModel from '../models/StaffModel'\r\nimport ArrivalGroupInfoModel from '../pages/Arrivals/ArrivalGroupInfoModel'\r\n\r\nexport interface State {\r\n arrivals: EntitiesPaginatedModel\r\n hotels: Hotel[]\r\n hotelsHash: Map\r\n sales: StaffModel[]\r\n}\r\nconst A_SET_SALES = 'A_SET_SALES'\r\ninterface SetSalesOptions {\r\n type: 'A_SET_SALES'\r\n sales: StaffModel[]\r\n}\r\nconst A_SET_HOTELS = 'A_SET_HOTELS'\r\ninterface SetHotelsAction {\r\n type: 'A_SET_HOTELS'\r\n hotels: Hotel[]\r\n hotelsHash: Map\r\n}\r\nconst A_UPDATE_GROUP_INFO = 'A_UPDATE_GROUP_INFO'\r\ninterface UpdateGroupInfo {\r\n type: 'A_UPDATE_GROUP_INFO'\r\n payload: ArrivalGroupInfoModel\r\n}\r\nconst A_SET_ARRIVALS = 'A_SET_ARRIVALS'\r\ninterface SetArrivalsAction {\r\n type: 'A_SET_ARRIVALS'\r\n payload: EntitiesPaginatedModel\r\n}\r\n\r\ntype KnownAction = SetArrivalsAction | SetHotelsAction | SetSalesOptions | UpdateGroupInfo\r\n\r\nexport const actionCreators = {\r\n requestSales: (): AppThunkAction => async (dispatch) => {\r\n // dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await ArrivalsApiService.getSales(dispatch)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: A_SET_SALES, sales: data })\r\n }\r\n },\r\n requestHotels: (): AppThunkAction => async (dispatch) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await HotelsApiService.getHotelsWithArrivalsByArrivals(dispatch) // apiCallWrapper(`/api/tours/managelist`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n\r\n if (fetchTask.IsOk && data) {\r\n const hotels = data.sort((a, b) => (a.name > b.name ? 1 : -1))\r\n const hotelsHash =\r\n data?.reduce((res, next) => {\r\n res.set(next.id, next)\r\n return res\r\n }, new Map()) ?? new Map()\r\n dispatch({ type: A_SET_HOTELS, hotels, hotelsHash })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n saveGroupInfo: (groupInfo: ArrivalGroupInfoModel): AppThunkAction => async (\r\n dispatch,\r\n ) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n console.log(groupInfo)\r\n let fetchTask = await ArrivalsApiService.saveGroupInfo(dispatch, groupInfo)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n dispatch({ type: A_UPDATE_GROUP_INFO, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n requestArrivals: (filter: ArrivalsDetailsFilter): AppThunkAction => async (\r\n dispatch,\r\n ) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n let fetchTask = await ArrivalsApiService.get(dispatch, filter) // apiCallWrapper(`/api/tours/managelist`, 'GET', dispatch, null)\r\n const data = fetchTask.Content\r\n if (fetchTask.IsOk && data) {\r\n data.entities = data.entities.map(x => ArrivalModel.Create(x))\r\n dispatch({ type: A_SET_ARRIVALS, payload: data })\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n },\r\n}\r\nconst unloadedState: State = {\r\n arrivals: new EntitiesPaginatedModel(),\r\n hotels: [] = [] as Hotel[],\r\n hotelsHash: new Map(),\r\n sales: [] = [] as StaffModel[],\r\n}\r\nexport const reducer: Reducer = (state: State = unloadedState, incomingAction: Action) => {\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case A_SET_SALES:\r\n return {\r\n ...state,\r\n sales: action.sales,\r\n }\r\n case A_SET_HOTELS:\r\n return {\r\n ...state,\r\n hotels: action.hotels,\r\n hotelsHash: action.hotelsHash,\r\n }\r\n case A_UPDATE_GROUP_INFO:\r\n const gi = action.payload\r\n return {\r\n ...state,\r\n arrivals: Object.assign(new EntitiesPaginatedModel(), {\r\n entities: state.arrivals.entities.map((a) =>\r\n a.groupId == gi.groupId\r\n ? Object.assign(ArrivalModel.Create(a), {\r\n groupInfo: ArrivalGroupInfoModel.Create(gi),\r\n })\r\n : a,\r\n ),\r\n pagingInfo: state.arrivals.pagingInfo,\r\n }),\r\n }\r\n case A_SET_ARRIVALS:\r\n return {\r\n ...state,\r\n arrivals: action.payload,\r\n }\r\n default:\r\n }\r\n return state || unloadedState\r\n}\r\n","import { Action, Reducer } from 'redux'\r\nimport { AppThunkAction } from '.'\r\nimport { apiCallWrapper, defaultLabelSort } from 'traveldesk-ui'\r\nimport { SelectOptionModel } from 'traveldesk-ui'\r\nimport ToursApiService from '../services/ToursApiService'\r\nexport interface State {\r\n options: SelectOptionModel[]\r\n}\r\nconst RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS = 'A_RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS'\r\ninterface ReceiveToursRecommendedForOptionsAction {\r\n type: 'A_RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS'\r\n payload: SelectOptionModel[]\r\n}\r\n\r\ntype KnownAction = ReceiveToursRecommendedForOptionsAction\r\n\r\nexport const actionCreators = {\r\n requestOptions: (): AppThunkAction => async (dispatch, getState) => {\r\n const appState = getState()\r\n if (appState && appState.toursCategories && appState.toursCategories.options.length === 0) {\r\n const result = await ToursApiService.getRecommendedForOptions(dispatch)\r\n if (result.IsOk) {\r\n dispatch({ type: RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS, payload: result.Content || [] })\r\n }\r\n }\r\n },\r\n}\r\n\r\nconst unloadedState: State = { options: [] as SelectOptionModel[] }\r\n\r\nexport const reducer: Reducer = (state: State | undefined, incomingAction: Action): State => {\r\n if (state === undefined) {\r\n return unloadedState\r\n }\r\n\r\n const action = incomingAction as KnownAction\r\n switch (action.type) {\r\n case RECEIVE_TOURS_RECOMMENDED_FOR_OPTIONS:\r\n return {\r\n ...state,\r\n options: action.payload,\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import * as Global from './Global'\r\nimport * as Counter from './Counter'\r\nimport * as Cities from './Cities'\r\nimport { AuthStore } from 'traveldesk-ui'\r\nimport * as Tours from './Tours'\r\nimport * as ToursCategories from './ToursCategories'\r\nimport * as Bookings from './Bookings'\r\nimport { LoadingStore as Loading, Localization, MediaStore, LanguagesStore, NotificationsStore, SettingsStore } from 'traveldesk-ui'\r\nimport * as Account from './Account'\r\nimport * as Tickets from './Tickets'\r\nimport * as TimeSlots from './TimeSlots'\r\nimport * as PickUpTimes from './PickUpTimes'\r\nimport * as Regions from './Regions'\r\nimport * as Supplier from './Supplier'\r\nimport * as Countries from './Countries'\r\nimport * as AgencyCommissions from './AgencyCommissions'\r\nimport * as AgencyBookings from './AgencyBookings'\r\nimport * as Arrivals from './Arrivals'\r\nimport * as ToursRecommendedFor from './ToursRecommendedFor'\r\n\r\n// The top-level state object\r\nexport interface ApplicationState {\r\n arrivals: Arrivals.State\r\n agencyCommissions: AgencyCommissions.State\r\n agencyBookings: AgencyBookings.State\r\n global: Global.State\r\n auth: AuthStore.State\r\n cities: Cities.State\r\n localization: Localization.State\r\n regions: Regions.State\r\n tours: Tours.State\r\n toursCategories: ToursCategories.State\r\n toursRecommendedFor: ToursRecommendedFor.State\r\n languages: LanguagesStore.State\r\n bookings: Bookings.State\r\n notifications: NotificationsStore.State\r\n photos: MediaStore.State\r\n loading: Loading.State\r\n account: Account.State\r\n tickets: Tickets.State\r\n timeSlots: TimeSlots.State\r\n pickUpTimes: PickUpTimes.State\r\n supplier: Supplier.State\r\n countries: Countries.State\r\n settings: SettingsStore.State\r\n}\r\n\r\n// Whenever an action is dispatched, Redux will update each top-level application state property using\r\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\r\n// acts on the corresponding ApplicationState property type.\r\nexport const reducers = {\r\n auth: AuthStore.reducer,\r\n arrivals: Arrivals.reducer,\r\n agencyCommissions: AgencyCommissions.reducer,\r\n agencyBookings: AgencyBookings.reducer,\r\n account: Account.reducer,\r\n localization: Localization.reducer,\r\n tours: Tours.reducer,\r\n toursCategories: ToursCategories.reducer,\r\n toursRecommendedFor: ToursRecommendedFor.reducer,\r\n global: Global.reducer,\r\n counter: Counter.reducer,\r\n languages: LanguagesStore.reducer,\r\n cities: Cities.reducer,\r\n bookings: Bookings.reducer,\r\n notifications: NotificationsStore.reducer,\r\n photos: MediaStore.reducer,\r\n loading: Loading.reducer,\r\n tickets: Tickets.reducer,\r\n timeSlots: TimeSlots.reducer,\r\n pickUpTimes: PickUpTimes.reducer,\r\n regions: Regions.reducer,\r\n supplier: Supplier.reducer,\r\n countries: Countries.reducer,\r\n settings: SettingsStore.reducer\r\n}\r\n\r\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\r\n// correctly typed to match your store.\r\nexport interface AppThunkAction {\r\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void\r\n}\r\n","import { Action, Reducer } from 'redux';\r\n\r\n// -----------------\r\n// STATE - This defines the type of data maintained in the Redux store.\r\n\r\nexport interface CounterState {\r\n count: number;\r\n}\r\n\r\n// -----------------\r\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\r\n// They do not themselves have any side-effects; they just describe something that is going to happen.\r\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\r\n\r\nexport interface IncrementCountAction { type: 'INCREMENT_COUNT' }\r\nexport interface DecrementCountAction { type: 'DECREMENT_COUNT' }\r\n\r\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\r\n// declared type strings (and not any other arbitrary string).\r\nexport type KnownAction = IncrementCountAction | DecrementCountAction;\r\n\r\n// ----------------\r\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\r\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\r\n\r\nexport const actionCreators = {\r\n increment: () => ({ type: 'INCREMENT_COUNT' } as IncrementCountAction),\r\n decrement: () => ({ type: 'DECREMENT_COUNT' } as DecrementCountAction)\r\n};\r\n\r\n// ----------------\r\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\r\n\r\nexport const reducer: Reducer = (state: CounterState | undefined, incomingAction: Action): CounterState => {\r\n if (state === undefined) {\r\n return { count: 0 };\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case 'INCREMENT_COUNT':\r\n return { count: state.count + 1 };\r\n case 'DECREMENT_COUNT':\r\n return { count: state.count - 1 };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as React from 'react'\r\nimport { Autocomplete, GoogleMap, Marker, useJsApiLoader } from '@react-google-maps/api';\r\nimport { FieldFooter, ToggleFormField } from 'traveldesk-ui';\r\nimport { BaseInputProps } from 'traveldesk-ui/dist/Form/BaseProps';\r\n\r\nconst containerStyle = {\r\n width: '100%',\r\n height: '400px'\r\n};\r\ninterface Props {\r\n apiKey: string\r\n label: string\r\n placeIdLabel: string\r\n value?: string\r\n validationError?: string\r\n onChange: (placeId: string | undefined) => void\r\n}\r\nlet autocomplete: google.maps.places.Autocomplete | undefined\r\nconst MapsPlaceIdPicker = (props: Props) => {\r\n const { isLoaded } = useJsApiLoader({\r\n id: 'google-map-script',\r\n googleMapsApiKey: props.apiKey,\r\n libraries: ['places']\r\n })\r\n const onLoadAutocomplete = (autocompleteParam: google.maps.places.Autocomplete) => {\r\n autocomplete = autocompleteParam\r\n }\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n const [isGooglePlaceId, setIdGooglePlaceId] = React.useState(props.value ? true : false)\r\n const [map, setMap] = React.useState(null)\r\n const [userLocation, setUserLocation] = React.useState({ lat: 25.187440546619328, lng: 55.28278819138045 })\r\n const setUserLocationFromNavigator = (position: any) => {\r\n const lat = position.coords.latitude\r\n const lng = position.coords.longitude\r\n setUserLocation({ lat, lng })\r\n if (window.google && window.google.maps) {\r\n const center = new window.google.maps.LatLng({ lat, lng });\r\n if (map)\r\n map.setCenter(center);\r\n }\r\n }\r\n React.useEffect(() => {\r\n if (\"geolocation\" in navigator) {\r\n navigator.geolocation.getCurrentPosition(setUserLocationFromNavigator);\r\n }\r\n }, [])\r\n React.useEffect(() => {\r\n\r\n }, [props.apiKey])\r\n\r\n const onLoad = React.useCallback(function callback(map: google.maps.Map) {\r\n const center = new window.google.maps.LatLng(userLocation);\r\n map.setCenter(center);\r\n setMap(map)\r\n }, [userLocation])\r\n const onUnmount = React.useCallback(function callback(map) {\r\n setMap(null)\r\n }, [])\r\n const onChange = (placeId: string | undefined) => {\r\n setIsLoading(true)\r\n props.onChange(placeId)\r\n setIsLoading(false)\r\n\r\n }\r\n const onDropLocation = () => {\r\n onChange(undefined)\r\n }\r\n\r\n const onPlaceChanged = () => {\r\n if (autocomplete) {\r\n const place = autocomplete.getPlace()\r\n if (place.place_id) {\r\n onChange(place.place_id)\r\n }\r\n if (place && place.geometry && place.geometry.location) {\r\n const center = new window.google.maps.LatLng({ lat: place.geometry.location.lat(), lng: place.geometry.location.lng() });\r\n map?.setCenter(center);\r\n }\r\n else {\r\n alert(\"Could not retreive place information\")\r\n }\r\n }\r\n }\r\n const onCheckIsGooglePlaceId = () => {\r\n if (isGooglePlaceId) onChange(undefined)\r\n setIdGooglePlaceId(!isGooglePlaceId)\r\n }\r\n const onClickMap = (e: google.maps.MapMouseEvent) => {\r\n }\r\n return <>\r\n {isLoaded ?\r\n <>\r\n
\r\n \r\n\r\n {isGooglePlaceId ? \r\n \r\n {props.placeIdLabel}\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n : null}\r\n \r\n : null}\r\n {isLoaded && isGooglePlaceId\r\n ? \r\n\r\n \r\n : null}\r\n {isGooglePlaceId && props.value && }\r\n \r\n}\r\nexport default React.memo(MapsPlaceIdPicker)","import * as React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport { actionCreators as citiesActions } from '../store/Cities'\r\nimport { actionCreators as globalActions } from '../store/Global'\r\nimport { LanguagesStore, Roles } from 'traveldesk-ui'\r\nimport { Localization as LocalizationStore } from 'traveldesk-ui'\r\n\r\nimport { AuthStore } from 'traveldesk-ui'\r\nimport { HeaderMenuItemWithChildren, Select, SelectOptionModel, useOnCloseElement } from 'traveldesk-ui'\r\nimport styled from 'styled-components'\r\nconst Version = styled.span`\r\n position: absolute;\r\n top: 22px;\r\n left: 27px;\r\n font-size: 8px;\r\n color: #aaa;\r\n`\r\nexport interface MenuItem {\r\n title: string\r\n url: string\r\n}\r\nconst Header = () => {\r\n const [isOpened, setIsOpened] = React.useState(false)\r\n const [showMobileMenu, setShowMobileMenu] = React.useState(false)\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n const path = useSelector((state: ApplicationState) => state.global.path)\r\n const languages = useSelector((state: ApplicationState) => state.languages)\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const dispatch = useDispatch()\r\n const close = () => {\r\n if (isOpened) {\r\n toggle()\r\n }\r\n }\r\n const ref = React.useRef()\r\n useOnCloseElement(ref, close)\r\n React.useEffect(() => {\r\n dispatch(citiesActions.requestCitiesOptions())\r\n dispatch(LanguagesStore.actionCreators.requestLanguages())\r\n }, [])\r\n React.useEffect(() => {\r\n close()\r\n }, [path])\r\n const toggle = () => setIsOpened(!isOpened)\r\n const toggleMobileMenu = () => setShowMobileMenu(!showMobileMenu)\r\n const onCityChanged = (option: SelectOptionModel) => {\r\n dispatch(globalActions.setCity(option.value as number))\r\n }\r\n const onLanguageChanged = (option: SelectOptionModel) => {\r\n const lang = languages.languagesHash.get(option.value as number)\r\n if (lang) dispatch(LocalizationStore.actionCreators.setLanguage(lang.code))\r\n }\r\n const signOut = () => {\r\n dispatch(AuthStore.actionCreators.signOut())\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n 1.2.12\r\n \r\n \"Main\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n {/*
\r\n
\r\n USD\r\n \r\n
    \r\n
  • USD
  • \r\n
  • GBP
  • \r\n
  • RUB
  • \r\n
\r\n
\r\n
*/}\r\n\r\n {auth.isAuthorized && (\r\n
\r\n \r\n \r\n {Localization.getString('My Account')}\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default Header\r\n","import * as React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../store/index'\r\nimport { LoadingSpinner } from 'traveldesk-ui'\r\nconst Loading = () => {\r\n const loadingState = useSelector((state: ApplicationState) => state.loading)\r\n React.useEffect(() => {\r\n if (loadingState.loading > 0) {\r\n document.body.style.overflow = 'hidden'\r\n } else {\r\n document.body.style.overflow = 'auto'\r\n }\r\n }, [loadingState])\r\n return loadingState.loading > 0 ? : null\r\n}\r\nexport default Loading\r\n","import * as React from 'react'\r\nimport Header from './Header'\r\nimport 'react-day-picker/src/style.css'\r\nimport Loading from './Loading'\r\nimport { Layout as LayoutWrapper, NotificationsWrapper } from 'traveldesk-ui'\r\nexport default (props: { children?: React.ReactNode }) => (\r\n \r\n \r\n \r\n
\r\n {props.children}\r\n \r\n)\r\n","import * as React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport { Container } from 'traveldesk-ui'\r\nconst UnathorizedPage = () => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return (\r\n \r\n

{Localization.getString('Sign In')}

\r\n
\r\n

{Localization.getString('You are not allowed to access this page')}

\r\n
\r\n
\r\n )\r\n}\r\nexport default UnathorizedPage\r\n","import * as React from 'react'\r\nimport { Redirect, Route } from 'react-router'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport UnathorizedPage from './../pages/Unathorized'\r\nconst PrivateRoute = (props: { roles?: string[]; component: any; path: string; exact?: boolean }) => {\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n const Component = props.component\r\n return (\r\n {\r\n if (auth && auth.isAuthorized) {\r\n if (\r\n props.roles &&\r\n props.roles.length > 0 &&\r\n !props.roles.some((role) => auth.authData?.roles.some((arole) => arole == role))\r\n ) {\r\n return \r\n }\r\n return \r\n }\r\n return \r\n }}\r\n />\r\n )\r\n}\r\n\r\nexport default PrivateRoute\r\n","import * as React from 'react'\r\nimport { Redirect, RouteComponentProps } from 'react-router'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport { Roles } from 'traveldesk-ui'\r\n\r\ninterface Props extends RouteComponentProps<{}> {}\r\nconst Home = (props: Props) => {\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n React.useEffect(() => {\r\n if (auth.authData) {\r\n if (auth.authData?.isInRole(Roles.Operations) || auth.authData?.isInRole(Roles.Accounts)) {\r\n props.history.push('/bookings')\r\n }\r\n if (auth.authData?.isInRole(Roles.Agent)) {\r\n props.history.push('/agent/bookings')\r\n }\r\n if (auth.authData?.isInRole(Roles.ArrivalsManager)) {\r\n props.history.push('/arrivals')\r\n }\r\n }\r\n }, [auth])\r\n return null\r\n}\r\n\r\nexport default Home\r\n","import { LanguagesStore, Language } from 'traveldesk-ui'\r\nimport { useEffect } from 'react'\r\nimport { ApplicationState } from '../store'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\ninterface Props {\r\n isOffers: boolean\r\n selector: (state: any) => LanguagesStore.State\r\n}\r\nexport const useLanguages = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const languages = useSelector(props.selector)\r\n useEffect(() => {\r\n if (languages.languages.length === 0) {\r\n dispatch(LanguagesStore.actionCreators.requestLanguages(props.isOffers))\r\n }\r\n }, [])\r\n return languages\r\n}\r\nexport const useLanguagesManageTable = () =>\r\n useLanguages({\r\n isOffers: false,\r\n selector: (state: ApplicationState) => state.languages,\r\n })\r\n","import * as React from 'react'\r\nimport { DataTable, DataTableColumnModel, FilterType, DataTableModelCustomAction, DataTableModel } from 'traveldesk-ui'\r\nimport { Link } from 'react-router-dom'\r\nimport { TourManageTableModel } from '../models/TourManageModel'\r\nimport { PInTableList, SelectOptionModel } from 'traveldesk-ui'\r\nimport { useLanguagesManageTable } from '../effects/useLanguages'\r\nimport * as ToursState from '../store/Tours'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nconst ToursPage = () => {\r\n const languages = useLanguagesManageTable()\r\n const [languagesOptions, setLanguagesOptions] = React.useState([] as SelectOptionModel[])\r\n const [toursOptions, setToursOptions] = React.useState([] as SelectOptionModel[])\r\n const tours = useSelector((state: ApplicationState) => state.tours)\r\n const [showDeleted, setShowDeleted] = React.useState(false)\r\n React.useEffect(() => {\r\n setFiltersOptions()\r\n }, [tours])\r\n const setFiltersOptions = () => {\r\n const options = languages.languagesOptions.filter((x) =>\r\n tours.toursManage.some((tour) => tour.languageId == x.value),\r\n )\r\n const toursOptions = tours.toursManage.reduce((res, next) => {\r\n res.push({ label: next.nameInternal, value: next.id })\r\n return res\r\n }, [] as SelectOptionModel[])\r\n setToursOptions(toursOptions)\r\n setLanguagesOptions(options)\r\n }\r\n const toggleShowDeleted = () => {\r\n setShowDeleted(!showDeleted)\r\n }\r\n const initDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: 'Tour Name',\r\n fieldName: 'nameInternal',\r\n sortable: true,\r\n width: 200,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: toursOptions,\r\n filterFieldName: 'id',\r\n customRenderer: (obj: TourManageTableModel) => (\r\n <>\r\n {obj.nameInternal} ({obj.nameDisplay})\r\n \r\n ),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Language',\r\n width: 40,\r\n fieldName: 'languageId',\r\n customFilterFunc: (filterValue, data: TourManageTableModel[]) =>\r\n data.filter((x) => filterValue.some((f: any) => x.languageId == f)),\r\n customRenderer: (obj: TourManageTableModel) => languages.languagesHash.get(obj.languageId)?.name ?? '',\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: languagesOptions,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Offers',\r\n width: 200,\r\n customRenderer: (obj: TourManageTableModel) => (\r\n <>\r\n {obj.offers.filter(x => showDeleted ? true : !x.isDeleted).map((x) => (\r\n \r\n \r\n {x.nameDisplay} ({x.nameInternal})\r\n \r\n \r\n ))}\r\n \r\n ),\r\n }),\r\n // new DataTableColumnModel({\r\n // displayName: 'Status',\r\n // width: 40,\r\n // }),\r\n new DataTableColumnModel({\r\n displayName: \"\",\r\n width: 40,\r\n customRenderer: (obj: TourManageTableModel) => <>\r\n {obj.isTopTour && }\r\n ,\r\n filterType: FilterType.SELECT,\r\n filterOptions: [{ label: \"Top Tours\", value: 1 }, { label: \"Not top tours\", value: -1 }],\r\n customFilterFunc: (value, data) => {\r\n return value ? value == 1 ? data.filter(x => x.isTopTour) : value == -1 ? data.filter(x => !x.isTopTour) : data : data\r\n }\r\n }),\r\n new DataTableColumnModel({\r\n displayName: '',\r\n width: 40,\r\n customRenderer: (obj: TourManageTableModel) => (\r\n \r\n \r\n \r\n ),\r\n })\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: 'Tours',\r\n fileName: 'tours.xlsx',\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n \r\n \r\n ),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n )\r\n )\r\n ],\r\n })\r\n }\r\n const onRefresh = () => {\r\n getTours()\r\n }\r\n const dispatch = useDispatch()\r\n const getTours = async () => {\r\n dispatch(ToursState.actionCreators.requestToursManage())\r\n }\r\n React.useEffect(() => {\r\n getTours()\r\n }, [])\r\n return (\r\n \r\n )\r\n}\r\nexport default ToursPage\r\n","import { useSelector } from 'react-redux'\r\nimport * as React from 'react'\r\nimport { ApplicationState } from './../store/index'\r\nimport { SectionTitle } from 'traveldesk-ui'\r\nexport const LoadingSection = () => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return \r\n}\r\n","const parseId = (id: string): number | undefined => {\r\n if (!id) return undefined\r\n if (id.toLowerCase() == 'add') {\r\n return 0\r\n } else {\r\n return parseInt(id)\r\n }\r\n}\r\nexport default parseId\r\n","import * as React from 'react'\r\nimport ReactPlayer from 'react-player'\r\nimport styled from 'styled-components'\r\ninterface Props {\r\n url: string\r\n}\r\nconst VideoContainer = styled.div`\r\n position: relative;\r\n margin-top: -20px;\r\n margin-bottom: 25px;\r\n padding-top: 56.25%;\r\n .react-player {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n }\r\n`\r\n\r\nconst VideoDisplay = (props: Props) => {\r\n return props.url ? (\r\n \r\n \r\n \r\n ) : null\r\n}\r\nexport default VideoDisplay\r\n","export default class CancellationPolicy {\r\n public static Create(hours: number, percents: number) {\r\n return Object.assign(new CancellationPolicy(), { hours, percents })\r\n }\r\n hours: number = 0\r\n percents: number = 0\r\n}\r\n","import * as React from 'react'\r\nimport CancellationPolicy from './../../models/CancellationPolicy'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../../store/index'\r\nimport { FormFieldWrapper, FieldFooter, Tooltip } from 'traveldesk-ui'\r\nimport { Buttons } from 'traveldesk-ui'\r\nimport { DataTableColumnModel, InputType, DataTableModel, SetEditCallbackFunction, DataTable } from 'traveldesk-ui'\r\ninterface Props {\r\n onChange: (cancellations: CancellationPolicy[]) => void\r\n cancellations: CancellationPolicy[]\r\n}\r\nconst Cancellations = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const checkDuplicates = (c: CancellationPolicy[]) => {\r\n const hours = new Map()\r\n c.forEach((x) => {\r\n if (hours.has(x.hours)) {\r\n return true\r\n }\r\n })\r\n return false\r\n }\r\n const onEdit = (prev: CancellationPolicy, next: CancellationPolicy) => {\r\n const cancellations = props.cancellations.map((c) => (c == prev ? next : c))\r\n if (!checkDuplicates(cancellations)) {\r\n props.onChange(cancellations)\r\n }\r\n }\r\n const onDelete = (c: CancellationPolicy) => {\r\n props.onChange(props.cancellations.filter((x) => x != c))\r\n }\r\n const initDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Hours before tour'),\r\n fieldName: 'hours',\r\n sortable: true,\r\n isEditable: true,\r\n editType: InputType.Number,\r\n editStep: 1,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Refund percent'),\r\n fieldName: 'percents',\r\n isEditable: true,\r\n editType: InputType.Number,\r\n editStep: 1,\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Cancellation Policy'),\r\n })\r\n }\r\n const onAdd = () => {\r\n const c = CancellationPolicy.Create(0, 0)\r\n props.onChange(props.cancellations.concat(c))\r\n console.log('Add c')\r\n if (setEditCallback) {\r\n setEditCallback(c)\r\n }\r\n }\r\n const [setEditCallback, setSetEditCallback] = React.useState(\r\n () => (undefined as unknown) as SetEditCallbackFunction | undefined,\r\n )\r\n const isData = props.cancellations && props.cancellations.length > 0\r\n return (\r\n \r\n \r\n setSetEditCallback(() => callback)}\r\n dataTable={initDataTable()}\r\n onEdit={onEdit}\r\n onDelete={onDelete}\r\n fixedHeight={150}\r\n />\r\n {!isData && [\r\n \r\n \r\n {Localization.getString(\r\n 'Warning: Cancellation policy is not specified. Tour is not refundable',\r\n )}\r\n \r\n }\r\n />,\r\n
,\r\n ]}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\nexport default Cancellations\r\n","import * as React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../store/index'\r\nimport { actionCreators as supplierActions } from './../store/Supplier'\r\nexport const useSupplier = () => {\r\n const dispatch = useDispatch()\r\n const supplier = useSelector((state: ApplicationState) => state.supplier.supplier)\r\n React.useEffect(() => {\r\n if (!supplier) {\r\n dispatch(supplierActions.requestSupplier())\r\n }\r\n }, [])\r\n return supplier\r\n}\r\n","import * as React from 'react'\r\nimport { Tooltip } from 'traveldesk-ui'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../../store/index'\r\nimport { Link } from 'react-router-dom'\r\nimport styled from 'styled-components'\r\nconst I = styled.i`\r\n color: orange;\r\n`\r\nconst NoDefaultValue = () => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return (\r\n <>\r\n Use defaults{' '}\r\n \r\n

{Localization.getString('No Defaults Warning')}

\r\n

\r\n {Localization.getString('Click')} {Localization.getString('to specify default value')}\r\n

\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default NoDefaultValue\r\n","export default class TourFaqModel {\r\n tourId: number = 0\r\n index: number = 0\r\n question: string = \"\"\r\n answer: string = \"\"\r\n}","import * as React from 'react'\r\nimport TourFaqModel from '../../models/TourFaqModel'\r\nimport { TourManageModel } from '../../models/TourManageModel'\r\nimport { Buttons, FormFieldLabel, FormFieldWrapper, TextAreaField, TextFormField, Tooltip, indexUp, indexDown } from 'traveldesk-ui'\r\nimport { ApplicationState } from '../../store'\r\nimport { useSelector } from 'react-redux'\r\ninterface Props {\r\n tour?: TourManageModel\r\n faq: TourFaqModel[]\r\n onChange: (faq: TourFaqModel[]) => void\r\n}\r\nconst TourFormFaq = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const onAddFaq = () => {\r\n props.onChange(props.faq.concat(Object.assign(new TourFaqModel(), { tourId: props.tour?.id, index: props.faq.length + 1 })))\r\n }\r\n const onDeleteFaq = (index: number) => {\r\n props.onChange(props.faq\r\n .filter(x => x.index != index)\r\n .map(x => x.index > index ? Object.assign(new TourFaqModel(), x, { index: x.index - 1 }) : x)\r\n )\r\n }\r\n const onFaqUp = (index: number) => {\r\n const newFaq = indexUp(props.faq, index)\r\n // if (index <= 1) return\r\n // let newFaq = props.faq.map(x => x.index == index\r\n // ? Object.assign(new TourFaqModel(), x, { index: x.index - 1 })\r\n // : x.index == index - 1\r\n // ? Object.assign(new TourFaqModel(), x, { index: x.index + 1 })\r\n // : x\r\n // );\r\n // newFaq = newFaq.sort((a, b) => a.index > b.index ? 1 : -1)\r\n props.onChange(newFaq)\r\n }\r\n const onFaqDown = (index: number) => {\r\n const newFaq = indexDown(props.faq, index)\r\n // indexUp\r\n // if (index > props.faq.length) return\r\n // let newFaq = props.faq.map(x => x.index == index\r\n // ? Object.assign(new TourFaqModel(), x, { index: x.index + 1 })\r\n // : x.index == index + 1\r\n // ? Object.assign(new TourFaqModel(), x, { index: x.index - 1 })\r\n // : x\r\n // )\r\n // newFaq = newFaq.sort((a, b) => a.index > b.index ? 1 : -1)\r\n props.onChange(newFaq)\r\n }\r\n const onChange = (index: number, fieldName: string) => (e: any) => {\r\n props.onChange(props.faq.map(x => x.index == index\r\n ? Object.assign(new TourFaqModel(), x, { [fieldName]: e.target.value })\r\n : x))\r\n }\r\n return \r\n {props.faq.map((f, i) => \r\n {i > 0 &&
}\r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n {/* */}\r\n
)}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n}\r\nexport default TourFormFaq","import ItineraryStopModel from \"./ItineraryStopModel\"\r\n\r\nexport default class ItineraryModel {\r\n constructor(tourId: number, index: number) {\r\n this.tourId = tourId\r\n this.index = index\r\n this.stops = []\r\n }\r\n id: number = 0\r\n index: number = 0\r\n tourId: number = 0\r\n name: string = ''\r\n stops: ItineraryStopModel[] = []\r\n}","import * as React from 'react'\r\nimport ItineraryModel from '../../models/ItineraryModel'\r\nimport { Buttons, FormFieldWrapper, Popup, Tooltip, indexDown, indexUp } from 'traveldesk-ui'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport ItineraryDesigner from '../../components/ItineraryDesigner/ItineraryDesigner'\r\ninterface Props {\r\n tourId: number\r\n itineraries: ItineraryModel[]\r\n onAddEditItinerary: (itinerary: ItineraryModel) => void\r\n onChange: (itineraries: ItineraryModel[]) => void\r\n}\r\nconst TourItineraryForm = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const onAddItenerary = () => {\r\n const newItenerary = new ItineraryModel(props.tourId, props.itineraries.length + 1)\r\n props.onAddEditItinerary(newItenerary)\r\n }\r\n const onEditItenerary = (index: number) => {\r\n const itinerary = props.itineraries.find(x => x.index == index)\r\n if (itinerary)\r\n props.onAddEditItinerary(itinerary)\r\n }\r\n const onDeleteItinerary = (index: number) => {\r\n props.onChange(props.itineraries\r\n .filter(x => x.index != index)\r\n .map(x => x.index > index ? { ...x, index: index - 1 } : x))\r\n }\r\n const onItineraryUp = (index: number) => {\r\n const newItinerary = indexUp(props.itineraries, index)\r\n props.onChange(newItinerary)\r\n }\r\n const onItineraryDown = (index: number) => {\r\n const newItinerary = indexDown(props.itineraries, index)\r\n props.onChange(newItinerary)\r\n }\r\n\r\n\r\n return \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {props.itineraries.map((itinerary, i) => {\r\n return \r\n \r\n
    \r\n {itinerary.stops.map(stop =>
  • {stop.name}
  • )}\r\n
\r\n\r\n
\r\n })}\r\n
\r\n}\r\nexport default TourItineraryForm","import * as React from 'react'\r\nimport { Autocomplete, GoogleMap, Marker, useJsApiLoader } from '@react-google-maps/api';\r\nimport { FieldFooter, ToggleFormField } from 'traveldesk-ui';\r\n\r\nconst containerStyle = {\r\n width: '100%',\r\n height: '400px'\r\n};\r\ninterface Props {\r\n label: string\r\n placeIdLabel: string\r\n value?: string\r\n validationError?: string\r\n onChange: (placeId: string | undefined) => void\r\n}\r\nfunction getLocationIdFromUrl(url: string) {\r\n var regex = /d(\\d+)-/;\r\n var match = url.match(regex);\r\n\r\n if (match && match.length > 1) {\r\n return match[1];\r\n } else {\r\n return undefined;\r\n }\r\n}\r\n\r\nconst TripAdvisorLocationIdPicker = (props: Props) => {\r\n\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n const [isTripAdvisorId, setIsTripAdvisorId] = React.useState(props.value ? true : false)\r\n\r\n const onChange = (e: React.ChangeEvent | undefined) => {\r\n setIsLoading(true)\r\n const value = getLocationIdFromUrl(e?.target.value ?? \"\")\r\n props.onChange(value)\r\n setIsLoading(false)\r\n\r\n }\r\n const onDropLocation = () => {\r\n onChange(undefined)\r\n }\r\n\r\n\r\n const onCheckIsTripAdvisorId = () => {\r\n if (isTripAdvisorId) onChange(undefined)\r\n setIsTripAdvisorId(!isTripAdvisorId)\r\n }\r\n return <>\r\n
\r\n \r\n\r\n {isTripAdvisorId ? \r\n\r\n {props.placeIdLabel}\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n : null}\r\n {isTripAdvisorId && }\r\n\r\n \r\n}\r\nexport default React.memo(TripAdvisorLocationIdPicker)","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport { actionCreators as toursActions } from '../../store/Tours'\r\nimport { Grid, Row, Col, SectionTitle, ContainerWithPadding, EntitiesPaginatedModel, SeoLen, LabelFormField, FormFieldWrapper, apiCallWrapperNoDispatch, Popup, FormFieldLabel, Tooltip } from 'traveldesk-ui'\r\nimport { LoadingSection } from '../../components/LoadingSection'\r\nimport parseId from '../../services/parseId'\r\nimport { TextFormField, SelectFormFieldController } from 'traveldesk-ui'\r\nimport { TourManageModel } from '../../models/TourManageModel'\r\nimport { slugify } from 'transliteration'\r\nimport { Controller, useForm } from 'react-hook-form'\r\nimport { nameof } from 'traveldesk-ui'\r\nimport { useLanguagesManageTable } from '../../effects/useLanguages'\r\nimport VideoDisplay from '../../components/Video/Video'\r\nimport { MediaSelector } from 'traveldesk-ui'\r\nimport { Photo } from 'traveldesk-ui'\r\nimport { Link } from 'react-router-dom'\r\nimport { OfferManageTourModel } from '../../models/Offer'\r\nimport { Buttons } from 'traveldesk-ui'\r\nimport Cancellations from './Cancellations'\r\nimport CancellationPolicy from './../../models/CancellationPolicy'\r\nimport { useSupplier } from './../../effects/useSupplier'\r\nimport NoDefaultValue from './../../components/Ui/NoDefaultValue'\r\nimport { IdFormField, ToggleButtonsSmallFieldController, WysiwygFieldController } from 'traveldesk-ui'\r\nimport { DataTableColumnModel, DataTableModel, DataTableModelCustomAction, DataTable } from 'traveldesk-ui'\r\nimport { actionCreators as toursCategoriesActions } from '../../store/ToursCategories'\r\nimport { actionCreators as toursRecommendedForActions } from '../../store/ToursRecommendedFor'\r\nimport { actionCreators as citiesActions } from '../../store/Cities'\r\nimport { MapsLocation } from 'traveldesk-ui'\r\nimport configureStore from '../../store/configureStore'\r\nimport { MapsLocationPicker } from 'traveldesk-ui'\r\nimport MapsPlaceIdPicker from '../../components/MapsLocationPicker/MapsPlaceIdPicker'\r\nimport Rating from '../../models/Rating'\r\nimport TourFaqModel from '../../models/TourFaqModel'\r\nimport TourFormFaq from './TourFormFaq'\r\nimport TourItineraryForm from './TourItinerary'\r\nimport ItineraryModel from '../../models/ItineraryModel'\r\nimport TripAdvisorLocationIdPicker from '../../components/MapsLocationPicker/TripAdvisorLocationIdPicker'\r\nimport ItineraryDesigner from '../../components/ItineraryDesigner/ItineraryDesigner'\r\nimport { GLOBAL_SETTINGS } from '../..'\r\nimport { error } from 'console'\r\n\r\nfunction getTripAdvisorLocationIdFromUrl(url: string) {\r\n var regex = /d(\\d+)-/;\r\n var match = url.match(regex);\r\n\r\n if (match && match.length > 1) {\r\n return match[1];\r\n } else {\r\n return null;\r\n }\r\n}\r\ninterface Props extends RouteComponentProps<{ id: string }> { }\r\nenum TourFormTab {\r\n Basic, Location, Terms, Faq, Itinerary, Media, Seo, Tickets\r\n}\r\nconst TourForm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const [iteneraryEdit, setIteneraryEdit] = React.useState(undefined)\r\n const [tab, setTab] = React.useState(TourFormTab.Basic)\r\n const accountSettings = useSelector((state: ApplicationState) => state.account.settings)\r\n const supplier = useSupplier()\r\n const languages = useLanguagesManageTable()\r\n const citiesOptions = useSelector((state: ApplicationState) => state.cities.citiesOptions)\r\n const toursCategoriesOptions = useSelector((state: ApplicationState) => state.toursCategories.options)\r\n const toursRecommendedForOptions = useSelector((state: ApplicationState) => state.toursRecommendedFor.options)\r\n React.useEffect(() => {\r\n dispatch(toursCategoriesActions.requestOptions())\r\n dispatch(toursRecommendedForActions.requestOptions())\r\n dispatch(citiesActions.requestCitiesOptions())\r\n return () => {\r\n // dispatch(toursActions.manageTourClear())\r\n }\r\n }, [])\r\n const {\r\n register,\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n getValues,\r\n setValue,\r\n watch,\r\n reset,\r\n setError,\r\n } = useForm()\r\n const tour = useSelector((state: ApplicationState) => state.tours.tour)\r\n const videoUrl = watch('videoUrl', tour?.videoUrl ?? '')\r\n const nameDisplay = watch('nameDisplay', tour?.nameDisplay ?? '')\r\n const url = watch('url', tour?.url ?? '')\r\n const isDefaultNotesToClientsPostBooking = watch(\r\n 'isDefaultNotesToClientsPostBooking',\r\n tour?.isDefaultNotesToClientsPostBooking ?? true,\r\n )\r\n const isDefaultFaq = watch('isDefaultFaq', tour?.isDefaultFaq ?? true)\r\n const isDefaultTermsAndConditions = watch('isDefaultTermaAndConditions', tour?.isDefaultTermsAndConditions ?? true)\r\n const isDefaultNotesToClientPostBooking = watch(\r\n 'isDefaultNotesToClientPostBooking',\r\n tour?.isDefaultNotesToClientsPostBooking ?? true,\r\n )\r\n const [isAutoUrl, setIsAutoUrl] = React.useState(slugify(nameDisplay) == url)\r\n React.useEffect(() => {\r\n const nameDisplayUrl = slugify(nameDisplay)\r\n setIsAutoUrl(nameDisplayUrl == url || url == '')\r\n }, [url])\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const [photos, setPhotos] = React.useState(tour?.photos ?? [])\r\n const [faq, setFaq] = React.useState(tour?.faqs ?? [])\r\n const [itineraries, setItineraries] = React.useState(tour?.itineraries ?? [])\r\n const [location, setLocation] = React.useState(new MapsLocation(tour?.locationAddress ?? \"\", tour?.locationLatitude, tour?.locationLongitude))\r\n const [showDeletedOffers, setShowDeletedOffers] = React.useState(false)\r\n const offers = React.useMemo(() => {\r\n return (showDeletedOffers ? tour?.offers : tour?.offers.filter(x => !x.isDeleted)) ?? []\r\n }, [showDeletedOffers, tour])\r\n const [cancellation, setCancellation] = React.useState(\r\n (tour?.isDefaultCancellationPolicy ? supplier?.cancellationPolicy : tour?.cancellationPolicy) ?? [],\r\n )\r\n const [heroImageId, setHeroImageId] = React.useState(tour?.heroImageId)\r\n React.useEffect(() => {\r\n const id = parseId(props.match.params.id)\r\n if (typeof id == undefined) {\r\n props.history.push('/tours')\r\n }\r\n dispatch(toursActions.manageTour(id || 0, accountSettings))\r\n }, [props.match.params.id])\r\n React.useEffect(() => {\r\n setPhotos(tour?.photos ?? [])\r\n setFaq(tour?.faqs ?? [])\r\n setItineraries(tour?.itineraries ?? [])\r\n setHeroImageId(tour?.heroImageId)\r\n setLocation(new MapsLocation(tour?.locationAddress ?? \"\", tour?.locationLatitude, tour?.locationLongitude))\r\n setCancellation(\r\n (tour?.isDefaultCancellationPolicy ? supplier?.cancellationPolicy : tour?.cancellationPolicy) ??\r\n cancellation,\r\n )\r\n if (tour && supplier) {\r\n if (\r\n !supplier.defaultSettings.notesToClientPostBooking ||\r\n supplier.defaultSettings.notesToClientPostBooking.length == 0\r\n ) {\r\n tour.isDefaultNotesToClientsPostBooking = false\r\n }\r\n if (!supplier.defaultSettings.faq || supplier.defaultSettings.faq.length == 0) {\r\n tour.isDefaultFaq = false\r\n }\r\n if (\r\n !supplier.defaultSettings.termsAndConditions ||\r\n supplier.defaultSettings.termsAndConditions.length == 0\r\n ) {\r\n tour.isDefaultTermsAndConditions = false\r\n }\r\n if (!supplier.cancellationPolicy || supplier.cancellationPolicy.length == 0) {\r\n tour.isDefaultCancellationPolicy = false\r\n }\r\n }\r\n reset(tour)\r\n }, [tour, supplier])\r\n const onHeroImageChanged = (photo: Photo) => {\r\n setHeroImageId(photo.id)\r\n }\r\n\r\n const onSubmit = (data: TourManageModel) => {\r\n let isOk = true\r\n // if (!data.cityId) {\r\n // setError(\"cityId\", { type: \"custom\", message: \"City is required\" })\r\n // isOk = false;\r\n // }\r\n if (isOk) {\r\n data.heroImageId = heroImageId\r\n data.photos = photos\r\n data.faqs = faq\r\n data.itineraries = itineraries\r\n data.cancellationPolicy = data.isDefaultCancellationPolicy ? [] : cancellation\r\n data.locationAddress = location.address\r\n data.locationLatitude = location.lat\r\n data.locationLongitude = location.lng\r\n // console.log(data)\r\n dispatch(toursActions.saveTour(data))\r\n }\r\n }\r\n const onSetLocation = (location: MapsLocation) => {\r\n setLocation(location)\r\n }\r\n\r\n const onSelectPhotos = (newPhotos: Photo[]) => {\r\n setPhotos(photos.concat(newPhotos))\r\n }\r\n const onDeletePhoto = (photo: Photo) => {\r\n setPhotos(photos.filter((x) => x.id != photo.id))\r\n }\r\n const handleFaqChanges = (faq: TourFaqModel[]) => {\r\n setFaq(faq)\r\n }\r\n const toggleShowDeletedOffers = () => {\r\n setShowDeletedOffers(!showDeletedOffers)\r\n }\r\n const initOffersDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Name'),\r\n fieldName: 'name',\r\n width: 200,\r\n customRenderer: (offer: OfferManageTourModel) => `${offer.nameDisplay} (${offer.nameInternal})`,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Per adult'),\r\n fieldName: '',\r\n customRenderer: (offer: OfferManageTourModel) => offer.validPeriod?.pricePerAdultRecUsd ?? '',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Per child'),\r\n fieldName: '',\r\n customRenderer: (offer: OfferManageTourModel) => offer.validPeriod?.pricePerChildRecUsd ?? '',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Per trip'),\r\n fieldName: '',\r\n customRenderer: (offer: OfferManageTourModel) => offer.validPeriod?.pricePerTripRecUsd ?? '',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Valid Until'),\r\n fieldName: '',\r\n customRenderer: (offer: OfferManageTourModel) =>\r\n offer.validPeriod?.periodEnd?.format('DD.MM.YYYY') ?? Localization.getString('Not specified'),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: '',\r\n fieldName: '',\r\n customRenderer: (offer: OfferManageTourModel) => (\r\n \r\n \r\n \r\n ),\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Tour Tickets'),\r\n fileName: 'tourtickets.xls',\r\n headerGroups: [[\r\n { Title: '', ColSpan: 1 },\r\n { Title: Localization.getString('Published Rate'), ColSpan: 3 },\r\n { Title: '', ColSpan: 2 },\r\n ]],\r\n customRowClassFunction: (obj: OfferManageTourModel) => obj.isDeleted ? \"cancelled\" : \"\",\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n \r\n \r\n ),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n )\r\n )\r\n ],\r\n })\r\n }\r\n const onCloseItineraryForm = () => {\r\n setIteneraryEdit(undefined)\r\n }\r\n const onAddEditItinerary = (itinerary: ItineraryModel) => {\r\n setIteneraryEdit(itinerary)\r\n }\r\n const onChangeItinerary = (itinerary: ItineraryModel) => {\r\n if (!itinerary.id) {\r\n setItineraries(itineraries.concat([itinerary]))\r\n }\r\n else {\r\n setItineraries(itineraries.map(x => x.index == itinerary.index ? itinerary : x))\r\n }\r\n onCloseItineraryForm()\r\n }\r\n const seoPageTitle = watch('seoPageTitle')\r\n const seoPageDescr = watch('seoPageDescription')\r\n const seo = watch('seo')\r\n const googlePlacesRating = watch('googlePlacesRating')\r\n const googlePlacesTotalRatings = watch('googlePlacesTotalRatings')\r\n const tripAdvisorRating = watch('tripAdvisorRating')\r\n const tripAdvisorTotalRatings = watch('tripAdvisorTotalRatings')\r\n const nameInternalError = errors.nameInternal ? errors.nameInternal.message : \"\";\r\n const nameDisplayError = errors.nameDisplay ? errors.nameDisplay.message : ''\r\n const urlError = errors.url ? errors.url.message : ''\r\n const languageError = errors.languageId ? errors.languageId.message : ''\r\n const tourCategoriesError = errors.toursCategories ? errors.toursCategories.message : ''\r\n const recommendedForError = errors.recommendedFor ? errors.recommendedFor.message : ''\r\n const basicTabErrors = `${nameInternalError}|${nameDisplayError}|${urlError}|${languageError}|${tourCategoriesError}|${recommendedForError}`\r\n .split('|').filter(x => x && x.length > 0)\r\n const isNoMedia = !photos || photos.length == 0\r\n const isNoHeroImage = !heroImageId\r\n const mediaWarning = isNoMedia ? \"You haven't selected any photos\" : isNoHeroImage ? \"Hero image is not selected\" : \"\"\r\n const tabIconStyle = { position: \"absolute\", marginLeft: \"-5px\" } as React.CSSProperties\r\n return (\r\n
\r\n
\r\n
Back to tours
\r\n setTab(TourFormTab.Basic)}\r\n className={`tab-head-item clickable ${tab == TourFormTab.Basic ? \"is-active\" : \"\"}`}>\r\n Basic details\r\n {basicTabErrors.length > 0 ? {basicTabErrors.map(x =>

{x}

)}}>
: null}\r\n
\r\n setTab(TourFormTab.Location)}\r\n className={`tab-head-item clickable \r\n ${tab == TourFormTab.Location ? \"is-active\" : \"\"}`}\r\n >\r\n Location details\r\n
\r\n
setTab(TourFormTab.Terms)} className={`tab-head-item clickable ${tab == TourFormTab.Terms ? \"is-active\" : \"\"}`}>Terms & Conditions
\r\n setTab(TourFormTab.Media)}\r\n className={`tab-head-item clickable ${tab == TourFormTab.Media ? \"is-active\" : \"\"}`}\r\n >\r\n Media\r\n {mediaWarning && }\r\n \r\n
setTab(TourFormTab.Itinerary)} className={`tab-head-item clickable ${tab == TourFormTab.Itinerary ? \"is-active\" : \"\"}`}>Itinerary
\r\n
setTab(TourFormTab.Faq)} className={`tab-head-item clickable ${tab == TourFormTab.Faq ? \"is-active\" : \"\"}`}>FAQ
\r\n
setTab(TourFormTab.Seo)} className={`tab-head-item clickable ${tab == TourFormTab.Seo ? \"is-active\" : \"\"}`}>SEO
\r\n
setTab(TourFormTab.Tickets)} className={`tab-head-item clickable ${tab == TourFormTab.Tickets ? \"is-active\" : \"\"}`}>Tickets
\r\n \r\n
\r\n\r\n {tour ? (\r\n \r\n {/* \r\n \r\n {Localization.getString('Back to tours list')}\r\n */}\r\n
\r\n
\r\n \r\n \r\n \r\n ('nameInternal')}\r\n register={register}\r\n options={{ required: Localization.getString('Tour code is required') }}\r\n />\r\n ('nameDisplay')}\r\n register={register}\r\n options={{\r\n required: Localization.getString('Tour display name is required'),\r\n onChange: (e: any) => {\r\n if (isAutoUrl) setValue(nameof('url'), slugify(e.target.value))\r\n return e.target.value\r\n }\r\n }}\r\n />\r\n ('url')}\r\n error={urlError}\r\n />\r\n ('languageId')}\r\n isRequired\r\n label={Localization.getString('Language')}\r\n isNotSearchable={true}\r\n error={languageError}\r\n options={languages.languagesOptions}\r\n control={control}\r\n rules={{\r\n validate: (value: any) => {\r\n return value && value > 0 ? undefined : \"Language is required\"\r\n }\r\n }}\r\n />\r\n \r\n {\r\n return <>\r\n \r\n {\r\n field.onChange(!field.value)\r\n }} />\r\n \r\n }}\r\n name={nameof('isTopTour')}\r\n control={control}\r\n />\r\n\r\n
\r\n
\r\n ('notesToAgents')}\r\n toolTipHtml={\r\n
\r\n

{Localization.getString('NotesToAgentTooltip1')}

\r\n

{Localization.getString('NotesToAgentTooltip2')}

\r\n
\r\n }\r\n control={control}\r\n />\r\n \r\n \r\n ('toursCategories')}\r\n isRequired\r\n label={Localization.getString('Tour Categories')}\r\n isNotSearchable={true}\r\n isMultiple\r\n error={tourCategoriesError}\r\n options={toursCategoriesOptions}\r\n control={control}\r\n rules={{\r\n validate: (value: any) => {\r\n return value && value.length > 0 ? undefined : \"At least one tour category is required\"\r\n }\r\n }}\r\n />\r\n ('recommendedFor')}\r\n isRequired\r\n label={Localization.getString('Recommended For')}\r\n isNotSearchable={true}\r\n error={recommendedForError}\r\n options={toursRecommendedForOptions}\r\n control={control}\r\n />\r\n ('salesDescription')}\r\n control={control}\r\n />\r\n \r\n )\r\n }\r\n noText={Localization.getString('Use custom')}\r\n name={nameof('isDefaultNotesToClientsPostBooking')}\r\n label={''}\r\n control={control}\r\n />\r\n ('notesToClientsPostBooking')}\r\n control={control}\r\n />\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n ('cityId')}\r\n label={Localization.getString('City')}\r\n error={errors.cityId ? errors.cityId.message : ''}\r\n options={citiesOptions}\r\n control={control}\r\n />\r\n \r\n \r\n Lat: {location.lat}   \r\n Lng: {location.lng}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n const label = \"Google Places Reviews\"\r\n const placeIdLabel = googlePlacesRating\r\n ? `${googlePlacesRating} stars, ${googlePlacesTotalRatings} ratings`\r\n : \"\"\r\n return {\r\n if (e) {\r\n const res = await apiCallWrapperNoDispatch(\"/api/tours/GooglePlaceRatings?placeId=\" + e)\r\n if (res.IsOk) {\r\n field.onChange(e)\r\n setValue(\"googlePlacesRating\", res.Content?.rating)\r\n setValue(\"googlePlacesTotalRatings\", res.Content?.ratingsCount)\r\n }\r\n else {\r\n setError(\"googlePlacesId\", { type: \"custom\", message: `Couldn't get rating for place id: ` + res.ErrorTitle })\r\n }\r\n }\r\n else {\r\n field.onChange(e)\r\n setValue(\"googlePlacesRating\", undefined)\r\n setValue(\"googlePlacesTotalRatings\", undefined)\r\n }\r\n }}\r\n />\r\n }}\r\n name={nameof('googlePlacesId')}\r\n control={control}\r\n />\r\n\r\n
\r\n
\r\n {/* ('facebookPageId')}\r\n /> */}\r\n \r\n {\r\n const label = \"TripAdvisor Reviews\"\r\n const placeIdLabel = tripAdvisorRating\r\n ? `${tripAdvisorRating} stars, ${tripAdvisorTotalRatings} ratings`\r\n : \"\"\r\n return {\r\n if (e) {\r\n const res = await apiCallWrapperNoDispatch(\"/api/tours/TripAdvisorLocationRating?locationId=\" + e)\r\n if (res.IsOk && res.Code != 404) {\r\n field.onChange(e)\r\n setValue(\"tripAdvisorRating\", res.Content?.rating)\r\n setValue(\"tripAdvisorTotalRatings\", res.Content?.ratingsCount)\r\n }\r\n else {\r\n setError(\"tripAdvisorId\", { type: \"custom\", message: `Couldn't get rating for specified TripAdvisor location: ` + res.ErrorTitle })\r\n }\r\n }\r\n else {\r\n field.onChange(e)\r\n setValue(\"tripAdvisorRating\", undefined)\r\n setValue(\"tripAdvisorTotalRatings\", undefined)\r\n }\r\n }}\r\n />\r\n }}\r\n name={nameof('tripAdvisorId')}\r\n control={control}\r\n />\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n 0 ? (\r\n Localization.getString('Use defaults')\r\n ) : (\r\n \r\n )\r\n }\r\n noText={Localization.getString('Use custom')}\r\n name={nameof('isDefaultCancellationPolicy')}\r\n label={''}\r\n control={control}\r\n onChange={(value) => {\r\n if (value) {\r\n setCancellation(supplier?.cancellationPolicy || [])\r\n }\r\n return value\r\n }}\r\n />\r\n {\r\n setValue('isDefaultCancellationPolicy', false)\r\n setCancellation(cancellations)\r\n }}\r\n cancellations={cancellation}\r\n />\r\n \r\n \r\n 0 ? (\r\n Localization.getString('Use defaults')\r\n ) : (\r\n \r\n )\r\n }\r\n noText={Localization.getString('Use custom')}\r\n name={nameof('isDefaultTermsAndConditions')}\r\n label={''}\r\n control={control}\r\n />\r\n \r\n

{Localization.getString('TermsAndConditionsToolTip1')}

\r\n

{Localization.getString('TermsAndConditionsToolTip2')}

\r\n

{Localization.getString('TermsAndConditionsToolTip3')}

\r\n
\r\n }\r\n label={Localization.getString('Terms & Conditions')}\r\n name={nameof('termsAndConditions')}\r\n control={control}\r\n disabled={isDefaultTermsAndConditions}\r\n placeholder={supplier?.defaultSettings.termsAndConditions}\r\n />\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n ('videoUrl')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n setItineraries(itineraries)}\r\n />\r\n \r\n \r\n ('tourItinerary')}\r\n control={control}\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0 ? (\r\n Localization.getString('Use defaults')\r\n ) : (\r\n \r\n )\r\n }\r\n noText={Localization.getString('Use custom')}\r\n name={nameof('isDefaultFaq')}\r\n label={''}\r\n control={control}\r\n />\r\n ('faq')}\r\n disabled={isDefaultFaq}\r\n control={control}\r\n placeholder={supplier?.defaultSettings.faq}\r\n />\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n ('seoPageTitle')}\r\n />\r\n \r\n ('seoPageDescription')}\r\n />\r\n \r\n \r\n \r\n ('seo')}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n {Localization.getString('Save')}\r\n \r\n {iteneraryEdit && setIteneraryEdit(undefined)}>\r\n \r\n }\r\n \r\n\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\nexport default TourForm\r\n","import { minutesToTimeString, timeStringToMinutes } from \"traveldesk-ui\"\r\n\r\nexport default class ItineraryStopModel {\r\n\r\n constructor(index: number, itineraryId: number) {\r\n this.index = index\r\n this.itineraryId = itineraryId\r\n }\r\n index: number = 0\r\n itineraryId: number = 0\r\n time: number = 0\r\n timeEnd: number = 0\r\n get timeDescription() {\r\n return minutesToTimeString(this.time)\r\n }\r\n set timeDescription(value: string) {\r\n this.time = timeStringToMinutes(value)\r\n }\r\n get timeEndDescription() {\r\n return minutesToTimeString(this.timeEnd)\r\n }\r\n set timeEndDescription(value: string) {\r\n this.timeEnd = timeStringToMinutes(value)\r\n }\r\n name: string = ''\r\n description: string = \"\"\r\n address: string = ''\r\n lat: number = 0\r\n lng: number = 0\r\n}","import * as React from 'react'\r\nimport ItineraryModel from '../../models/ItineraryModel'\r\nimport { useSelector } from 'react-redux'\r\nimport { Buttons, Col, Container, FieldFooter, FormFieldWrapper, Grid, IdFormField, Row, TextAreaField, TextFormField, TimePickerFormFieldController, Tooltip, indexDown, indexUp, minutesToTimeString, nameof, timeStringToMinutes } from 'traveldesk-ui'\r\nimport { ApplicationState } from 'traveldesk-ui/dist/store'\r\nimport { Controller, useForm } from 'react-hook-form'\r\nimport ItineraryStopModel from '../../models/ItineraryStopModel'\r\nimport { MapsLocationPicker } from 'traveldesk-ui'\r\nimport { MapsLocation } from 'traveldesk-ui'\r\nimport { GLOBAL_SETTINGS } from '../..'\r\ninterface Props {\r\n itinerary: ItineraryModel\r\n onChange: (itinerary: ItineraryModel) => void\r\n}\r\nconst ItineraryDesigner = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n\r\n const itinerary = props.itinerary\r\n const {\r\n register,\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n getValues,\r\n setValue,\r\n watch,\r\n reset,\r\n setError,\r\n } = useForm()\r\n const onSubmit = (data: any) => {\r\n props.onChange(data)\r\n }\r\n const getStopsFieldsNames = (index: number) => {\r\n return {\r\n index: `${nameof('stops')}[${index}].${nameof('index')}`,\r\n name: `${nameof('stops')}[${index}].${nameof('name')}`,\r\n description: `${nameof('stops')}[${index}].${nameof('description')}`,\r\n timeDescription: `${nameof('stops')}[${index}].${nameof('timeDescription')}`,\r\n timeEndDescription: `${nameof('stops')}[${index}].${nameof('timeEndDescription')}`,\r\n address: `${nameof('stops')}[${index}].${nameof('address')}`,\r\n lat: `${nameof('stops')}[${index}].${nameof('lat')}`,\r\n lng: `${nameof('stops')}[${index}].${nameof('lng')}`,\r\n\r\n }\r\n }\r\n const stops = watch('stops') as ItineraryStopModel[]\r\n const onAddStop = () => {\r\n const data = { ...getValues() } as ItineraryModel\r\n if (!data.stops) data.stops = []\r\n data.stops.push(new ItineraryStopModel(data.stops.length + 1, data.id))\r\n reset(data)\r\n }\r\n const onDeleteStop = (index: number) => {\r\n const data = { ...getValues() } as ItineraryModel\r\n data.stops = data.stops.filter(x => x.index != index).map(x => x.index > index ? {\r\n ...x,\r\n timeDescription: x.timeDescription, timeEndDescription: x.timeEndDescription, index: index - 1\r\n } : x)\r\n reset(data)\r\n }\r\n const onStopUp = (index: number) => {\r\n const data = { ...getValues() } as ItineraryModel\r\n data.stops = indexUp(data.stops, index)\r\n reset(data)\r\n }\r\n const onStopDown = (index: number) => {\r\n const data = { ...getValues() } as ItineraryModel\r\n data.stops = indexDown(data.stops, index)\r\n reset(data)\r\n }\r\n React.useEffect(() => {\r\n if (props.itinerary != null && props.itinerary.stops.length == 0) {\r\n onAddStop()\r\n }\r\n }, [])\r\n React.useEffect(() => {\r\n reset(props.itinerary)\r\n }, [props.itinerary])\r\n return \r\n
\r\n \r\n \r\n \r\n ('name')}\r\n register={register}\r\n options={{ required: Localization.getString('Itinerary name is required') }}\r\n />\r\n \r\n \r\n
\r\n \r\n

{Localization.getString('Itinerary stops')}:

\r\n \r\n \r\n \r\n \r\n \r\n\r\n {stops && stops.length > 0 ? (\r\n stops.map((stop, index) => {\r\n const fNames = getStopsFieldsNames(index)\r\n return [\r\n \r\n \r\n \r\n \r\n ,\r\n \r\n \r\n (\r\n parseInt(e.target.value, 10)}\r\n />\r\n )}\r\n />\r\n 0 && !stop.name\r\n ? Localization.getString('itinerary stop name is required')\r\n : undefined\r\n }\r\n defaultValue={stops[index].name}\r\n name={fNames.name}\r\n register={register}\r\n options={{\r\n required: Localization.getString('itinerary stop name is required'),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n const values = getValues()\r\n return {\r\n field.onChange(value.address)\r\n setValue(fNames.lat, value.lat)\r\n setValue(fNames.lng, value.lng)\r\n }}\r\n value={new MapsLocation(values[fNames.address], values[fNames.lat], values[fNames.lng])}\r\n />\r\n }}\r\n name={fNames.address}\r\n control={control}\r\n />\r\n \r\n ,\r\n \r\n \r\n
\r\n \r\n
,\r\n ]\r\n })\r\n ) : (\r\n \r\n \r\n {Localization.getString('Warning: Please add at least on stop')}\r\n \r\n }\r\n />\r\n )}\r\n {stops && stops.length > 0\r\n ? \r\n \r\n \r\n \r\n \r\n : null}\r\n
\r\n {Localization.getString('Save')}\r\n \r\n
\r\n}\r\nexport default ItineraryDesigner","import * as React from 'react'\r\nimport { generateArrayOfN } from 'traveldesk-ui'\r\nimport { generateRandomInteger, generateRandomString } from '../utils/randomizer'\r\nimport moment from 'moment'\r\nimport { FilterType, DataTableColumnModel, DataTableModelCustomAction, DataTable, DataTableModel } from 'traveldesk-ui'\r\nconst n = generateArrayOfN(20)\r\nconst multiselected = generateArrayOfN(10)\r\nconst multiselectTest = multiselected.reduce((res: any[], next: number) => {\r\n res.push({ id: next, value: 'Value ' + (next + 1) })\r\n return res\r\n}, [] as any[])\r\nconst data = [] as any\r\nfor (let i = 0; i < 6; i++) {\r\n data.push(\r\n n.reduce((res, next) => {\r\n switch (next) {\r\n case 0:\r\n return Object.assign(res, { ['date']: moment().add(generateRandomInteger(-10, 10), 'day') })\r\n case 1:\r\n return Object.assign(res, { ['dateRange']: moment().add(generateRandomInteger(-10, 10), 'day') })\r\n case 2:\r\n return Object.assign(res, { ['multi']: multiselectTest[generateRandomInteger(0, 3)].id })\r\n case 3:\r\n return Object.assign(res, { ['select']: multiselectTest[generateRandomInteger(0, 3)].id })\r\n case 4:\r\n return Object.assign(res, { ['sum']: generateRandomInteger(10, 500) })\r\n default:\r\n return Object.assign(res, { ['column' + next]: generateRandomString(20) })\r\n }\r\n }, {}),\r\n )\r\n}\r\n\r\nconst TestTableFullScreenPage = () => {\r\n const [numColumns, setNumColumns] = React.useState(4)\r\n const initDataTable = () => {\r\n const columns = generateArrayOfN(numColumns).reduce((res, next) => {\r\n switch (next) {\r\n case 0:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Date',\r\n fieldName: 'date',\r\n width: 120,\r\n filterType: FilterType.DATEPICKER,\r\n }),\r\n )\r\n break\r\n case 1:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Date Range',\r\n fieldName: 'dateRange',\r\n width: 120,\r\n sortable: true,\r\n filterType: FilterType.DATERANGE,\r\n }),\r\n )\r\n break\r\n case 2:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Multi Select',\r\n sortable: true,\r\n fieldName: 'multi',\r\n filterType: FilterType.MULTISELECT,\r\n customRenderer: (obj: any) => multiselectTest[obj.multi].value,\r\n filterOptions: multiselectTest.map((x) => ({ label: x.value, value: x.id })),\r\n }),\r\n )\r\n break\r\n case 3:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Select',\r\n sortable: true,\r\n fieldName: 'select',\r\n filterType: FilterType.SELECT,\r\n customRenderer: (obj: any) => multiselectTest[obj.select].value,\r\n filterOptions: multiselectTest.map((x) => ({ label: x.value, value: x.id })),\r\n }),\r\n )\r\n break\r\n case 4:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Number with Sum',\r\n sortable: true,\r\n fieldName: 'sum',\r\n showSum: true,\r\n filterType: FilterType.TEXTNUMBER,\r\n }),\r\n )\r\n break\r\n default:\r\n res.push(\r\n new DataTableColumnModel({\r\n displayName: 'Column ' + (next + 1),\r\n fieldName: 'column' + next,\r\n sortable: true,\r\n filterType: FilterType.TEXT,\r\n }),\r\n )\r\n }\r\n return res\r\n }, [] as DataTableColumnModel[])\r\n return new DataTableModel({\r\n columns,\r\n name: 'Test Table',\r\n fileName: 'test.xlsx',\r\n showSum: true,\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n setNumColumns(4)} className={numColumns == 4 ? 'active' : ''}>\r\n 4\r\n \r\n ),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n setNumColumns(8)} className={numColumns == 8 ? 'active' : ''}>\r\n 8\r\n \r\n ),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n setNumColumns(12)} className={numColumns == 12 ? 'active' : ''}>\r\n 12\r\n \r\n ),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n setNumColumns(16)} className={numColumns == 16 ? 'active' : ''}>\r\n 16\r\n \r\n ),\r\n ),\r\n ],\r\n })\r\n }\r\n const [isFullScreen, setIsFullScreen] = React.useState(false)\r\n return \r\n}\r\nexport default TestTableFullScreenPage\r\n","import * as React from 'react'\r\nimport { Redirect, RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport { AuthStore } from 'traveldesk-ui'\r\n\r\ninterface Props extends RouteComponentProps<{ email: string }> {}\r\nconst LogMeInPage = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n dispatch(AuthStore.actionCreators.logMeIn(props.match.params.email))\r\n React.useEffect(() => {\r\n if (auth.authData?.email == props.match.params.email) {\r\n props.history.push('/')\r\n }\r\n }, [auth.authData?.email])\r\n return null\r\n}\r\nexport default LogMeInPage\r\n","class GenericFilterModelBase {\r\n FieldName: string = ''\r\n}\r\nexport class GenericFilterModelText extends GenericFilterModelBase {\r\n Value: string = ''\r\n}\r\nexport class GenericFilterModelMultiSelect extends GenericFilterModelBase {\r\n Values: number[] = []\r\n}\r\n","import GenericFilterModel from '../serviceModels/GenericFilterModel'\r\nimport moment from 'moment'\r\nexport default class BookingsOperationsFilter extends GenericFilterModel {\r\n constructor() {\r\n super()\r\n this.from = moment().utc().startOf('d')\r\n this.to = this.from.clone().add(14, 'd')\r\n }\r\n from: moment.Moment\r\n to: moment.Moment\r\n}\r\n","import { GenericFilterModelText, GenericFilterModelMultiSelect } from './GenericServerFiltersModels'\r\nimport { FilterType } from 'traveldesk-ui'\r\n\r\nexport default class GenericFilterModel {\r\n page: number = 1\r\n textFilters: GenericFilterModelText[] = []\r\n multiSelectFilters: GenericFilterModelMultiSelect[] = []\r\n GetTextFilterValue(fieldName: string) {\r\n const fv = this.textFilters.find((x) => x.FieldName == fieldName)\r\n return fv ? fv.Value : undefined\r\n }\r\n GetMultiselectFilterValue(fieldName: string) {\r\n const fv = this.multiSelectFilters.find((x) => x.FieldName == fieldName)\r\n return fv ? fv.Values : undefined\r\n }\r\n SetFilter(fieldName: string, value: any) {\r\n if (value.type == FilterType.MULTISELECT) {\r\n const MultiSelectFilters =\r\n value.value && value.value.length > 0\r\n ? this.multiSelectFilters.some((x) => x.FieldName == fieldName)\r\n ? this.multiSelectFilters.map((x) =>\r\n x.FieldName == fieldName\r\n ? Object.assign(new GenericFilterModelMultiSelect(), x, { Values: value.value })\r\n : x,\r\n )\r\n : this.multiSelectFilters.concat([\r\n Object.assign(new GenericFilterModelMultiSelect(), {\r\n Values: value.value,\r\n FieldName: fieldName,\r\n }),\r\n ])\r\n : this.multiSelectFilters.filter((x) => x.FieldName != fieldName)\r\n this.page = 1\r\n this.multiSelectFilters = MultiSelectFilters\r\n return\r\n }\r\n if (value.type == FilterType.TEXT) {\r\n this.page = 1\r\n this.textFilters =\r\n value.value && value.value.length > 0\r\n ? this.textFilters.some((x) => x.FieldName == fieldName)\r\n ? this.textFilters.map((x) =>\r\n x.FieldName == fieldName\r\n ? Object.assign(new GenericFilterModelText(), x, { Value: value.value })\r\n : x,\r\n )\r\n : this.textFilters.concat([\r\n Object.assign(new GenericFilterModelText(), { Value: value.value, FieldName: fieldName }),\r\n ])\r\n : this.textFilters.filter((x) => x.FieldName != fieldName)\r\n return\r\n }\r\n }\r\n sortField: string = ''\r\n sortType: string = ''\r\n}\r\n","import * as React from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../store'\r\nimport * as BookingsState from '../store/Bookings'\r\nimport BookingsOperationsFilter from '../serviceModels/BookingsOperationsFilter'\r\nimport { DataTableColumnModel, FilterType, DataTableModelCustomAction, DataTableModel, DataTable } from 'traveldesk-ui'\r\nconst BookingsPage = () => {\r\n const tours = useSelector((state: ApplicationState) => state.tours)\r\n const bookings = useSelector((state: ApplicationState) => state.bookings)\r\n const dispatch = useDispatch()\r\n const [filter, setFilter] = React.useState(new BookingsOperationsFilter())\r\n React.useEffect(() => {\r\n getBookings(filter)\r\n }, [filter])\r\n const getBookings = (filter: BookingsOperationsFilter) => {\r\n dispatch(BookingsState.actionCreators.requestBookingsOperations(filter))\r\n }\r\n const onSortChanged = (fieldName: string, sortType: string) => {\r\n const f = Object.assign(new BookingsOperationsFilter(), filter, {\r\n SortField: fieldName,\r\n SortType: sortType,\r\n })\r\n setFilter(f)\r\n }\r\n const initDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: 'ID',\r\n fieldName: 'id',\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Date',\r\n fieldName: 'date',\r\n filterType: FilterType.DATERANGE,\r\n filterValue: { from: filter.from, to: filter.to },\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tour',\r\n fieldName: 'tour',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ticket',\r\n fieldName: 'ticket',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Hotel',\r\n filterFieldName: \"hotelId\",\r\n fieldName: 'hotelName',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Region',\r\n fieldName: 'region',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Guest Name',\r\n fieldName: 'guestName',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tel.',\r\n fieldName: 'tel',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ad.',\r\n fieldName: 'ad',\r\n showSum: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ch.',\r\n fieldName: 'ch',\r\n showSum: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Inf.',\r\n fieldName: 'inf',\r\n showSum: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'foc',\r\n fieldName: 'foc',\r\n showSum: true,\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: 'Bookings',\r\n fileName: 'bookings',\r\n showSum: true,\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => ,\r\n ),\r\n ],\r\n })\r\n }\r\n const onClearFilter = () => {\r\n setFilter(new BookingsOperationsFilter())\r\n }\r\n const onPageChanged = (page: number) => {\r\n setFilter(Object.assign(new BookingsOperationsFilter(), filter, { page }))\r\n }\r\n return (\r\n \r\n )\r\n}\r\nexport default BookingsPage\r\n","import moment from 'moment'\r\nimport { FilterValuesWrapper, SortType } from 'traveldesk-ui'\r\n\r\nexport default class BookingsRequest {\r\n page: number = 1\r\n dateStart?: moment.Moment = undefined\r\n dateEnd?: moment.Moment = undefined\r\n search?: FilterValuesWrapper = undefined\r\n sortField: string = 'date'\r\n sortType: SortType = 'DESC'\r\n constructor(search?: FilterValuesWrapper) {\r\n this.search = search\r\n }\r\n get query(): string {\r\n let res = `page=${this.page}&orderBy=${this.sortField}&orderType=${this.sortType}`\r\n if (this.dateStart) {\r\n res += `&from=${this.dateStart.format('DD.MM.YYYY')}`\r\n }\r\n if (this.dateEnd) {\r\n res += `&to=${this.dateEnd.format('DD.MM.YYYY')}`\r\n }\r\n if (this.search) {\r\n res += `&f=${this.search.query}`\r\n }\r\n return res.toLowerCase()\r\n }\r\n}\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport * as AgencyBookingsState from '../../store/AgencyBookings'\r\nimport {\r\n FilterValueType,\r\n DataTableColumnModel,\r\n FilterType,\r\n DataTableModel,\r\n DataTable,\r\n FilterValuesWrapper,\r\n DataTableModelCustomAction,\r\n CheckBox,\r\n Button,\r\n apiCallWrapper,\r\n apiCallWrapperNoDispatch,\r\n apiCallWrapperNoDispatchBlob,\r\n} from 'traveldesk-ui'\r\nimport BookingsRequest from './Models/BookingsRequest'\r\nimport BookingAgent from './Models/BookingAgent'\r\nimport moment from 'moment'\r\nimport OfferAgent from './Models/OfferAgent'\r\nimport Hotel from '../../models/Hotel'\r\nimport { BookingStatusOptions, BookingStatusDescription } from '../../models/BookingOperations'\r\nimport { PaginationModel } from 'traveldesk-ui'\r\nimport { Link } from 'react-router-dom'\r\nconst download = require('downloadjs')\r\n\r\ninterface Props extends RouteComponentProps<{ groupId: string }> { }\r\nconst Bookings = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const bookings = useSelector((state: ApplicationState) => state.agencyBookings.data)\r\n const offers = useSelector((state: ApplicationState) => state.agencyBookings.offers)\r\n const offersHash = useSelector((state: ApplicationState) => state.agencyBookings.offersHash)\r\n const agents = useSelector((state: ApplicationState) => state.agencyBookings.agents)\r\n const agentsHash = useSelector((state: ApplicationState) => state.agencyBookings.agentsHash)\r\n const hotels = useSelector((state: ApplicationState) => state.agencyBookings.hotels)\r\n const hotelsHash = useSelector((state: ApplicationState) => state.agencyBookings.hotelsHash)\r\n React.useEffect(() => {\r\n dispatch(AgencyBookingsState.actionCreators.requestAgencyBookingsAgents())\r\n dispatch(AgencyBookingsState.actionCreators.requestAgencyBookingsOffers())\r\n dispatch(AgencyBookingsState.actionCreators.requestAgencyBookingsHotels())\r\n }, [])\r\n const initFilter = () => {\r\n return new Map()\r\n }\r\n const [request, setRequest] = React.useState(new BookingsRequest())\r\n const getData = () => {\r\n dispatch(AgencyBookingsState.actionCreators.requestAgencyBookings(request))\r\n }\r\n React.useEffect(() => {\r\n getData()\r\n }, [request])\r\n const [filter, setFilter] = React.useState(initFilter())\r\n React.useEffect(() => {\r\n if (props.match.params.groupId) {\r\n onFilterValueChange('guestName', { type: FilterType.TEXT, value: props.match.params.groupId })\r\n }\r\n }, [props.match.params])\r\n const onShowMy = () => {\r\n let fv = filter.get('showMy')\r\n const v = !(fv && fv.value)\r\n onFilterValueChange('showMy', { type: FilterType.TEXT, value: v ? '1' : '0' })\r\n }\r\n const initDataTable = (\r\n offers: OfferAgent[],\r\n offersHash: Map,\r\n hotels: Hotel[],\r\n hotelsHash: Map,\r\n ) => {\r\n const dataTableColumns: DataTableColumnModel[] = [\r\n new DataTableColumnModel({\r\n displayName: 'Id',\r\n fieldName: 'id',\r\n filterType: FilterType.TEXTNUMBER,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Date',\r\n fieldName: 'date',\r\n width: 80,\r\n filterType: FilterType.DATERANGE,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Offer',\r\n fieldName: 'offer',\r\n width: 200,\r\n filterType: FilterType.MULTISELECT,\r\n customRenderer: (obj: BookingAgent) => {\r\n const h = offersHash.get(obj.offerId)\r\n if (h) {\r\n return h.name\r\n }\r\n return null\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n const h = offersHash.get(obj.offerId)\r\n if (h) {\r\n return h.name\r\n }\r\n return \"\"\r\n },\r\n filterOptions: offers.map((x) => ({ value: x.id, label: x.name })),\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Hotel',\r\n fieldName: 'hotel',\r\n width: 140,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: hotels.map((x) => ({\r\n value: x.id.toString(),\r\n label: `${x.name} (${x.cityId}, ${x.regionId || ''})`,\r\n })),\r\n customRenderer: (obj: BookingAgent) => {\r\n const h = hotelsHash.get(obj.hotelId)\r\n if (h) {\r\n return (\r\n h && (\r\n
\r\n {h.name}\r\n
\r\n \r\n {h.cityName}, {h.regionName}\r\n \r\n
\r\n )\r\n )\r\n }\r\n return null\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n const h = hotelsHash.get(obj.hotelId)\r\n if (h) {\r\n return h.name\r\n }\r\n return \"\"\r\n },\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Pick Up Time',\r\n fieldName: 'pickUpTime',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Room #',\r\n fieldName: 'roomNumber',\r\n width: 60,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Guest Name',\r\n fieldName: 'guestName',\r\n width: 120,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tel',\r\n fieldName: 'tel',\r\n width: 80,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ad',\r\n fieldName: 'numAdults',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ch',\r\n fieldName: 'numChildren',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Inf',\r\n fieldName: 'numInfants',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'FOC',\r\n fieldName: 'numFoc',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agent',\r\n fieldName: 'agent',\r\n sortable: true,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: agents.map((x) => ({\r\n value: x.id.toString(),\r\n label: x.name,\r\n })),\r\n customRenderer: (obj: BookingAgent) => {\r\n return agentsHash.get(obj.agentId)?.name ?? agentsHash.get(-obj.staffAgentId)?.name ?? ''\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n return agentsHash.get(obj.agentId)?.name ?? agentsHash.get(-obj.staffAgentId)?.name ?? ''\r\n }\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Voucher',\r\n fieldName: 'voucher',\r\n sortable: true,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Notes',\r\n fieldName: 'notes',\r\n sortable: true,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tickets',\r\n fieldName: 'canDownloadTickets',\r\n width: 64,\r\n isExportExcel: false,\r\n customRenderer: (obj: BookingAgent) => {\r\n return obj.canDownloadTickets ? (\r\n
\r\n \r\n
\r\n ) : null\r\n },\r\n }),\r\n // new DataTableColumnModel({\r\n // displayName: 'Agent',\r\n // fieldName: 'agent',\r\n // sortable: true,\r\n // }),\r\n new DataTableColumnModel({\r\n displayName: 'Gross Sales',\r\n fieldName: 'grossSales',\r\n customRenderer: (obj: BookingAgent) => obj.grossSales.toFixed(2),\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agency Receivable',\r\n fieldName: 'agencyReceivable',\r\n customRenderer: (obj: BookingAgent) => obj.agencyReceivable.toFixed(2),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Status',\r\n fieldName: 'Status',\r\n width: 80,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: BookingStatusOptions,\r\n customRenderer: (obj: BookingAgent) => BookingStatusDescription[obj.status],\r\n customExcelRenderer: (obj: BookingAgent) => BookingStatusDescription[obj.status],\r\n\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns: dataTableColumns,\r\n name: 'Bookings',\r\n fileName: 'bookings.xlsx',\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n \r\n \r\n ),\r\n 'Add new booking',\r\n ),\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n ),\r\n ),\r\n ],\r\n })\r\n }\r\n const downloadTickets = (obj: BookingAgent) => async () => {\r\n const data = await apiCallWrapperNoDispatchBlob(`/api/agent/bookings/downloadtickets/${obj.id}`)\r\n if (data.IsOk && data.Content) {\r\n download(data.Content, data.FileName, 'pdf')\r\n } else {\r\n alert(data.ErrorTitle)\r\n }\r\n }\r\n const onClearFilter = () => {\r\n setRequest(Object.assign(new BookingsRequest()))\r\n setFilter(initFilter())\r\n }\r\n const onPageChanged = (page: number) => {\r\n setRequest(Object.assign(new BookingsRequest(), request, { page }))\r\n }\r\n const onRefresh = () => {\r\n getData()\r\n // dispatch(AgencyCommissionsState.actionCreators.requestAgencyCommissions(request))\r\n }\r\n const onSortChanged = (sortField: string, sortType: string) => {\r\n const r = Object.assign(new BookingsRequest(new FilterValuesWrapper(filter)), {\r\n sortField,\r\n sortType,\r\n })\r\n setRequest(r)\r\n }\r\n const onFilterValueChange = (fieldName: string, filterValue: FilterValueType) => {\r\n filter.set(fieldName, filterValue)\r\n const newFilter = new Map(filter)\r\n setFilter(newFilter)\r\n setRequest(new BookingsRequest(new FilterValuesWrapper(filter)))\r\n }\r\n const dataTableModel = React.useMemo(() => {\r\n const res = initDataTable(offers, offersHash, hotels, hotelsHash)\r\n res.setFilter(filter)\r\n return res\r\n }, [offers, hotels, filter])\r\n return (\r\n \r\n )\r\n}\r\nexport default Bookings\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport Hotel from '../../models/Hotel'\r\nimport moment from 'moment'\r\nimport {\r\n DataTableColumnModel,\r\n FilterType,\r\n DataTableModel,\r\n DataTable,\r\n FilterValueType,\r\n FilterValuesWrapper,\r\n DataTableModelCustomAction,\r\n CheckBox,\r\n} from 'traveldesk-ui'\r\nimport { BookingStatusOptions, BookingStatusDescription } from '../../models/BookingOperations'\r\nimport BookingAgent from './Models/BookingAgent'\r\nimport OfferAgent from './Models/OfferAgent'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport BookingsRequest from './Models/BookingsRequest'\r\nimport * as AgencyCommissionsState from '../../store/AgencyCommissions'\r\nimport { PaginationModel } from 'traveldesk-ui'\r\nimport IdNameModel from '../../models/IdNameModel'\r\nimport { Link } from 'react-router-dom'\r\ninterface Props extends RouteComponentProps { }\r\nconst Commissions = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const commissions = useSelector((state: ApplicationState) => state.agencyCommissions.data)\r\n const agents = useSelector((state: ApplicationState) => state.agencyCommissions.agents)\r\n const agentsHash = useSelector((state: ApplicationState) => state.agencyCommissions.agentsHash)\r\n const offers = useSelector((state: ApplicationState) => state.agencyCommissions.offers)\r\n const offersHash = useSelector((state: ApplicationState) => state.agencyCommissions.offersHash)\r\n const hotels = useSelector((state: ApplicationState) => state.agencyCommissions.hotels)\r\n const hotelsHash = useSelector((state: ApplicationState) => state.agencyCommissions.hotelsHash)\r\n React.useEffect(() => {\r\n dispatch(AgencyCommissionsState.actionCreators.requestAgencyAgents())\r\n dispatch(AgencyCommissionsState.actionCreators.requestAgencyOffers())\r\n dispatch(AgencyCommissionsState.actionCreators.requestAgencyHotels())\r\n }, [])\r\n const initFilter = () => {\r\n return new Map()\r\n }\r\n const [filter, setFilter] = React.useState(initFilter())\r\n const [request, setRequest] = React.useState(new BookingsRequest())\r\n const getData = () => {\r\n dispatch(AgencyCommissionsState.actionCreators.requestAgencyCommissions(request))\r\n }\r\n React.useEffect(() => {\r\n getData()\r\n }, [request])\r\n const initDataTable = (\r\n offers: OfferAgent[],\r\n offersHash: Map,\r\n hotels: Hotel[],\r\n hotelsHash: Map,\r\n agents: IdNameModel[],\r\n agentsHash: Map,\r\n ) => {\r\n const dataTableColumns: DataTableColumnModel[] = [\r\n new DataTableColumnModel({\r\n displayName: 'Id',\r\n fieldName: 'id',\r\n filterType: FilterType.TEXTNUMBER,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Date',\r\n fieldName: 'date',\r\n width: 80,\r\n filterType: FilterType.DATERANGE,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Offer',\r\n fieldName: 'offer',\r\n width: 200,\r\n filterType: FilterType.MULTISELECT,\r\n customRenderer: (obj: BookingAgent) => {\r\n const h = offersHash.get(obj.offerId)\r\n if (h) {\r\n return h.name\r\n }\r\n return null\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n const h = offersHash.get(obj.offerId)\r\n if (h) {\r\n return h.name\r\n }\r\n return ''\r\n },\r\n filterOptions: offers.map((x) => ({ value: x.id, label: x.name })),\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Hotel',\r\n fieldName: 'hotel',\r\n width: 140,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: hotels.map((x) => ({\r\n value: x.id.toString(),\r\n label: `${x.name} (${x.cityId}, ${x.regionId || ''})`,\r\n })),\r\n customRenderer: (obj: BookingAgent) => {\r\n const h = hotelsHash.get(obj.hotelId)\r\n if (h) {\r\n return (\r\n h && (\r\n
\r\n {h.name}\r\n
\r\n \r\n {h.cityName}, {h.regionName}\r\n \r\n
\r\n )\r\n )\r\n }\r\n return null\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n const h = hotelsHash.get(obj.hotelId)\r\n if (h) {\r\n return h.name\r\n }\r\n return ''\r\n },\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Room #',\r\n fieldName: 'roomNumber',\r\n width: 80,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Guest Name',\r\n fieldName: 'guestName',\r\n width: 120,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tel',\r\n fieldName: 'tel',\r\n width: 80,\r\n filterType: FilterType.TEXT,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ad',\r\n fieldName: 'numAdults',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ch',\r\n fieldName: 'numChildren',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Inf',\r\n fieldName: 'numInfants',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'FOC',\r\n fieldName: 'numFoc',\r\n width: 60,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agent',\r\n fieldName: 'agent',\r\n sortable: true,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: agents.map((x) => ({\r\n value: x.id.toString(),\r\n label: x.name,\r\n })),\r\n customRenderer: (obj: BookingAgent) => {\r\n return agentsHash.get(obj.agentId)?.name ?? agentsHash.get(-obj.staffAgentId)?.name ?? ''\r\n },\r\n customExcelRenderer: (obj: BookingAgent) => {\r\n return agentsHash.get(obj.agentId)?.name ?? agentsHash.get(-obj.staffAgentId)?.name ?? ''\r\n }\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Voucher',\r\n fieldName: 'voucher',\r\n sortable: true,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Notes',\r\n fieldName: 'notes',\r\n sortable: true,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Gross Sales',\r\n fieldName: 'grossSales',\r\n customRenderer: (obj: BookingAgent) => obj.grossSales.toFixed(2),\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agency Receivable',\r\n fieldName: 'agencyReceivable',\r\n customRenderer: (obj: BookingAgent) => obj.agencyReceivable.toFixed(2),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Status',\r\n fieldName: 'Status',\r\n width: 80,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: BookingStatusOptions,\r\n customRenderer: (obj: BookingAgent) => BookingStatusDescription[obj.status],\r\n customExcelRenderer: (obj: BookingAgent) => BookingStatusDescription[obj.status],\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns: dataTableColumns,\r\n name: 'Commissions',\r\n fileName: 'commissions.xlsx',\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n \r\n \r\n ),\r\n 'Add new booking',\r\n ),\r\n ],\r\n })\r\n }\r\n const onClearFilter = () => {\r\n setRequest(Object.assign(new BookingsRequest()))\r\n setFilter(initFilter())\r\n }\r\n const onPageChanged = (page: number) => {\r\n setRequest(Object.assign(new BookingsRequest(), request, { page }))\r\n }\r\n const onRefresh = () => {\r\n getData()\r\n // dispatch(AgencyCommissionsState.actionCreators.requestAgencyCommissions(request))\r\n }\r\n const onSortChanged = (sortField: string, sortType: string) => {\r\n const r = Object.assign(new BookingsRequest(new FilterValuesWrapper(filter)), {\r\n sortField,\r\n sortType,\r\n })\r\n console.log(r)\r\n setRequest(r)\r\n }\r\n const onFilterValueChange = (fieldName: string, filterValue: FilterValueType) => {\r\n filter.set(fieldName, filterValue)\r\n const newFilter = new Map(filter)\r\n setFilter(newFilter)\r\n setRequest(new BookingsRequest(new FilterValuesWrapper(filter)))\r\n }\r\n const dataTableModel = React.useMemo(() => {\r\n const res = initDataTable(offers, offersHash, hotels, hotelsHash, agents, agentsHash)\r\n res.setFilter(filter)\r\n return res\r\n }, [offers, hotels, , agents, filter])\r\n return (\r\n \r\n )\r\n}\r\nexport default Commissions\r\n","export const generateRandomInteger = (from: number, to: number) => {\r\n const range = to - from\r\n return Math.floor(Math.random() * range) + from\r\n}\r\nexport const generateRandomString = (length: number) => {\r\n var result = ''\r\n var characters = ' ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\r\n var charactersLength = characters.length\r\n for (var i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength))\r\n }\r\n return result\r\n}\r\n","import * as React from 'react'\r\nconst Controls = () => {\r\n return (\r\n
\r\n
\r\n
\r\n

Typography

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Titles\r\n Google Font: Cabin\r\n
\r\n\r\n

H1 Heading

\r\n

H2 Heading

\r\n

H3 Heading

\r\n

H4 Heading

\r\n
H5 Heading
\r\n
\r\n
\r\n
\r\n Content\r\n Google Font: Cabin\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to Burj\r\n Al Arab,Dubai Marina and the “The World” Islands.\r\n

\r\n

\r\n You will enjoy fascinating sea waves and gain a different perspective on the\r\n city of Dubai by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Colors

\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n #33B92D\r\n
  • \r\n
  • \r\n
    \r\n #2B388F\r\n
  • \r\n
  • \r\n
    \r\n #F6921E\r\n
  • \r\n
  • \r\n
    \r\n #1B214A\r\n
  • \r\n
  • \r\n
    \r\n #848484\r\n
  • \r\n
  • \r\n
    \r\n #A5A5A5\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Buttons

\r\n \r\n
\r\n\r\n
\r\n

Buttons

\r\n
\r\n
col-100
\r\n
\r\n\r\n
\r\n
col-50
\r\n
col-50
\r\n
\r\n\r\n
\r\n
col-33
\r\n
col-66
\r\n
\r\n\r\n
\r\n
col-25
\r\n
col-50
\r\n
col-25
\r\n
\r\n\r\n
\r\n
col-33
\r\n
col-33
\r\n
col-33
\r\n
\r\n\r\n
\r\n
col-25
\r\n
col-25
\r\n
col-25
\r\n
col-25
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n small-gap\r\n
\r\n col-50\r\n
\r\n
\r\n small-gap\r\n
\r\n col-50\r\n
\r\n
\r\n\r\n
\r\n
\r\n small-gap\r\n
\r\n col-33\r\n
\r\n
\r\n small-gap\r\n
\r\n col-66\r\n
\r\n
\r\n\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n small-gap\r\n
\r\n col-50\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n\r\n
\r\n
\r\n small-gap\r\n
\r\n col-33\r\n
\r\n
\r\n small-gap\r\n
\r\n col-33\r\n
\r\n
\r\n small-gap\r\n
\r\n col-33\r\n
\r\n
\r\n\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n small-gap\r\n
\r\n col-25\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Contact Form

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n We don't send spam to our users\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Capslock\r\n
\r\n
\r\n \r\n Password must be at least 6 characters long\r\n \r\n Incorrect Password. Please try again.\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Capslock\r\n
\r\n
\r\n \r\n Password must be at least 6 characters long\r\n \r\n Incorrect Password. Please try again.\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
+12
\r\n \r\n \r\n
    \r\n
  • +12
  • \r\n
  • +7
  • \r\n
  • +35
  • \r\n
  • +38
  • \r\n
  • +44
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Your State
\r\n
    \r\n
  • Your State
  • \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Roman
\r\n
    \r\n
  • Roman
  • \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Select Option
\r\n
    \r\n
  • Select Option
  • \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Option #1
\r\n
    \r\n
  • Select Option
  • \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
  • Option #4
  • \r\n
  • Option #5
  • \r\n
  • Option #6
  • \r\n
  • Option #7
  • \r\n
  • Option #8
  • \r\n
  • Option #9
  • \r\n
  • Option #10
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n \r\n Option #1\r\n \r\n \r\n Option #2\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n {' '}\r\n {' '}\r\n Browse{' '}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
Drag & Drop Media Here
\r\n or\r\n \r\n Select Files\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
Drag & Drop Media Here
\r\n or\r\n \r\n Select Files\r\n \r\n\r\n
\r\n
    \r\n
  • \r\n \"Image\r\n
    \r\n \r\n \r\n \r\n
    \r\n
  • \r\n
  • \r\n \"Image\r\n
    \r\n \r\n \r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n \r\n

Edit Photo

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Choose
\r\n
    \r\n
  • Choose
  • \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Male
\r\n
    \r\n
  • Male
  • \r\n
  • Female
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Male\r\n
\r\n
\r\n \r\n Female\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Check this custom checkbox\r\n
\r\n
\r\n \r\n Check this custom checkbox\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Check this custom radio button\r\n
\r\n
\r\n \r\n Check this custom radio button\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Toggle switch element\r\n
\r\n
\r\n \r\n Disabled switch element\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Toggle switch element\r\n
\r\n
\r\n \r\n Disabled switch element\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n From\r\n \r\n To\r\n \r\n \r\n OK\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n 0\r\n $1000\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n

Tabs

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tab One\r\n
\r\n
\r\n Tab Two\r\n
\r\n
\r\n Tab Three\r\n
\r\n
\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n
\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tab One\r\n
\r\n
\r\n Tab Two\r\n
\r\n
\r\n Tab Three\r\n
\r\n
\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n
\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht,\r\n which has a convenient cabin with a bathroom, seating area in the front and\r\n the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Accordeon & Toggle

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {' '}\r\n \r\n {' '}\r\n {' '}\r\n \r\n Tab One\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {' '}\r\n \r\n {' '}\r\n {' '}\r\n \r\n Tab Two\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {' '}\r\n \r\n {' '}\r\n {' '}\r\n \r\n Tab Three\r\n
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Tab One
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
Tab Two
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
Tab Three
\r\n
\r\n

\r\n We are offering you an outstanding sea cruise around the Palm Jumeirah, to\r\n Burj Al Arab,Dubai Marina and the “The World” Islands. You will enjoy\r\n fascinating sea waves and gain a different perspective on the city of Dubai\r\n by seeing the skyline of the city from the water.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Multiple Select

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
    \r\n
  • Option #1
  • \r\n
  • Option #2
  • \r\n
  • Option #3
  • \r\n
  • Option #4
  • \r\n
  • Option #5
  • \r\n
  • Option #6
  • \r\n
  • Option #7
  • \r\n
  • Option #8
  • \r\n
  • Option #9
  • \r\n
  • Option #10
  • \r\n
{' '}\r\n
\r\n
{' '}\r\n {' '}\r\n
\r\n {' '}\r\n \r\n
    \r\n
  • Option #3
  • \r\n
  • Option #4
  • \r\n
  • Option #5
  • \r\n
{' '}\r\n
\r\n
{' '}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\nexport default Controls\r\n","import * as React from 'react'\r\nimport { ApplicationState } from '../../store'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { Link } from 'react-router-dom'\r\nimport { useForm } from 'react-hook-form'\r\nimport {\r\n TextFormField,\r\n NumberFormField,\r\n ToggleFieldController,\r\n SelectFormFieldController,\r\n Row,\r\n Col,\r\n Grid,\r\n SectionTitle,\r\n WysiwygFieldController,\r\n} from 'traveldesk-ui'\r\nimport { nameof } from 'traveldesk-ui'\r\nimport parseId from '../../services/parseId'\r\nimport { actionCreators as toursActions } from '../../store/Tours'\r\nimport { actionCreators as ticketsActions } from '../../store/Tickets'\r\nimport { actionCreators as citiesActions } from '../../store/Cities'\r\nimport { actionCreators as timeSlotsActions } from '../../store/TimeSlots'\r\nimport Offer from '../../models/Offer'\r\nimport OfferFormValidPeriods from './OfferFormValidPeriods'\r\nimport { MediaSelector } from 'traveldesk-ui'\r\nimport { Photo } from 'traveldesk-ui'\r\nimport { ScrollToTop, SelectOptionModel, IdFormField } from 'traveldesk-ui'\r\nimport { offerBookingTypeOptions } from './../../models/Offer'\r\nimport { Buttons, ContainerWithPadding } from 'traveldesk-ui'\r\nimport { LoadingSection } from '../../components/LoadingSection'\r\nimport { BookingTypeOptions } from '../../models/OfferBookingType'\r\ninterface Props extends RouteComponentProps<{ tourId: string; ticketId: string }> { }\r\nconst OfferForm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const citiesOptions = useSelector((state: ApplicationState) => {\r\n return state.cities.citiesOptions\r\n })\r\n const tickets = useSelector((state: ApplicationState) => {\r\n return state.tickets.types\r\n })\r\n const accountSettings = useSelector((state: ApplicationState) => state.account.settings)\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const ticketsOptions = React.useMemo(() => {\r\n return [{ value: undefined, label: Localization.getString('Not required') } as SelectOptionModel].concat(\r\n tickets.map((x) => ({ value: x.id, label: x.shortName })),\r\n )\r\n }, [tickets, Localization])\r\n const tour = useSelector((state: ApplicationState) => {\r\n return state.tours.tour\r\n })\r\n const offer = useSelector((state: ApplicationState) => {\r\n return state.tours.offer\r\n })\r\n const timeSlots = useSelector((state: ApplicationState) => {\r\n return state.timeSlots.timeSlotsGroups\r\n })\r\n const timeSlotsOptions = React.useMemo(\r\n () =>\r\n timeSlots.reduce((res, tsg) => {\r\n return res.concat(\r\n tsg.timeSlots.map((ts) => ({\r\n label: ts.name,\r\n value: ts.id,\r\n level: 2,\r\n url: `/timeslots/${tsg.id}#ts-${ts.id}`\r\n }))\r\n // {\r\n // label: tsg.name,\r\n // value: -tsg.id,\r\n // level: 1,\r\n // options: tsg.timeSlots.map((ts) => ({\r\n // label: ts.name,\r\n // value: ts.id,\r\n // level: 2,\r\n // })),\r\n // },\r\n )\r\n }, [] as SelectOptionModel[]),\r\n [timeSlots],\r\n )\r\n const onHeroImageChanged = (photo: Photo) => {\r\n setHeroImageId(photo.id)\r\n }\r\n const onDeletePhoto = (photo: Photo) => {\r\n setPhotos(photos.filter((x) => x.id != photo.id))\r\n }\r\n const onSelectPhotos = (newPhoto: Photo[]) => {\r\n setPhotos(photos.concat(newPhoto))\r\n }\r\n const bookingTypeOptions = React.useMemo(() => offerBookingTypeOptions(Localization), [Localization])\r\n const [photos, setPhotos] = React.useState(offer?.photos ?? [])\r\n const [heroImageId, setHeroImageId] = React.useState(offer?.heroImageId)\r\n const {\r\n register,\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n watch,\r\n reset,\r\n setValue,\r\n } = useForm({ defaultValues: offer })\r\n React.useEffect(() => {\r\n setPhotos(offer?.photos ?? [])\r\n setHeroImageId(offer?.heroImageId)\r\n reset(offer)\r\n }, [offer])\r\n React.useEffect(() => {\r\n ScrollToTop()\r\n const id = parseId(props.match.params.ticketId)\r\n const tourId = parseId(props.match.params.tourId)\r\n if (typeof tourId == undefined) {\r\n props.history.push('/tours')\r\n }\r\n if (typeof id == undefined) {\r\n props.history.push(`/tours${props.match.params.tourId}`)\r\n }\r\n if (!tour) {\r\n dispatch(toursActions.manageTour(tourId || 0, accountSettings))\r\n }\r\n if (tickets.length == 0) {\r\n dispatch(ticketsActions.requestTypes())\r\n }\r\n if (citiesOptions.length == 0) {\r\n dispatch(citiesActions.requestCitiesOptions())\r\n }\r\n if (timeSlots.length == 0) {\r\n dispatch(timeSlotsActions.requestTimeSlotsGroups())\r\n }\r\n }, [props.match.params.tourId, props.match.params.ticketId])\r\n React.useEffect(() => {\r\n ScrollToTop()\r\n const id = parseId(props.match.params.ticketId)\r\n const tourId = parseId(props.match.params.tourId)\r\n dispatch(toursActions.manageOffer(id || 0, tourId || 0, accountSettings))\r\n }, [props.match.params.ticketId])\r\n const onSubmit = (data: any) => {\r\n data.heroImageId = heroImageId\r\n data.photos = photos\r\n console.log(data)\r\n const offer = Offer.Create(data, parseInt(props.match.params.tourId), accountSettings)\r\n console.log(offer)\r\n // alert(JSON.stringify(data))\r\n dispatch(toursActions.saveOffer(offer))\r\n }\r\n const data = watch()\r\n return (\r\n \r\n {tour && offer ? (\r\n \r\n \r\n \r\n {Localization.getString('Back to tour')}\r\n \r\n
\r\n \r\n \r\n

{Localization.getString('Basic Details')}

\r\n \r\n\r\n ('nameInternal')}\r\n error={errors.nameInternal ? errors.nameInternal.message : ''}\r\n />\r\n ('nameDisplay')}\r\n error={errors.nameDisplay ? errors.nameDisplay.message : ''}\r\n />\r\n ('origin')}\r\n isRequired\r\n label={Localization.getString('Origin')}\r\n options={citiesOptions}\r\n isMultiple\r\n subLabel={Localization.getString(\r\n 'Select the cities FROM which this is ticket is valid for purchase',\r\n )}\r\n // error={errors.origin && errors.origin}\r\n control={control}\r\n />\r\n ('minimumAdvancedPayment')}\r\n />\r\n ('minNumOfPeople')}\r\n error={errors.minNumOfPeople ? errors.minNumOfPeople.message : ''}\r\n />\r\n ('maxNumOfPeople')}\r\n error={errors.maxNumOfPeople ? errors.maxNumOfPeople.message : ''}\r\n />\r\n ('numberOfHours')}\r\n error={errors.numberOfHours ? errors.numberOfHours.message : ''}\r\n />\r\n ('isDirectReporting')}\r\n label={Localization.getString('Is Direct Reporting')}\r\n control={control}\r\n />\r\n ('allowDirectCollection')}\r\n label={Localization.getString('Allow Direct Collection')}\r\n control={control}\r\n />\r\n ('isAppendTransactionFeeB2b')}\r\n label={Localization.getString('Append Transaction Fee')}\r\n control={control}\r\n />\r\n ('notesToClientsPostBooking')}\r\n control={control}\r\n />\r\n \r\n \r\n \r\n {/* subLabel={Localization.getString('SalesSubLabel')} */}\r\n ('description')}\r\n control={control}\r\n />\r\n

{Localization.getString('Age Policy & Attraction Tickets')}

\r\n\r\n ('childrenAllowed')}\r\n label={Localization.getString('Children allowed')}\r\n control={control}\r\n />\r\n ('childAge')}\r\n />\r\n ('infantsAllowed')}\r\n label={Localization.getString('Infants allowed')}\r\n control={control}\r\n />\r\n ('infantAge')}\r\n />\r\n ('isTicketsRequired')}\r\n label={Localization.getString('Are attraction tickets required for this ticket?')}\r\n control={control}\r\n onChange={(e: boolean) => {\r\n // if (!e) {\r\n // setValue('ticketTypeAdult', undefined as any)\r\n // setValue('ticketTypeChild', undefined as any)\r\n // setValue('ticketTypeInfant', undefined as any)\r\n // }\r\n }}\r\n />\r\n {data.isTicketsRequired && (\r\n ('ticketTypeAdult')}\r\n label={Localization.getString('Adult ticket')}\r\n options={ticketsOptions}\r\n isRequired\r\n control={control}\r\n />\r\n )}\r\n {data.isTicketsRequired && (\r\n ('ticketTypeChild')}\r\n label={Localization.getString('Child ticket')}\r\n isRequired\r\n options={ticketsOptions}\r\n control={control}\r\n />\r\n )}\r\n {data.isTicketsRequired && (\r\n ('ticketTypeInfant')}\r\n label={Localization.getString('Infant ticket')}\r\n isRequired\r\n options={ticketsOptions}\r\n control={control}\r\n />\r\n )}\r\n

{Localization.getString('Availability settings')}

\r\n ('bookingType')}\r\n label={Localization.getString('Booking Type')}\r\n options={BookingTypeOptions}\r\n control={control}\r\n />\r\n ('timeSlots')}\r\n label={Localization.getString('Time Slots')}\r\n isMultiple\r\n options={timeSlotsOptions}\r\n control={control}\r\n />\r\n \r\n
\r\n {Localization.getString('Save')}\r\n
\r\n {/* */}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n )\r\n}\r\nexport default OfferForm\r\n","const booleanOptions = [\r\n { value: 1, label: \"Yes\" },\r\n { value: 2, label: \"No\" }\r\n]\r\nexport default booleanOptions","import * as React from 'react'\r\nimport TimeSlot, { TimeSlotTimeType, getTimeSlotTimeTypeOptions } from './../../models/TimeSlot'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from './../../store/index'\r\nimport { actionCreators } from './../../store/TimeSlots'\r\nimport DaysOfferedService from './../../services/daysOfferedService'\r\nimport { Link } from 'react-router-dom'\r\nimport { PInTableList, SelectOptionModel, SortType, Tooltip, defaultLabelSort } from 'traveldesk-ui'\r\nimport { DataTableColumnModel, FilterType, DataTableModel, DataTableModelCustomAction, DataTable } from 'traveldesk-ui'\r\nimport TimeSlotGroup from '../../models/TimeSlotGroup'\r\nimport booleanOptions from '../../valueObjects/booleanOptions'\r\n\r\nconst TimeSlots = () => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const timeSlotsGroups = useSelector((state: ApplicationState) => state.timeSlots.timeSlotsGroups)\r\n const groupsOptions = React.useMemo(() => {\r\n return timeSlotsGroups.map((tsg) => ({ value: tsg.id, label: tsg.name }))\r\n }, [timeSlotsGroups])\r\n const timeSlotsOptions = React.useMemo(() => {\r\n return timeSlotsGroups.reduce((res: SelectOptionModel[], tsGroup: TimeSlotGroup) => {\r\n res = res.concat(tsGroup.timeSlots.map(ts => ({ value: ts.id, label: ts.name })))\r\n return res\r\n }, [] as SelectOptionModel[]).sort(defaultLabelSort)\r\n }, [timeSlotsGroups])\r\n const offersOptions = React.useMemo(() => {\r\n return timeSlotsGroups.reduce((res: SelectOptionModel[], tsGroup: TimeSlotGroup) => {\r\n tsGroup.timeSlots.forEach(ts => {\r\n ts.offers.forEach(offer => {\r\n if (!res.some(o => offer.id == o.value)) {\r\n res.push({ value: offer.id, label: offer.nameInternal })\r\n }\r\n })\r\n })\r\n return res\r\n }, [])\r\n }, [timeSlotsGroups])\r\n const daysOptions = React.useMemo(() => {\r\n return DaysOfferedService.daysNames.slice(1).map((day, index) => ({ label: day, value: index }))\r\n }, [DaysOfferedService.daysNames])\r\n const initDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Group name'),\r\n fieldName: 'groupId',\r\n filterFieldName: 'groupId',\r\n width: 100,\r\n customRenderer: (obj: TimeSlot) => obj.groupName,\r\n sortable: true,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: groupsOptions,\r\n sortFunc: (sortType: SortType, sortField: string) => (obj1: TimeSlot, obj2: TimeSlot) => (obj1.name > obj2.name ? sortType == \"ASC\" ? 1 : -1 : sortType == \"ASC\" ? -1 : 1),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Time slot'),\r\n fieldName: 'name',\r\n width: 100,\r\n filterFieldName: \"id\",\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: timeSlotsOptions,\r\n sortable: true,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('From'),\r\n fieldName: 'startTimeDescription',\r\n sortable: true,\r\n width: 60,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('To'),\r\n fieldName: 'endTimeDescription',\r\n sortable: true,\r\n width: 60\r\n }),\r\n new DataTableColumnModel({\r\n displayName: Localization.getString('Days offered'),\r\n fieldName: \"DaysOffered\",\r\n filterOptions: daysOptions,\r\n filterType: FilterType.MULTISELECT,\r\n customFilterFunc: (filterValue: number[], data: TimeSlot[]) => {\r\n return filterValue.length > 0\r\n ? data.filter((x) => x.daysOffered == 0 || filterValue.some((f) => (f & x.daysOffered) > 0))\r\n : data\r\n },\r\n customRenderer: (obj: TimeSlot) =>\r\n DaysOfferedService.getDaysNames(obj.daysOffered, Localization).join(','),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: \"Offers\",\r\n fieldName: \"offers\",\r\n filterOptions: offersOptions,\r\n filterType: FilterType.MULTISELECT,\r\n customFilterFunc: (filterValue: number[], data: TimeSlot[]) => {\r\n return filterValue.length > 0\r\n ? data.filter((x) => x.offers.some(offer => filterValue.indexOf(offer.id) >= 0))\r\n : data\r\n },\r\n width: 100,\r\n customRenderer: (obj: TimeSlot) => (\r\n \r\n {obj.offers.map(offer => {offer.nameInternal})}\r\n \r\n )\r\n }),\r\n new DataTableColumnModel({\r\n displayName: \"Type\",\r\n fieldName: \"timeType\",\r\n customRenderer: (obj: TimeSlot) => TimeSlotTimeType[obj.timeType],\r\n width: 60,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: getTimeSlotTimeTypeOptions(Localization)\r\n }),\r\n new DataTableColumnModel({\r\n displayName: \"Is External\",\r\n fieldName: \"isExternalId\",\r\n filterType: FilterType.SELECT,\r\n filterOptions: booleanOptions,\r\n customFilterFunc: (filterValue: any, data: TimeSlot[]) => filterValue === 2 ? data.filter(x => !x.isExternalId) : filterValue === 1 ? data.filter(x => x.isExternalId) : data,\r\n customRenderer: (obj: TimeSlot) => obj.isExternalId ? <>\r\n Ext. Product Id: {obj.externalProductId} {obj.externalId ? `(${obj.externalId})` : \"\"}\r\n {obj.externalProductPerChildId ? Ext. Product Child Id: {obj.externalProductPerChildId} {obj.externalPerChildId ? `(${obj.externalPerChildId})` : \"\"} : undefined}\r\n : undefined,\r\n width: 60,\r\n // filterType: FilterType.MULTISELECT,\r\n // filterOptions: getTimeSlotTimeTypeOptions(Localization)\r\n }),\r\n new DataTableColumnModel({\r\n displayName: '',\r\n width: 40,\r\n customRenderer: (obj: TimeSlot) => (\r\n \r\n \r\n \r\n ),\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Time Slots'),\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n {' '}\r\n \r\n {' '}\r\n \r\n \r\n \r\n ),\r\n ),\r\n ],\r\n })\r\n }\r\n const timeSlots = React.useMemo(() => {\r\n const res = timeSlotsGroups.reduce((res, next) => {\r\n return res.concat(next.timeSlots.map((ts) => TimeSlot.Create(ts, next)))\r\n }, [] as TimeSlot[])\r\n return res\r\n }, [timeSlotsGroups])\r\n const getTimeSlots = () => {\r\n dispatch(actionCreators.requestTimeSlotsGroups())\r\n }\r\n React.useEffect(() => {\r\n getTimeSlots()\r\n }, [])\r\n const onRefresh = () => {\r\n getTimeSlots()\r\n }\r\n return (\r\n \r\n )\r\n}\r\nexport default TimeSlots\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport parseId from '../../services/parseId'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { actionCreators as timeSlotsActions } from '../../store/TimeSlots'\r\nimport { ApplicationState } from './../../store/index'\r\nimport { Link } from 'react-router-dom'\r\nimport { useForm, Controller } from 'react-hook-form'\r\nimport {\r\n Grid,\r\n Row,\r\n Col,\r\n ContainerWithPadding,\r\n SectionTitle,\r\n TextFormField,\r\n NumberFormField,\r\n TimePickerFormFieldController,\r\n FormFieldHidable,\r\n Container,\r\n FieldFooter,\r\n IdFormField,\r\n SelectOptionModel,\r\n Tooltip,\r\n SelectFormFieldController,\r\n Select,\r\n ToggleFieldController,\r\n ToggleFormField,\r\n LabelFormField,\r\n} from 'traveldesk-ui'\r\nimport TimeSlotGroup from './../../models/TimeSlotGroup'\r\nimport { nameof } from 'traveldesk-ui'\r\n\r\nimport TimeSlot, {\r\n getTimeSlotTimeTypeOptions,\r\n TimeSlotType,\r\n TimeSlotTimeType,\r\n getTimeSlotTypeOptions,\r\n} from '../../models/TimeSlot'\r\nimport DaysOfferedService from './../../services/daysOfferedService'\r\nimport { Buttons } from 'traveldesk-ui'\r\nimport { actionCreators as pickUpTimesActions } from './../../store/PickUpTimes'\r\nimport { LoadingSection } from '../../components/LoadingSection'\r\nimport ExternalProviderOption, { ExternalProviderCodeType, ExternalProviderCodeTypesNames } from './ExternalProviderOption'\r\n\r\ninterface Props extends RouteComponentProps<{ id: string }> { }\r\n\r\nconst TimeSlotsForm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const pickUpTimesOptions = useSelector((state: ApplicationState) => state.pickUpTimes.options)\r\n const timeSlotGroup = useSelector((state: ApplicationState) => state.timeSlots.timeSlotGroup)\r\n const externalProvidersOptions = useSelector((state: ApplicationState) => state.timeSlots.externalProvidersOptions)\r\n const externalOffersMap = useSelector((state: ApplicationState) => state.timeSlots.externalOffersOptions)\r\n const externalTimeSlotsMap = useSelector((state: ApplicationState) => state.timeSlots.externalTimeSlotsOptions)\r\n const timeSlotsOptions = React.useMemo(() => {\r\n const res = DaysOfferedService.getDaysNamesOptions(Localization)\r\n return res\r\n }, [Localization])\r\n React.useEffect(() => {\r\n if (pickUpTimesOptions.length == 0) {\r\n dispatch(pickUpTimesActions.requestPickUpTimesOptions())\r\n }\r\n if (!externalProvidersOptions) {\r\n dispatch(timeSlotsActions.requestExternalProviders())\r\n }\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n const id = parseId(props.match.params.id)\r\n if (typeof id == undefined) {\r\n props.history.push('/timeslots')\r\n }\r\n dispatch(timeSlotsActions.manageTimeSlotGroup(id || 0))\r\n }, [props.match.params.id])\r\n React.useEffect(() => {\r\n if (timeSlotGroup) {\r\n const externalSlots = timeSlotGroup.timeSlots.filter(x => x.externalProductId && typeof x.externalProviderId != 'undefined')\r\n if (externalSlots?.length > 0) {\r\n const externalProviders = externalSlots.reduce((res: number[], ts: TimeSlot) => {\r\n if (typeof ts.externalProviderId != 'undefined' && res.indexOf(ts.externalProviderId) < 0) {\r\n res.push(ts.externalProviderId)\r\n }\r\n return res\r\n }, [] as number[])\r\n externalProviders.forEach(value => dispatch(timeSlotsActions.requestExternalOffers(value)))\r\n const externalOffers = externalSlots\r\n .filter(x => x.externalId && x.externalId.length > 0)\r\n .reduce((res: { apiProviderId: number, productId: string }[], ts: TimeSlot) => {\r\n if (ts.externalProductId && !res.some(x => x.productId == ts.externalProductId && x.apiProviderId == ts.externalProviderId)) {\r\n res.push({ apiProviderId: ts.externalProviderId || 0, productId: ts.externalProductId })\r\n }\r\n return res\r\n }, [] as { apiProviderId: number, productId: string }[])\r\n externalOffers.forEach(value => dispatch(timeSlotsActions.requestExternalTimeSlots(value.apiProviderId, value.productId)))\r\n }\r\n }\r\n reset(timeSlotGroup)\r\n }, [timeSlotGroup, externalProvidersOptions])\r\n const {\r\n register,\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n getValues,\r\n setValue,\r\n watch,\r\n reset,\r\n setError,\r\n } = useForm()\r\n const onSubmit = (data: any) => {\r\n if (data.timeSlots && data.timeSlots.length > 0) {\r\n data.timeSlots = data.timeSlots.map((ts: any) => {\r\n const _ts = Object.assign(new TimeSlot(), ts, {\r\n daysOffered: DaysOfferedService.encode(ts.daysOfferedList),\r\n })\r\n _ts.startTimeDescription = ts.startTimeDescription\r\n _ts.endTimeDescription = ts.endTimeDescription\r\n TimeSlot.SetTimeType(_ts, _ts.timeType)\r\n return _ts\r\n })\r\n dispatch(timeSlotsActions.save(data))\r\n }\r\n }\r\n const getTimeSlotFieldsNames = (index: number) => {\r\n return {\r\n id: `${nameof('timeSlots')}[${index}].${nameof('id')}`,\r\n name: `${nameof('timeSlots')}[${index}].${nameof('name')}`,\r\n daysOffered: `${nameof('timeSlots')}[${index}].${nameof('daysOfferedList')}`,\r\n startTime: `${nameof('timeSlots')}[${index}].${nameof('startTimeDescription')}`,\r\n endTime: `${nameof('timeSlots')}[${index}].${nameof('endTimeDescription')}`,\r\n capacity: `${nameof('timeSlots')}[${index}].${nameof('capacity')}`,\r\n availabilityType: `${nameof('timeSlots')}[${index}].${nameof('type')}`,\r\n cutOffResponseTime: `${nameof('timeSlots')}[${index}].${nameof(\r\n 'cutOffResponseTime',\r\n )}`,\r\n timeType: `${nameof('timeSlots')}[${index}].${nameof('timeType')}`,\r\n interval: `${nameof('timeSlots')}[${index}].${nameof('interval')}`,\r\n duration: `${nameof('timeSlots')}[${index}].${nameof('duration')}`,\r\n pickUpTimeId: `${nameof('timeSlots')}[${index}].${nameof('pickUpTimeId')}`,\r\n externalId: `${nameof('timeSlots')}[${index}].${nameof('externalId')}`,\r\n externalPerChildId: `${nameof('timeSlots')}[${index}].${nameof('externalPerChildId')}`,\r\n bookingReferencePrefix: `${nameof('timeSlots')}[${index}].${nameof('bookingReferencePrefix')}`,\r\n externalProviderDiffProductsAdultChild: `${nameof('timeSlots')}[${index}].${nameof('externalProviderDiffProductsAdultChild')}`,\r\n isExternalId: `${nameof('timeSlots')}[${index}].${nameof('isExternalId')}`,\r\n externalIsTicketPerPax: `${nameof('timeSlots')}[${index}].${nameof('externalIsTicketPerPax')}`,\r\n externalProviderId: `${nameof('timeSlots')}[${index}].${nameof('externalProviderId')}`,\r\n externalProviderCodeType: `${nameof('timeSlots')}[${index}].${nameof('externalProviderCodeType')}`,\r\n externalProductId: `${nameof('timeSlots')}[${index}].${nameof('externalProductId')}`,\r\n externalProductPerChildId: `${nameof('timeSlots')}[${index}].${nameof('externalProductPerChildId')}`,\r\n\r\n }\r\n }\r\n const timeSlots = watch('timeSlots') as TimeSlot[]\r\n const isTimeSlotsIndependant = watch(\"isTimeSlotsIndependant\")\r\n const onAddTimeSlot = () => {\r\n if (timeSlotGroup) {\r\n const data = TimeSlotGroup.Create(getValues() as any)\r\n data.timeSlots = (data.timeSlots || []).concat(TimeSlot.Create(new TimeSlot(), timeSlotGroup))\r\n reset(data)\r\n }\r\n }\r\n const timeSlotTypesOptioons = React.useMemo(() => getTimeSlotTypeOptions(Localization), [Localization])\r\n const timeSlotTimeTypesOptions = React.useMemo(() => getTimeSlotTimeTypeOptions(Localization), [Localization])\r\n return (\r\n \r\n {timeSlotGroup ? (\r\n \r\n \r\n \r\n {Localization.getString('Back to time slots')}\r\n \r\n
\r\n \r\n \r\n \r\n ('name')}\r\n register={register}\r\n options={{ required: Localization.getString('Group name is required') }}\r\n />\r\n ('capacity')}\r\n isRequired\r\n defaultValue={timeSlotGroup.capacity}\r\n label={Localization.getString('Capacity')}\r\n min={1}\r\n register={register}\r\n max={999999}\r\n />\r\n ('minimumAdvancedBooking')}\r\n defaultValue={timeSlotGroup.minimumAdvancedBooking}\r\n label={`${Localization.getString(\r\n 'Minimum advanced booking',\r\n )}, ${Localization.getString('hours')}`}\r\n min={-23}\r\n register={register}\r\n max={2400}\r\n />\r\n\r\n ('pickUpTimeId')}\r\n label={Localization.getString('Pick up time')}\r\n options={pickUpTimesOptions}\r\n control={control}\r\n />\r\n (\"isTimeSlotsIndependant\")}\r\n />\r\n \r\n \r\n
\r\n \r\n

{Localization.getString('Time Slots')}:

\r\n \r\n \r\n \r\n \r\n \r\n {timeSlots && timeSlots.length > 0 ? (\r\n timeSlots.map((ts, index) => {\r\n const fNames = getTimeSlotFieldsNames(index)\r\n const externalTimeSlotsOptions =\r\n fNames.externalProductId ? (externalTimeSlotsMap?.get(getValues(fNames.externalProviderId))?.get(getValues(fNames.externalProductId)) || []) : []\r\n const externalTimeSlotsOptionsForChild =\r\n fNames.externalProductPerChildId ? (externalTimeSlotsMap?.get(getValues(fNames.externalProviderId))?.get(getValues(fNames.externalProductPerChildId)) || []) : []\r\n const selectedProviderId = getValues(fNames.externalProviderId)\r\n const selectedProdiverOption = (selectedProviderId ? externalProvidersOptions?.find(x => x.value == selectedProviderId) : undefined) as (ExternalProviderOption | undefined)\r\n return [\r\n \r\n \r\n (\r\n parseInt(e.target.value, 10)}\r\n />\r\n )}\r\n />\r\n 0 && !ts.name\r\n ? Localization.getString('Time slot name is required')\r\n : undefined\r\n }\r\n defaultValue={timeSlots[index].name}\r\n name={fNames.name}\r\n register={register}\r\n options={{\r\n required: Localization.getString('Time slot name is required'),\r\n }}\r\n />\r\n {\r\n const prev = getValues(fNames.daysOffered) as number[]\r\n let res = e ? (e as number[]) : []\r\n if (res.some((x) => x == 0)) {\r\n if (prev.some((x) => x == 0)) {\r\n res = res.filter((x) => x != 0)\r\n } else {\r\n res = [0]\r\n }\r\n }\r\n setValue(fNames.daysOffered, res)\r\n return res\r\n }}\r\n control={control}\r\n />\r\n {isTimeSlotsIndependant\r\n ? parseFloat(e.target.value) || 0}\r\n />\r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (!e) {\r\n setValue(fNames.externalProviderId, undefined)\r\n setValue(fNames.externalProviderCodeType, ExternalProviderCodeType.None)\r\n setValue(fNames.externalId, \"\")\r\n setValue(fNames.externalPerChildId, \"\")\r\n setValue(fNames.bookingReferencePrefix, \"\")\r\n setValue(fNames.externalProductId, \"\")\r\n setValue(fNames.externalProductPerChildId, \"\")\r\n\r\n }\r\n }}\r\n />\r\n {getValues(fNames.isExternalId)\r\n ? <>\r\n {\r\n const externalProviderId = e.value as number\r\n if (!externalOffersMap?.has(externalProviderId)) {\r\n dispatch(timeSlotsActions.requestExternalOffers(externalProviderId))\r\n }\r\n setValue(fNames.externalProviderDiffProductsAdultChild, (e as ExternalProviderOption).isDifferentProducts)\r\n setValue(fNames.externalProviderCodeType, (e as ExternalProviderOption).codeType)\r\n setValue(fNames.bookingReferencePrefix, (e as ExternalProviderOption).bookingReferencePrefix)\r\n if (externalProviderId != getValues(fNames.externalProviderId)) {\r\n setValue(fNames.externalId, \"\")\r\n setValue(fNames.externalPerChildId, \"\")\r\n setValue(fNames.externalProductId, \"\")\r\n setValue(fNames.externalProductPerChildId, \"\")\r\n }\r\n }}\r\n />\r\n \r\n : null}\r\n {getValues(fNames.isExternalId) ? : null}\r\n {getValues(fNames.isExternalId) ? {\r\n const externalProductId = e.value as string\r\n const apiProviderId = getValues(fNames.externalProviderId)\r\n if (!externalTimeSlotsMap?.has(apiProviderId) || !externalTimeSlotsMap.get(apiProviderId)?.has(externalProductId)) {\r\n if (getValues(fNames.timeType) == TimeSlotTimeType.Fixed) {\r\n dispatch(timeSlotsActions.requestExternalTimeSlots(getValues(fNames.externalProviderId), externalProductId))\r\n }\r\n }\r\n }}\r\n /> : null}\r\n {(getValues(fNames.isExternalId) && getValues(fNames.externalProviderDiffProductsAdultChild))\r\n ? {\r\n const externalProductPerChildId = e.value as string\r\n const apiProviderId = getValues(fNames.externalProviderId)\r\n if (!externalTimeSlotsMap?.has(apiProviderId) || !externalTimeSlotsMap.get(apiProviderId)?.has(externalProductPerChildId)) {\r\n if (getValues(fNames.timeType) == TimeSlotTimeType.Fixed) {\r\n dispatch(timeSlotsActions.requestExternalTimeSlots(getValues(fNames.externalProviderId), externalProductPerChildId))\r\n }\r\n }\r\n }}\r\n /> : null}\r\n {(getValues(fNames.isExternalId) && getValues(fNames.externalProductId) && getValues(fNames.timeType) == TimeSlotTimeType.Fixed)\r\n ? <>\r\n \r\n \r\n : null}\r\n\r\n {(getValues(fNames.isExternalId) && getValues(fNames.externalProductPerChildId) && getValues(fNames.timeType) == TimeSlotTimeType.Fixed)\r\n ? <>\r\n \r\n \r\n : null}\r\n\r\n {(getValues(fNames.isExternalId))\r\n ? <>\r\n \r\n {/* */}\r\n \r\n : null}\r\n\r\n {/* ,\r\n \r\n \r\n
\r\n \r\n
,\r\n ]\r\n })\r\n ) : (\r\n \r\n \r\n {Localization.getString('Warning: Please add at least on time slot')}\r\n \r\n }\r\n />\r\n )}\r\n {timeSlots && timeSlots.length > 0\r\n ? \r\n \r\n \r\n \r\n \r\n : undefined}\r\n
\r\n {Localization.getString('Save')}\r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n )\r\n}\r\nexport default TimeSlotsForm\r\n","import * as React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../../store'\r\nimport { actionCreators } from './../../store/PickUpTimes'\r\nimport PickUpTime from './../../models/PickUpTime'\r\nimport { Link } from 'react-router-dom'\r\nimport { Tooltip } from 'traveldesk-ui'\r\nimport { DataTableColumnModel, FilterType, DataTableModel, DataTableModelCustomAction, DataTable } from 'traveldesk-ui'\r\nconst PickUpTimes = () => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const getData = () => {\r\n dispatch(actionCreators.requestPickUpTimesManageList())\r\n }\r\n React.useEffect(() => {\r\n getData()\r\n }, [])\r\n const onRefresh = () => {\r\n getData()\r\n }\r\n const initDataTable = () => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n fieldName: 'name',\r\n displayName: Localization.getString('Name'),\r\n sortable: true,\r\n width: 300,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'isFixedTime',\r\n width: 40,\r\n displayName: Localization.getString('Is Fixed Time'),\r\n customRenderer: (obj: PickUpTime) => (obj.isFixedTime ? : null),\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: '',\r\n displayName: '',\r\n width: 40,\r\n customRenderer: (obj: PickUpTime) => (\r\n \r\n \r\n \r\n ),\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: '',\r\n displayName: '',\r\n width: 40,\r\n customRenderer: (obj: PickUpTime) => ,\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Pick Up Times'),\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n ),\r\n ],\r\n })\r\n }\r\n const dataTableModel = React.useMemo(initDataTable, [])\r\n const data = useSelector((state: ApplicationState) => state.pickUpTimes.pickUpTimesManage)\r\n return (\r\n \r\n )\r\n}\r\nexport default PickUpTimes\r\n","class PickUpTimeValue {\r\n timeStart: number = 0\r\n timeEnd: number = 0\r\n name: string = ''\r\n}\r\nexport class PickUpTimeRegionValue extends PickUpTimeValue {\r\n regionId: number = 0\r\n cityId: number = 0\r\n cityName: string = ''\r\n isActive: boolean = false\r\n}\r\nexport class PickUpTimeHotelValue extends PickUpTimeValue {\r\n hotelId: number = 0\r\n regionId?: number = 0\r\n regionName: string = ''\r\n cityId: number = 0\r\n cityName: string = ''\r\n}\r\n","import * as React from 'react'\r\nimport {\r\n Grid,\r\n Row,\r\n Col,\r\n TimePickerFormFieldController,\r\n timeStringToMinutes,\r\n Popup,\r\n PopupFormWrapper,\r\n} from 'traveldesk-ui'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../../store/index'\r\nimport { useForm } from 'react-hook-form'\r\nimport { Buttons } from 'traveldesk-ui'\r\n\r\ninterface Props {\r\n onClose: () => void\r\n onSubmit: (value: { timeStart: number; timeEnd: number }) => void\r\n}\r\nconst PickUpTimeFormMassEdit = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const { handleSubmit, control } = useForm()\r\n const onSubmit = (data: any) => {\r\n data.timeStart = timeStringToMinutes(data.timeStart)\r\n data.timeEnd = timeStringToMinutes(data.timeEnd)\r\n props.onSubmit(data)\r\n }\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n

{Localization.getString('Mass set pick up times for selected hotels')}

\r\n \r\n
\r\n \r\n \r\n e}\r\n />\r\n \r\n \r\n e}\r\n />\r\n \r\n \r\n {Localization.getString('Save')}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default PickUpTimeFormMassEdit\r\n","import * as React from 'react'\r\nimport {\r\n ContainerWithPadding,\r\n Grid,\r\n Row,\r\n Col,\r\n SectionTitle,\r\n minutesToTimeString,\r\n SelectOptionModel,\r\n IdFormField,\r\n TextFormField,\r\n ToggleFieldController,\r\n ToggleFormField,\r\n} from 'traveldesk-ui'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport parseId from './../../services/parseId'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { actionCreators as pickUpTimesActions } from './../../store/PickUpTimes'\r\nimport { useForm, Controller } from 'react-hook-form'\r\nimport { Link } from 'react-router-dom'\r\nimport PickUpTime from './../../models/PickUpTime'\r\nimport { nameof } from 'traveldesk-ui'\r\n\r\nimport { Buttons } from 'traveldesk-ui'\r\nimport { actionCreators as regionsActions } from '../../store/Regions'\r\nimport { PickUpTimeRegionValue, PickUpTimeHotelValue } from './../../models/PickUpTimeValues'\r\nimport PickUpTimeFormMassEdit from './PickUpTimeFormMassEdit'\r\nimport { LoadingSection } from '../../components/LoadingSection'\r\nimport {\r\n DataTableColumnModel,\r\n InputType,\r\n FilterType,\r\n DataTableModel,\r\n DataTableModelCustomAction,\r\n DataTable,\r\n} from 'traveldesk-ui'\r\ninterface Props extends RouteComponentProps<{ id: string }> {}\r\n\r\nlet clearSelectedHotelsCallback = undefined as any\r\nconst PickUpTimeForm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const pickUpTime = useSelector((state: ApplicationState) => state.pickUpTimes.pickUpTime)\r\n const regions = useSelector((state: ApplicationState) => state.regions.supplierRegions)\r\n const hotels = useSelector((state: ApplicationState) => state.pickUpTimes.hotelsOptions)\r\n const cities = useSelector((state: ApplicationState) => state.pickUpTimes.citiesOptions)\r\n const [showOverridenHotels, setShowOverridenHotels] = React.useState(false)\r\n const [showDeactivatedRegions, setShowDeactivatedRegions] = React.useState(true)\r\n const [showHotelsPickUps, setShowHotelsPickUps] = React.useState(false)\r\n const [regionsPickUps, setRegionsPickUps] = React.useState([] as PickUpTimeRegionValue[])\r\n const [hotelsPickUps, setHotelsPickUps] = React.useState([] as PickUpTimeHotelValue[])\r\n const [selectedHotels, setSelectedHotels] = React.useState([] as number[])\r\n const [isMassSetHotels, setIsMassSetHotels] = React.useState(false)\r\n React.useEffect(() => {\r\n const id = parseId(props.match.params.id)\r\n if (typeof id == undefined) {\r\n props.history.push('/timeslots')\r\n }\r\n dispatch(pickUpTimesActions.managePickUpTime(id || 0))\r\n }, [props.match.params.id])\r\n React.useEffect(() => {\r\n reset(pickUpTime)\r\n if (pickUpTime?.hotelsPickUpTimes.length ?? 0 > 0) {\r\n setShowHotelsPickUps(true)\r\n }\r\n }, [pickUpTime])\r\n\r\n React.useEffect(() => {\r\n dispatch(regionsActions.requestSupplierRegions())\r\n dispatch(pickUpTimesActions.getCitiesOptions())\r\n }, [])\r\n React.useEffect(() => {\r\n if (showHotelsPickUps) {\r\n dispatch(pickUpTimesActions.getHotelsOptions())\r\n }\r\n }, [showHotelsPickUps])\r\n React.useEffect(() => {\r\n if (hotels.length == 0 || !pickUpTime) return\r\n setHotelsPickUps(\r\n hotels.map((hotel) => {\r\n const res = Object.assign(new PickUpTimeHotelValue(), {\r\n name: hotel.name,\r\n hotelId: hotel.id,\r\n regionId: hotel.regionId,\r\n regionName: hotel.regionId ? regions.find((x) => x.id == hotel.regionId)?.name ?? '' : '',\r\n cityId: hotel.cityId,\r\n cityName: cities.find((x) => x)?.label ?? '',\r\n })\r\n const v = pickUpTime?.hotelsPickUpTimes.find((x) => x.hotelId == hotel.id)\r\n if (v) {\r\n Object.assign(res, v)\r\n }\r\n return res\r\n }),\r\n )\r\n }, [pickUpTime, hotels, regions, cities])\r\n React.useEffect(() => {\r\n setRegionsPickUps(\r\n regions.map((region) => {\r\n const res = Object.assign(new PickUpTimeRegionValue(), {\r\n name: region.name,\r\n regionId: region.id,\r\n cityId: region.cityId,\r\n cityName: cities.find((x) => x.value == region.cityId)?.label,\r\n })\r\n const v = pickUpTime?.regionsPickUpTimes.find((x) => x.regionId == region.id)\r\n if (v) {\r\n Object.assign(res, v)\r\n }\r\n return res\r\n }),\r\n )\r\n }, [pickUpTime, regions, cities])\r\n const hotelsPickUpsDisplay = React.useMemo(\r\n () => (showOverridenHotels ? hotelsPickUps.filter((x) => x.timeStart || x.timeEnd) : hotelsPickUps),\r\n [hotelsPickUps, showOverridenHotels],\r\n )\r\n const regionsPickUpsDisplay = React.useMemo(\r\n () => (showDeactivatedRegions ? regionsPickUps : regionsPickUps.filter((x) => x.isActive)),\r\n [regionsPickUps, showDeactivatedRegions],\r\n )\r\n const { register, handleSubmit, formState:{errors}, control, getValues, setValue, watch, reset, setError } = useForm()\r\n const onSubmit = (data: any) => {\r\n data.regionsPickUpTimes = regionsPickUps\r\n data.hotelsPickUpTimes = hotelsPickUps.filter((x) => x.timeStart || x.timeEnd)\r\n dispatch(pickUpTimesActions.save(data))\r\n }\r\n const isFixedTime = watch('isFixedTime')\r\n const initHotelsDataTable = (citiesOptions: SelectOptionModel[], regionsOptions: SelectOptionModel[]) => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n fieldName: 'name',\r\n displayName: Localization.getString('Hotel'),\r\n sortable: true,\r\n width: 200,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'cityName',\r\n displayName: Localization.getString('City'),\r\n sortable: true,\r\n width: 120,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: citiesOptions,\r\n filterFieldName: 'cityId',\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'regionName',\r\n displayName: Localization.getString('Region'),\r\n sortable: true,\r\n width: 120,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: regionsOptions,\r\n filterFieldName: 'regionId',\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'timeStart',\r\n displayName: isFixedTime\r\n ? Localization.getString('From')\r\n : Localization.getString('Starts, minutes before tour start time'),\r\n customRenderer: (obj: PickUpTimeHotelValue) => minutesToTimeString(obj.timeStart),\r\n isEditable: true,\r\n width: 50,\r\n editType: InputType.Time,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'timeEnd',\r\n displayName: isFixedTime\r\n ? Localization.getString('To')\r\n : Localization.getString('Ends, minutes before tour start time'),\r\n customRenderer: (obj: PickUpTimeHotelValue) => minutesToTimeString(obj.timeEnd),\r\n width: 50,\r\n isEditable: true,\r\n editType: InputType.Time,\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Hotels pick up times'),\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n 0 ? () => setIsMassSetHotels(true) : undefined}\r\n className={`fa fa-pencil ${selectedHotels.length == 0 ? 'disabled' : ''}`}\r\n />\r\n ),\r\n Localization.getString(\"Mass set pick up times for selected hotels'\"),\r\n ),\r\n new DataTableModelCustomAction(\r\n () => {},\r\n () => (\r\n setShowOverridenHotels(!showOverridenHotels)}\r\n className={`fa fa-calendar${showOverridenHotels ? ' active' : ''}`}\r\n />\r\n ),\r\n Localization.getString('Show hotels with overriden pick up times only'),\r\n ),\r\n ],\r\n })\r\n }\r\n const initRegionsDataTable = (citiesOptions: SelectOptionModel[]) => {\r\n const columns = [\r\n new DataTableColumnModel({\r\n fieldName: 'name',\r\n displayName: Localization.getString('Region'),\r\n sortable: true,\r\n width: 120,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'cityName',\r\n displayName: Localization.getString('City'),\r\n sortable: true,\r\n width: 100,\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: citiesOptions,\r\n filterFieldName: 'cityId',\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'timeStart',\r\n displayName: isFixedTime\r\n ? Localization.getString('From')\r\n : Localization.getString('Starts, minutes before tour start time'),\r\n customRenderer: (obj: PickUpTimeRegionValue) => minutesToTimeString(obj.timeStart),\r\n isEditable: true,\r\n width: 50,\r\n editType: InputType.Time,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'timeEnd',\r\n displayName: isFixedTime\r\n ? Localization.getString('To')\r\n : Localization.getString('Ends, minutes before tour start time'),\r\n customRenderer: (obj: PickUpTimeRegionValue) => minutesToTimeString(obj.timeEnd),\r\n isEditable: true,\r\n width: 50,\r\n editType: InputType.Time,\r\n }),\r\n new DataTableColumnModel({\r\n fieldName: 'isActive',\r\n displayName: Localization.getString('Is Active'),\r\n isEditable: true,\r\n width: 40,\r\n editType: InputType.Checkbox,\r\n customRenderer: (obj: PickUpTimeRegionValue) => (obj.isActive ? : null),\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: Localization.getString('Regions pick up times'),\r\n })\r\n }\r\n const regionsDataTableModel = React.useMemo(() => initRegionsDataTable(cities), [isFixedTime, cities])\r\n const hotelsDataTableModel = React.useMemo(\r\n () =>\r\n initHotelsDataTable(\r\n cities,\r\n regions.map((x) => ({ value: x.id, label: x.name })),\r\n ),\r\n [cities, regions, showOverridenHotels, selectedHotels],\r\n )\r\n const onRegionPickUpTimeEdit = (prev: PickUpTimeRegionValue, next: PickUpTimeRegionValue) => {\r\n setRegionsPickUps(\r\n regionsPickUps.map((x) =>\r\n x.regionId == next.regionId ? Object.assign(new PickUpTimeRegionValue(), next) : x,\r\n ),\r\n )\r\n }\r\n const onHotelPickUpTimeEdit = (prev: PickUpTimeHotelValue, next: PickUpTimeHotelValue) => {\r\n setHotelsPickUps(\r\n hotelsPickUps.map((x) => (x.hotelId == next.hotelId ? Object.assign(new PickUpTimeHotelValue(), next) : x)),\r\n )\r\n }\r\n const onSelectedChanged = (selected: number[]) => {\r\n setSelectedHotels(selected)\r\n }\r\n const clearSelectedHotels = () => {\r\n setSelectedHotels([])\r\n if (clearSelectedHotelsCallback) clearSelectedHotelsCallback()\r\n }\r\n const onCancelMassEdit = () => {\r\n setIsMassSetHotels(false)\r\n }\r\n const onSubmitMassEdit = (value: { timeStart: number; timeEnd: number }) => {\r\n setHotelsPickUps(\r\n hotelsPickUps.map((hp) =>\r\n selectedHotels.indexOf(hp.hotelId) >= 0\r\n ? Object.assign(new PickUpTimeHotelValue(), hp, {\r\n timeStart: value.timeStart,\r\n timeEnd: value.timeEnd,\r\n })\r\n : hp,\r\n ),\r\n )\r\n clearSelectedHotels()\r\n setIsMassSetHotels(false)\r\n }\r\n return (\r\n \r\n {isMassSetHotels && }\r\n {pickUpTime ? (\r\n \r\n \r\n \r\n {Localization.getString('Back to pick up times list')}\r\n \r\n
\r\n \r\n \r\n \r\n ('name')}\r\n register={register}\r\n options={{\r\n required: Localization.getString('Pick up time name is required'),\r\n }}\r\n />\r\n ('isFixedTime')}\r\n label={Localization.getString('Fixed time')}\r\n control={control}\r\n />\r\n setShowDeactivatedRegions(e)}\r\n />\r\n \r\n
\r\n {pickUpTime.hotelsPickUpTimes.length == 0 && (\r\n setShowHotelsPickUps(e)}\r\n />\r\n )}\r\n {(pickUpTime.hotelsPickUpTimes.length > 0 || showHotelsPickUps) && [\r\n {\r\n clearSelectedHotelsCallback = callback\r\n }}\r\n />,\r\n
,\r\n ]}\r\n {Localization.getString('Save')}\r\n \r\n
\r\n
\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n )\r\n}\r\nexport default PickUpTimeForm\r\n","import * as React from 'react'\r\nimport { RouteComponentProps, Route } from 'react-router'\r\nimport { ApplicationState } from '../../store'\r\nimport { useSelector } from 'react-redux'\r\nimport AdminCoreInfo from './AdminCoreInfo'\r\nimport AdminContacts from './AdminContacts'\r\nimport AdminContracting from './AdminContracting'\r\nimport AdminStaff from './AdminStaff'\r\nimport AdminDefaultSettings from './AdminDefaultSettings'\r\nimport { Link } from 'react-router-dom'\r\n\r\ninterface Props extends RouteComponentProps<{ tab: string }> { }\r\nconst urls = [\r\n { url: 'core', name: 'Core Info', component: AdminCoreInfo },\r\n { url: 'contacts', name: 'Contacts', component: AdminContacts },\r\n { url: 'contracting', name: 'Contracting', component: AdminContracting },\r\n { url: 'staff', name: 'Staff', component: AdminStaff },\r\n { url: 'defaultsettings', name: 'Default Settings', component: AdminDefaultSettings },\r\n]\r\nconst AdminLayout = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return (\r\n
\r\n
\r\n {urls.map((url, index) => (\r\n \r\n \r\n {Localization.getString(url.name)}\r\n
\r\n \r\n ))}\r\n {/*
{Localization.getString('Core Info')}
\r\n
{Localization.getString('Contacts')}
\r\n
{Localization.getString('Contracting')}
\r\n
{Localization.getString('Staff')}
\r\n
{Localization.getString('Default Settings')}
*/}\r\n
\r\n
\r\n {urls.map((url, index) => (\r\n \r\n ))}\r\n
\r\n \r\n )\r\n}\r\nexport default AdminLayout\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport { useForm, Controller } from 'react-hook-form'\r\nimport { actionCreators as supplierActions } from './../../store/Supplier'\r\nimport { Supplier, SupplierPaymentDetails } from '../../models/Supplier'\r\nimport { nameof } from 'traveldesk-ui'\r\nimport {\r\n Row,\r\n Col,\r\n TextFormField,\r\n TextAreaField,\r\n SelectFormField,\r\n FormFieldLabel,\r\n Buttons,\r\n SelectOptionModel,\r\n FormFieldWrapper,\r\n} from 'traveldesk-ui'\r\nimport { useCountriesOptions } from './../../effects/useCountriesOptions'\r\nimport { useSupplier } from './../../effects/useSupplier'\r\ninterface Props extends RouteComponentProps<{ tab: string }> {}\r\nconst AdminCoreInfo = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const supplier = useSupplier()\r\n const countriesOptions = useCountriesOptions()\r\n const dispatch = useDispatch()\r\n const { reset, register, handleSubmit, formState: {errors}, control } = useForm({ defaultValues: supplier })\r\n const onSubmit = (data: any) => {\r\n dispatch(supplierActions.updateSupplier(supplier, data))\r\n }\r\n React.useEffect(() => {\r\n reset(supplier)\r\n }, [supplier])\r\n return (\r\n
\r\n
\r\n \r\n \r\n

{Localization.getString('Basic Details')}

\r\n \r\n
\r\n \r\n \r\n ('code')}\r\n error={errors.code ? errors.code.message : ''}\r\n />\r\n ('name')}\r\n error={errors.name ? errors.name.message : ''}\r\n />\r\n ('taxRegistrationNumber')}\r\n error={errors.taxRegistrationNumber ? errors.taxRegistrationNumber.message : ''}\r\n />\r\n ('tradeLicenseNumber')}\r\n error={errors.tradeLicenseNumber ? errors.tradeLicenseNumber.message : ''}\r\n />\r\n \r\n \r\n ('countryId')}\r\n render={({field}) =>(\r\n ('countryId')}\r\n options={countriesOptions}\r\n subLabel={Localization.getString(\r\n 'Select the country where you provide services. Note: only 1 country per profile',\r\n )}\r\n onChange={([e]: any) => {\r\n return (e as SelectOptionModel).value\r\n }}\r\n />\r\n )\r\n }\r\n defaultValue={supplier?.countryId}\r\n control={control}\r\n />\r\n ('address')}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n

{Localization.getString('Payment Details')}

\r\n \r\n
\r\n \r\n \r\n ('paymentDetails')}.${nameof(\r\n 'accountNumber',\r\n )}`}\r\n />\r\n ('paymentDetails')}.${nameof(\r\n 'ibanNumber',\r\n )}`}\r\n />\r\n ('paymentDetails')}.${nameof(\r\n 'swiftCode',\r\n )}`}\r\n />\r\n \r\n \r\n ('paymentDetails')}.${nameof('bankName')}`}\r\n />\r\n ('paymentDetails')}.${nameof(\r\n 'bankBranchAddress',\r\n )}`}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n

{Localization.getString('Payments')}

\r\n \r\n \r\n

{Localization.getString('Settlement Period Info')}

\r\n
\r\n \r\n \r\n

{Localization.getString('Currency Info')}

\r\n
\r\n \r\n \r\n

{Localization.getString('Payment Method Info')}

\r\n
\r\n \r\n \r\n

{Localization.getString('Reports Info')}

\r\n
\r\n
\r\n

{Localization.getString('I acknowledge')}

\r\n {/* {supplier?.isAcknowledged ? \"\"} */}\r\n \r\n
\r\n {Localization.getString('Save')}\r\n
\r\n
\r\n )\r\n}\r\nexport default AdminCoreInfo\r\n","import * as React from 'react'\r\nimport { actionCreators as countriesActions } from './../store/Countries'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from './../store/index'\r\nexport const useCountriesOptions = () => {\r\n const dispatch = useDispatch()\r\n const countriesOptions = useSelector((state: ApplicationState) => state.countries.countriesOptions)\r\n React.useEffect(() => {\r\n if (countriesOptions.length == 0) {\r\n dispatch(countriesActions.requestCountriesOptions())\r\n }\r\n }, [])\r\n return countriesOptions\r\n}\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport { useForm } from 'react-hook-form'\r\nimport { Row, Col, TextFormField } from 'traveldesk-ui'\r\nimport { nameof } from 'traveldesk-ui'\r\nimport { Supplier } from '../../models/Supplier'\r\nimport { SupportContacts } from './../../models/Supplier'\r\nimport { Buttons } from 'traveldesk-ui'\r\nimport { actionCreators as supplierActions } from './../../store/Supplier'\r\nimport { useSupplier } from './../../effects/useSupplier'\r\n\r\ninterface Props extends RouteComponentProps<{ tab: string }> {}\r\nconst AdminContacts = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const supplier = useSupplier()\r\n const { reset, register, handleSubmit } = useForm({ defaultValues: supplier })\r\n const onSubmit = (data: any) => {\r\n dispatch(supplierActions.updateSupplier(supplier, data))\r\n }\r\n React.useEffect(() => {\r\n reset(supplier)\r\n }, [supplier])\r\n return (\r\n
\r\n
\r\n \r\n \r\n

{Localization.getString('Contacts')}

\r\n

{Localization.getString('Contacts Notes')}

\r\n
\r\n

{Localization.getString('Customer Support')}

\r\n

\r\n {Localization.getString(\r\n 'These are the direct contacts which will be given to the customer once the booking is complete',\r\n )}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{Localization.getString('Description')}{Localization.getString('Man Name')}{Localization.getString('Phone number')}{Localization.getString('Email')}
{Localization.getString('Primary Support Line')}\r\n ('customerSupport')}.${nameof(\r\n 'primaryName',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'primaryPhone',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'primaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('Secondary Support Line')}\r\n ('customerSupport')}.${nameof(\r\n 'secondaryName',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'secondaryPhone',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'secondaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('After hours or emergency line')}\r\n ('customerSupport')}.${nameof(\r\n 'emergencyName',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'emergencyPhone',\r\n )}`}\r\n />\r\n \r\n ('customerSupport')}.${nameof(\r\n 'emergencyEmail',\r\n )}`}\r\n />\r\n
\r\n
\r\n

{Localization.getString('Reservations/Operations Support')}

\r\n

{Localization.getString('Reservations Support Info')}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{Localization.getString('Description')}{Localization.getString('Phone number')}{Localization.getString('Email')}
{Localization.getString('Primary Support Line')}\r\n ('operationsSupport')}.${nameof(\r\n 'primaryPhone',\r\n )}`}\r\n />\r\n \r\n ('operationsSupport')}.${nameof(\r\n 'primaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('Secondary Support Line')}\r\n ('operationsSupport')}.${nameof(\r\n 'secondaryPhone',\r\n )}`}\r\n />\r\n \r\n ('operationsSupport')}.${nameof(\r\n 'secondaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('After hours or emergency line')}\r\n ('operationsSupport')}.${nameof(\r\n 'emergencyPhone',\r\n )}`}\r\n />\r\n \r\n ('operationsSupport')}.${nameof(\r\n 'emergencyEmail',\r\n )}`}\r\n />\r\n
\r\n
\r\n

{Localization.getString('Account Department')}

\r\n

\r\n {Localization.getString(\r\n 'These contacts will be contacted for any enquiries regarding accounting related matters',\r\n )}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{Localization.getString('Description')}{Localization.getString('Phone number')}{Localization.getString('Email')}
{Localization.getString('Primary Support Line')}\r\n ('accountsDepartment')}.${nameof(\r\n 'primaryPhone',\r\n )}`}\r\n />\r\n \r\n ('accountsDepartment')}.${nameof(\r\n 'primaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('Secondary Support Line')}\r\n ('accountsDepartment')}.${nameof(\r\n 'secondaryPhone',\r\n )}`}\r\n />\r\n \r\n ('accountsDepartment')}.${nameof(\r\n 'secondaryEmail',\r\n )}`}\r\n />\r\n
{Localization.getString('After hours or emergency line')}\r\n ('accountsDepartment')}.${nameof(\r\n 'emergencyPhone',\r\n )}`}\r\n />\r\n \r\n ('accountsDepartment')}.${nameof(\r\n 'emergencyEmail',\r\n )}`}\r\n />\r\n
\r\n \r\n
\r\n {Localization.getString('Save')}\r\n
\r\n
\r\n )\r\n}\r\nexport default AdminContacts\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\ninterface Props extends RouteComponentProps<{ tab: string }> {}\r\nconst AdminContracting = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return (\r\n
\r\n

Contracting

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht, which has a convenient cabin\r\n with a bathroom, seating area in the front and the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n )\r\n}\r\nexport default AdminContracting\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\ninterface Props extends RouteComponentProps<{ tab: string }> {}\r\nconst AdminStaff = (props: Props) => {\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n return (\r\n
\r\n

Admin Staff

\r\n

\r\n Our experienced captain awaits you on board of a comfortable motor yacht, which has a convenient cabin\r\n with a bathroom, seating area in the front and the back of the boat.Cruising time- about 2 hours\r\n

\r\n
\r\n )\r\n}\r\nexport default AdminStaff\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport { useForm, Controller } from 'react-hook-form'\r\nimport { useSupplier } from '../../effects/useSupplier'\r\nimport { actionCreators as supplierActions } from './../../store/Supplier'\r\nimport { nameof } from 'traveldesk-ui'\r\n\r\nimport { Supplier, SupplierDefaultSettings } from '../../models/Supplier'\r\nimport Cancellations from '../TourForm/Cancellations'\r\nimport CancellationPolicy from './../../models/CancellationPolicy'\r\nimport { Buttons, Row, Col, WysiwygFieldController, WysiwygFormField } from 'traveldesk-ui'\r\ninterface Props extends RouteComponentProps<{ tab: string }> {}\r\nconst AdminDefaultSettings = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const supplier = useSupplier()\r\n const [cancellations, setCancellations] = React.useState(supplier?.cancellationPolicy || [])\r\n const { reset, register, handleSubmit, control } = useForm({ defaultValues: supplier })\r\n const onSubmit = (data: any) => {\r\n data.cancellationPolicy = cancellations\r\n dispatch(supplierActions.updateSupplier(supplier, data))\r\n }\r\n React.useEffect(() => {\r\n reset(supplier)\r\n setCancellations(supplier?.cancellationPolicy ?? [])\r\n }, [supplier])\r\n const onChangeCancellationPolicy = (cancellation: CancellationPolicy[]) => {\r\n setCancellations(cancellation)\r\n }\r\n return (\r\n
\r\n

{Localization.getString('Default Settings')}

\r\n

\r\n {Localization.getString(\r\n 'The following settings will be used by default for the following fields in the configuration of your inventory',\r\n )}\r\n

\r\n
\r\n \r\n \r\n \r\n ('defaultSettings')}.${nameof(\r\n 'termsAndConditions',\r\n )}`}\r\n control={control}\r\n />\r\n ('defaultSettings')}.${nameof('faq')}`}\r\n control={control}\r\n />\r\n \r\n \r\n ('defaultSettings')}.${nameof(\r\n 'notesToClientPostBooking',\r\n )}`}\r\n control={control}\r\n />\r\n \r\n \r\n {Localization.getString('Save')}\r\n
\r\n
\r\n )\r\n}\r\nexport default AdminDefaultSettings\r\n","import { GenericFilterModel } from 'traveldesk-ui'\r\n\r\nexport default class ArrivalsDetailsFilter extends GenericFilterModel {\r\n constructor() {\r\n super()\r\n this.sortField = 'groupId'\r\n this.sortType = 'ASC'\r\n }\r\n inHouse: boolean = true\r\n}\r\n","import * as React from 'react'\r\nimport {\r\n DataTable,\r\n DataTableColumnModel,\r\n FilterType,\r\n DataTableModel,\r\n DataTableModelCustomAction,\r\n InputType,\r\n} from 'traveldesk-ui'\r\nimport { PInTableList, SelectOptionModel, fromNumber, CheckBox } from 'traveldesk-ui'\r\nimport { useLanguagesManageTable } from '../../effects/useLanguages'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport ArrivalsDetailsFilter from './ArrivalsFilterModel'\r\nimport ArrivalGroupInfoModel from './ArrivalGroupInfoModel'\r\nimport ArrivalModel from './ArrivalModel'\r\nimport * as ArrivalsState from '../../store/Arrivals'\r\nimport Hotel from '../../models/Hotel'\r\nimport { Link, RouteComponentProps } from 'react-router-dom'\r\ntype Props = RouteComponentProps<{ groupId?: string }>\r\nconst ArrivalsListPage = (props: Props) => {\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n const languages = useLanguagesManageTable()\r\n const arrivals = useSelector((state: ApplicationState) => state.arrivals)\r\n const [filter, setFilter] = React.useState(new ArrivalsDetailsFilter())\r\n React.useEffect(() => {\r\n setFiltersOptions()\r\n }, [arrivals])\r\n const setFiltersOptions = () => { }\r\n React.useEffect(() => {\r\n if (props.match.params.groupId) {\r\n filter.SetFilter('groupId', props.match.params.groupId)\r\n }\r\n }, [props.match.params.groupId])\r\n const initDataTable = (\r\n filter: ArrivalsDetailsFilter,\r\n salesOptions: SelectOptionModel[],\r\n hotelsHash: Map,\r\n hotels: Hotel[],\r\n ) => {\r\n const hotelsOptions = hotels.map((x) => ({ value: x.id.toString(), label: x.name }))\r\n const columns = [\r\n new DataTableColumnModel({\r\n displayName: 'Status',\r\n fieldName: 'status',\r\n filterValue: filter.GetMultiselectFilterValue('status'),\r\n customCellStyleFunction: (obj: ArrivalModel) =>\r\n ArrivalGroupInfoModel.StatusStyle(\r\n obj.Status,\r\n obj.CommunicationStatus,\r\n obj.isDeleted,\r\n obj.groupInfo?.numberOfBookings ?? 0,\r\n ),\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: ArrivalGroupInfoModel.GetStatusOptionsFilter,\r\n customExcelRenderer: (obj: ArrivalModel) =>\r\n ArrivalGroupInfoModel.StatusDescription(\r\n obj.Status,\r\n obj.CommunicationStatus,\r\n obj.isDeleted,\r\n obj.groupInfo ? obj.groupInfo.numberOfBookings : 0,\r\n ),\r\n customRenderer: (obj: ArrivalModel) => {\r\n const numberOfBookings = obj.groupInfo?.numberOfBookings ?? 0\r\n return !obj.isDeleted && numberOfBookings > 0 ? (\r\n {`${numberOfBookings} Booking${numberOfBookings > 1 ? 's' : ''\r\n }`}\r\n ) : (\r\n ArrivalGroupInfoModel.StatusDescription(\r\n obj.Status,\r\n obj.CommunicationStatus,\r\n obj.isDeleted,\r\n obj.groupInfo ? obj.groupInfo.numberOfBookings : 0,\r\n )\r\n )\r\n },\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Sales',\r\n fieldName: 'staffId',\r\n filterValue: filter.GetMultiselectFilterValue('staffId'),\r\n filterType: FilterType.MULTISELECT,\r\n filterOptions: salesOptions,\r\n // customFilterFunc: (filterValueParam: string[], data: ArrivalModel[]) => {\r\n // const filterValue = filterValueParam.map((x) => parseInt(x))\r\n // if (filterValue.length) {\r\n // const showlWOutM = filterValue.indexOf(0) >= 0\r\n // data = data.filter(\r\n // (x) =>\r\n // x.sales.some((s) => filterValue.indexOf(s.id) >= 0) ||\r\n // (showlWOutM && x.sales.length == 0),\r\n // )\r\n // }\r\n // return data\r\n // },\r\n customExcelRenderer: (obj: ArrivalModel) => obj.meetings.map((x) => x.staffName).join(', '),\r\n customRenderer: (obj: ArrivalModel) =>\r\n obj.meetings ? obj.meetings.map((x) => {x.staffName}) : null,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: \"Meeting Date\",\r\n fieldName: \"meetingDate\",\r\n filterValue: filter.GetDateRangeFilterValue('meetingDate'),\r\n filterType: FilterType.DATERANGE,\r\n customExcelRenderer: (obj: ArrivalModel) => obj.meetings.map((x) => x.dateTimeDisplay).join(', '),\r\n customRenderer: (obj: ArrivalModel) =>\r\n obj.meetings ? obj.meetings.map((x) => {x.dateTimeDisplay}) : null,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'GroupId',\r\n fieldName: 'groupId',\r\n sortable: true,\r\n // sortFunc: numberSortFunc,\r\n filterValue: filter.GetTextFilterValue('groupId'),\r\n filterType: FilterType.TEXT,\r\n width: 70,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Hotel',\r\n width: 150,\r\n fieldName: 'hotelName',\r\n sortable: false,\r\n filterFieldName: 'tdHotelId',\r\n filterOptions: hotelsOptions,\r\n filterValue: filter.GetMultiselectFilterValue('tdHotelId'),\r\n filterType: FilterType.MULTISELECT,\r\n customExcelRenderer: (obj: ArrivalModel) =>\r\n obj.tdHotelId\r\n ? hotelsHash.get(obj.tdHotelId)?.name ?? ''\r\n : obj.hotelId == '9834f525-b87a-455d-96a5-bfef0ddaf25a'\r\n ? 'No Hotel'\r\n : obj.hotelId,\r\n customRenderer: (obj: ArrivalModel) => {\r\n return obj.tdHotelId ? (\r\n <>{hotelsHash.get(obj.tdHotelId)?.name ?? ''}\r\n ) : (\r\n \r\n {obj.hotelId == '9834f525-b87a-455d-96a5-bfef0ddaf25a' ? 'No Hotel' : obj.hotelId}\r\n \r\n )\r\n },\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Tourist Name',\r\n fieldName: 'touristName',\r\n sortable: true,\r\n width: 100,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('touristName'),\r\n customExcelRenderer: (obj: ArrivalModel) => obj.touristName,\r\n // customRenderer: (obj: ArrivalModel) => {\r\n // const toolTip = this.getTouristToolTip(obj)\r\n // return toolTip ? (\r\n // {obj.touristName}\r\n // ) : (\r\n // {obj.touristName}\r\n // )\r\n // },\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Phone',\r\n fieldName: 'PhoneNumbers',\r\n isEditable: true,\r\n width: 80,\r\n editType: InputType.Text,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('PhoneNumbers'),\r\n // customFilterFunc: (value, data) => {\r\n // return value && value.length > 0\r\n // ? data.filter((x) => x.GroupInfo && x.GroupInfo.PhoneNumbers.indexOf(x) >= 0)\r\n // : data\r\n // },\r\n // customExcelRenderer: (obj: ArrivalModel) => obj.RenderPhones(),\r\n // customRenderer: (obj: ArrivalModel) => obj.RenderPhones(),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Room #',\r\n width: 60,\r\n fieldName: 'RoomNumber',\r\n isEditable: true,\r\n editType: InputType.Text,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('RoomNumber'),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Age',\r\n fieldName: 'Age',\r\n width: 100,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Country',\r\n fieldName: 'touristCountry',\r\n sortable: true,\r\n // filterOptions: countriesOptions,\r\n filterValue: filter.GetTextFilterValue('touristCountry'),\r\n width: 70,\r\n filterType: FilterType.TEXT,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agency',\r\n fieldName: 'tdAgencyName',\r\n // filterOptions: agenciesOptions,\r\n // filterType: FilterType.MULTISELECT,\r\n // filterValue: filter.GetMultiselectFilterValue('TdAgencyId'),\r\n sortable: false,\r\n width: 130,\r\n customExcelRenderer: (obj: ArrivalModel) => obj.tdAgencyName,\r\n customRenderer: (obj: ArrivalModel) => {\r\n return {obj.tdAgencyName}\r\n },\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Arrival Date',\r\n fieldName: 'arrivalDate',\r\n // sortFunc: momentSortFunc,\r\n sortable: true,\r\n width: 80,\r\n filterType: FilterType.DATERANGE,\r\n filterValue: filter.GetDateRangeFilterValue('arrivalDate'),\r\n // onFilterValueChanged: isDateRanged ? this.onArrivalFilterDateChanged : undefined,\r\n // customRenderer: (obj: ArrivalModel) => obj.arrivalDate.format(dateFormatNoTime),\r\n // customExcelRenderer: (obj: ArrivalModel) => obj.arrivalDate.format(dateFormatNoTime),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Arrival Time',\r\n fieldName: 'arrivalTime',\r\n sortable: true,\r\n // sortFunc: numberSortFunc,\r\n // filterType: !isDateRanged ? FilterType.MULTISELECT : undefined,\r\n // filterOptions: options.arrivalTimes.sort(numberSortFunc('ASC', 'value')),\r\n width: 80,\r\n customRenderer: (obj: ArrivalModel) => fromNumber(obj.arrivalTime),\r\n customExcelRenderer: (obj: ArrivalModel) => fromNumber(obj.arrivalTime),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Notes',\r\n fieldName: 'Notes',\r\n width: 150,\r\n isEditable: true,\r\n editType: InputType.Text,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ar. TRMNL',\r\n fieldName: 'arrivalTerminal',\r\n filterType: FilterType.TEXT,\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterValue: filter.GetTextFilterValue('ArrivalTerminal'),\r\n // filterOptions: arrivalsTerminalsOptions,\r\n width: 80,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ar. Flight',\r\n fieldName: 'arrivalFlight',\r\n filterType: FilterType.TEXT,\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterValue: filter.GetTextFilterValue('arrivalFlight'),\r\n // filterOptions: arrivalsFlightsOptions,\r\n width: 80,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Ar. Transport',\r\n fieldName: 'arrivalTransport',\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n // filterValue: filter.GetTextFilterValue('ArrivalTransport'),\r\n // filterOptions: arrivalsTransportsOptions,\r\n width: 80,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Room Type',\r\n fieldName: 'roomType',\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('roomType'),\r\n // filterOptions: roomTypesOptions,\r\n width: 100,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Acc Type',\r\n fieldName: 'accType',\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('accType'),\r\n // filterOptions: accTypesOptions,\r\n width: 120,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Meal Type',\r\n fieldName: 'mealType',\r\n filterType: FilterType.TEXT,\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterValue: filter.GetTextFilterValue('MealType'),\r\n // filterOptions: mealTypesOptions,\r\n width: 60,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Dep. Date',\r\n fieldName: 'departureDate',\r\n sortable: true,\r\n // sortFunc: dateMomentSortFunc,\r\n width: 80,\r\n // filterValue: isDateRanged && filter && filter.DepartureDate && filter.DepartureDate ? filter.DepartureDate : undefined,\r\n // onFilterValueChanged: isDateRanged ? this.onDepartureFilterDateChanged: undefined,\r\n filterType: FilterType.DATERANGE,\r\n filterValue: filter.GetDateRangeFilterValue('departureDate'),\r\n // customRenderer: (obj: ArrivalModel) => obj.departureDate.format(dateFormatNoTime),\r\n // customExcelRenderer: (obj: ArrivalModel) => obj.departureDate.format(dateFormatNoTime),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Dep. Time',\r\n fieldName: 'departureTime',\r\n sortable: true,\r\n // sortFunc: numberSortFunc,\r\n width: 80,\r\n // filterType: isDateRanged ? undefined : FilterType.MULTISELECT,\r\n // filterOptions: options.departureTimes.sort(numberSortFunc('ASC', 'value')),\r\n // customRenderer: (obj: ArrivalModel) => fromNumber(obj.DepartureTime),\r\n // customExcelRenderer: (obj: ArrivalModel) => fromNumber(obj.DepartureTime),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Dep. Flight',\r\n fieldName: 'departureFlight',\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('departureFlight'),\r\n // filterOptions: departureFlightsOptions,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Dep. Terminal',\r\n fieldName: 'departureTerminal',\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterValue: filter.GetTextFilterValue('DepartureTerminal'),\r\n // filterOptions: departureTerminalsOptions,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Dep. Transport',\r\n fieldName: 'departureTransport',\r\n // filterType: isDateRanged ? FilterType.TEXT : FilterType.MULTISELECT,\r\n filterValue: filter.GetTextFilterValue('DepartureTransport'),\r\n // filterOptions: departureTransportsOptions,\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Pick Up Time',\r\n fieldName: 'PickUpTimeDescr',\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Hotel Conf Number',\r\n fieldName: 'hotelConfNumber',\r\n width: 100,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('HotelConfNumber'),\r\n }),\r\n new DataTableColumnModel({\r\n displayName: 'Agent Conf Number',\r\n fieldName: 'agentConfNumber',\r\n width: 100,\r\n filterType: FilterType.TEXT,\r\n filterValue: filter.GetTextFilterValue('AgentConfNumber'),\r\n }),\r\n ]\r\n return new DataTableModel({\r\n columns,\r\n name: 'Arrivals',\r\n fileName: 'arrivals.xlsx',\r\n customActions: [\r\n new DataTableModelCustomAction(\r\n () => { },\r\n () => (\r\n \r\n ),\r\n ),\r\n ],\r\n })\r\n }\r\n const onInHouseFilterChanged = () => {\r\n setFilter(\r\n Object.assign(new ArrivalsDetailsFilter(), filter, {\r\n inHouse: !filter.inHouse,\r\n }),\r\n )\r\n }\r\n React.useEffect(() => {\r\n getArrivals()\r\n }, [filter])\r\n const onRefresh = () => {\r\n getArrivals()\r\n }\r\n const dispatch = useDispatch()\r\n const getSales = async () => {\r\n dispatch(ArrivalsState.actionCreators.requestSales())\r\n }\r\n const getHotels = async () => {\r\n dispatch(ArrivalsState.actionCreators.requestHotels())\r\n }\r\n const getArrivals = async () => {\r\n dispatch(ArrivalsState.actionCreators.requestArrivals(filter))\r\n }\r\n React.useEffect(() => {\r\n getHotels()\r\n getSales()\r\n // getArrivals()\r\n }, [])\r\n const onEdit = (prev: ArrivalModel, next: ArrivalModel) => {\r\n if (next.groupInfo) {\r\n let gi = next.groupInfo\r\n dispatch(ArrivalsState.actionCreators.saveGroupInfo(gi))\r\n }\r\n }\r\n const onPageChange = (page: number) => {\r\n setFilter(Object.assign(new ArrivalsDetailsFilter(), filter, { page }))\r\n }\r\n const onFilterValueChanged = (fieldName: string, value: any) => {\r\n filter.SetFilter(fieldName, value)\r\n setFilter(Object.assign(new ArrivalsDetailsFilter(), filter))\r\n }\r\n const onSortChanged = (sortField: string, sortType: string) => {\r\n setFilter(\r\n Object.assign(new ArrivalsDetailsFilter(), filter, {\r\n sortField,\r\n sortType,\r\n }),\r\n )\r\n }\r\n const onClearFilter = () => {\r\n setFilter(new ArrivalsDetailsFilter())\r\n }\r\n const dataTableModel = React.useMemo(() => {\r\n const salesOptions = arrivals.sales\r\n .map((s) => ({ value: s.id, label: s.name }))\r\n .sort((a, b) => (a.label > b.label ? 1 : -1))\r\n return initDataTable(filter, salesOptions, arrivals.hotelsHash, arrivals.hotels)\r\n }, [arrivals.sales, arrivals.hotels, filter])\r\n return (\r\n \r\n )\r\n}\r\nexport default ArrivalsListPage\r\n","import * as React from 'react'\r\nimport { Link, Redirect } from 'react-router-dom'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n// import { actionCreators as languagesActions } from '../store/Languages'\r\nimport { ApplicationState } from '../store'\r\nimport { Container, AuthStore } from 'traveldesk-ui'\r\nconst LoginPage = () => {\r\n const { register, handleSubmit, formState:{errors}, control, getValues, setValue, reset } = useForm()\r\n // const languages = useSelector((state: ApplicationState) => state.languages.languages)\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n const dispatch = useDispatch()\r\n const onSubmit = (data: any) => {\r\n dispatch(AuthStore.actionCreators.signIn(data))\r\n }\r\n return auth.isAuthorized ? (\r\n \r\n ) : (\r\n \r\n

{Localization.getString('Sign In')}

\r\n
\r\n
\r\n {errors.email && }\r\n {auth.signInError && }\r\n \r\n \r\n {errors.password && }\r\n \r\n \r\n \r\n \r\n {Localization.getString('Reset password')}\r\n
\r\n
\r\n )\r\n}\r\nexport default LoginPage\r\n","import * as React from 'react'\r\nimport { Redirect } from 'react-router-dom'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\n// import { actionCreators as languagesActions } from '../store/Languages'\r\nimport { ApplicationState } from '../store'\r\nimport { AuthStore } from 'traveldesk-ui'\r\nimport Loading from '../components/Loading'\r\nconst LogoutPage = () => {\r\n const auth = useSelector((state: ApplicationState) => state.auth)\r\n const dispatch = useDispatch()\r\n React.useEffect(() => {\r\n dispatch(AuthStore.actionCreators.signOut())\r\n }, [])\r\n return auth.isAuthorized ? : \r\n}\r\nexport default LogoutPage\r\n","import * as moment from 'moment'\r\n\r\nexport default class NewBookingAgent {\r\n date?: moment.Moment = undefined\r\n arrivalId: number = 0\r\n hotelId: number = 0\r\n tourId: number = 0\r\n offerId: number = 0\r\n timeSlotId: number = 0\r\n adults: number = 1\r\n children: number = 0\r\n infants: number = 0\r\n guestName: string = ''\r\n roomNumber: string = ''\r\n paid: number = 0\r\n paidOrig: number = 0\r\n collect: number = 0\r\n collectOrig: number = 0\r\n voucherNumber: string = ''\r\n notes: string = ''\r\n phones: string = ''\r\n groupId: string = ''\r\n groupInfoId?: number = undefined\r\n startTime?: number = undefined\r\n endTime?: number = undefined\r\n validate() {\r\n const errors = new Map()\r\n if (!this.date) {\r\n errors.set('Date', 'Date is required')\r\n }\r\n if (this.offerId == 0) {\r\n errors.set('OfferId', 'Offer is required')\r\n }\r\n if (this.adults == 0) {\r\n errors.set('Adults', 'At least one adult is required')\r\n }\r\n if (!this.guestName || this.guestName.length == 0) {\r\n errors.set('GuestName', 'Guest name is required')\r\n }\r\n return errors\r\n }\r\n}\r\n","import * as React from 'react'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport {\r\n ContainerWithPadding,\r\n Grid,\r\n RowTitle,\r\n SectionTitle,\r\n Col,\r\n Row,\r\n DateFormFieldController,\r\n nameof,\r\n SelectFormFieldController,\r\n Buttons,\r\n NumberFormField,\r\n TextFormField,\r\n TextAreaField,\r\n SelectOptionModel,\r\n round,\r\n FormFieldLabel,\r\n SelectFormField,\r\n LabelFormField,\r\n DateCarousel,\r\n DateCarouselDate,\r\n NumPeopleInput,\r\n generateArrayOfN,\r\n Button,\r\n} from 'traveldesk-ui'\r\nimport { useForm, useFormState } from 'react-hook-form'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ApplicationState } from '../../store'\r\nimport { Link } from 'react-router-dom'\r\nimport NewBookingAgent from './Models/NewBookingAgent'\r\nimport { toLen } from '../../utils/stringUtils'\r\nimport * as AgencyBookingsState from '../../store/AgencyBookings'\r\nimport { LoadingStore } from 'traveldesk-ui'\r\nimport { useEffect } from 'react'\r\nimport moment from 'moment'\r\nimport { useState } from 'react'\r\nimport AgencyAreaApiService from '../../services/AgencyAreaApiService'\r\nimport TimeSlotNewBookingOptionModel from './Models/TimeSlotNewBookingOptionModel'\r\nimport OfferNewBookingModel from './Models/OfferNewBookingModel'\r\nimport OfferNewBookingOptionModel from './Models/OfferNewBookingOptionModel'\r\nimport TimeSlotNewBookingModel from './Models/TimeSlotNewBookingModel'\r\nimport OfferForm from '../OfferForm/OfferForm'\r\nimport styled from 'styled-components'\r\n// import { TimeSlotOption } from '../../models/TimeSlot'\r\n\r\nconst TdTimeSelect = styled.td`\r\n .field-wrap {\r\n margin-bottom: 0 !important;\r\n }\r\n`\r\n\r\ninterface Props extends RouteComponentProps<{}> { }\r\nconst BookingForm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const {\r\n register,\r\n handleSubmit,\r\n control,\r\n setError,\r\n setValue,\r\n watch,\r\n // formState: { errors },\r\n } = useForm({\r\n defaultValues: new NewBookingAgent() as any,\r\n })\r\n const { errors } = useFormState({\r\n control,\r\n })\r\n const hotelId = watch('hotelId')\r\n const date = watch('date')\r\n const tourId = watch('tourId')\r\n const offerId = watch('offerId')\r\n const timeSlotIdWithTime = watch('timeSlotIdWithTime')\r\n const timeSlotId = watch('timeSlotId')\r\n const col = watch('collect')\r\n const colOrig = watch('collectOrig')\r\n const adults = watch('adults')\r\n const children = watch('children')\r\n const infants = watch('infants')\r\n const arrivalId = watch('arrivalId')\r\n const collect = watch('collect')\r\n const collectOrig = watch('collectOrig')\r\n const guestName = watch('guestName')\r\n const startTime = watch('startTime')\r\n const endTime = watch('endTime')\r\n\r\n //#region Initialize effect\r\n React.useEffect(() => {\r\n if (hotels.length == 0) {\r\n dispatch(AgencyBookingsState.actionCreators.requestNewBookingHotels())\r\n }\r\n if (tours.length == 0) {\r\n dispatch(AgencyBookingsState.actionCreators.requestNewBookingTours())\r\n }\r\n }, [])\r\n //#endregion\r\n //#region Collection changed effects. Convert AED <--> USD\r\n React.useEffect(() => {\r\n if (isNaN(col)) {\r\n setValue('collect', 0)\r\n } else {\r\n setValue('collectOrig', round(col * 3.65))\r\n }\r\n }, [col])\r\n React.useEffect(() => {\r\n if (isNaN(colOrig)) {\r\n setValue('collectOrig', 0)\r\n } else {\r\n setValue('collect', round(colOrig / 3.65))\r\n }\r\n }, [colOrig])\r\n //#endregion\r\n const hotels = useSelector((state: ApplicationState) => state.agencyBookings.hotelsNewBooking)\r\n const tours = useSelector((state: ApplicationState) => state.agencyBookings.toursNewBooking)\r\n const hotelsOptions = React.useMemo(\r\n () => hotels.map((h) => ({ value: h.id, label: `${h.name} (${h.regionName})` })),\r\n [hotels],\r\n )\r\n const [toursOptions, setToursOptions] = React.useState([] as SelectOptionModel[])\r\n //#region Tours, Hotel or Date Changed Effect. Set Available Tours Optins\r\n React.useEffect(() => {\r\n if (!date) return\r\n const hotel = hotels.find((x) => x.id == hotelId)\r\n if (!hotel) return\r\n setToursOptions(\r\n [{ label: 'Select tour', value: 0 as any }].concat(\r\n tours\r\n .filter((x) =>\r\n x.offers.some(\r\n (o) => o.citiesIds.indexOf(hotel?.cityId) >= 0,\r\n // && (!o.timeSlots || o.timeSlots.some((ts) => !ts || ts.isOnDay(day))),\r\n ),\r\n )\r\n .map((t) => ({\r\n value: t.id,\r\n label: `${t.id}. ${t.nameInternal} (${t.nameDisplay})`,\r\n })),\r\n ),\r\n )\r\n }, [tours, hotelId, date])\r\n //#endregion\r\n //#region Available tOurs options changed effect. Check if tourid and it's still valie\r\n useEffect(() => {\r\n if (tourId && !toursOptions.some((t) => t.value == tourId)) {\r\n setValue('tourId', 0)\r\n }\r\n }, [toursOptions])\r\n //#endregion\r\n const [offersOptions, setOffersOptions] = useState([] as OfferNewBookingOptionModel[])\r\n const offerPrices = useSelector((state: ApplicationState) => state.agencyBookings.newBookingOfferPrices)\r\n //#region Changed tour => check if drop offer\r\n React.useEffect(() => {\r\n const tour = tours.find((x) => x.id == tourId)\r\n if (!tour) {\r\n setValue('offerId', 0)\r\n return\r\n }\r\n if (!tour.offers.some((o) => o.id == offerId)) {\r\n setValue('offerId', 0)\r\n }\r\n }, [tourId])\r\n //#endregion\r\n //#region Changed tours, tourId, date of offerprices => set available offers options\r\n React.useEffect(() => {\r\n if (!date) return\r\n const hotel = hotels.find((x) => x.id == hotelId)\r\n const tour = tours.find((x) => x.id == tourId)\r\n if (!hotel || !tour) {\r\n return\r\n }\r\n setOffersOptions(\r\n // [{ label: 'Select offer', value: 0 as number }].concat(\r\n tour.offers\r\n .filter(\r\n (x) => x.citiesIds.indexOf(hotel.cityId) >= 0 && offerPrices?.some((op) => op.offerId == x.id),\r\n // && (!x.timeSlots || x.timeSlots.some((ts) => !ts || ts.isOnDay(day))),\r\n )\r\n .map((o) => ({\r\n value: o.id,\r\n label: `${o.id}. ${o.nameInternal} (${o.nameDisplay})`,\r\n numberOfHours: o.numberOfHours,\r\n obj: o,\r\n })),\r\n // ),\r\n )\r\n }, [tours, tourId, date, offerPrices])\r\n //#endregion\r\n useEffect(() => {\r\n if (offersOptions.length == 1) {\r\n setValue('offerId', offersOptions[0].value)\r\n return\r\n }\r\n if (offerId && !offersOptions.some((o) => o.value == offerId)) {\r\n setValue('offerId', 0)\r\n }\r\n }, [offersOptions])\r\n //#region Selected Offer Memo\r\n const [offer, setOffer] = React.useState(undefined)\r\n React.useEffect(() => {\r\n if (date) {\r\n const hotel = hotels.find((x) => x.id == hotelId)\r\n const tour = tours.find((x) => x.id == tourId)\r\n if (hotel && tour) {\r\n const res = tour.offers.find((x) => x.id == offerId)\r\n setOffer(res)\r\n if (!offer?.childrenAllowed) {\r\n setValue('children', 0)\r\n }\r\n if (!offer?.infantsAllowed) {\r\n setValue('infants', 0)\r\n }\r\n }\r\n }\r\n }, [tours, tourId, date, offerId])\r\n //#endregion\r\n //#region Time slots options Memo\r\n const timeSlotsOptions = React.useMemo(() => {\r\n if (!date) return new Map()\r\n const day = date.isoWeekday()\r\n const hotel = hotels.find((x) => x.id == hotelId)\r\n const tour = tours.find((x) => x.id == tourId)\r\n if (!hotel || !tour) return new Map()\r\n return tour.offers.reduce((res: Map, offer: OfferNewBookingModel) => {\r\n const options = [\r\n {\r\n label: 'Select time',\r\n value: undefined,\r\n id: 0,\r\n startTime: undefined as number | undefined,\r\n endTime: undefined as number | undefined,\r\n obj: undefined as unknown as TimeSlotNewBookingModel,\r\n } as TimeSlotNewBookingOptionModel,\r\n ].concat(\r\n offer.timeSlots\r\n // .filter((ts) => ts && ts.isOnDay(day))\r\n .reduce((resTs, ts) => {\r\n let option = undefined as unknown as TimeSlotNewBookingOptionModel\r\n if (ts.isAnyTime) {\r\n option = {\r\n value: `${ts.id}-${ts.startTimeHour * 60 + ts.startTimeMinutes}-${ts.endTimeHour * 60 + ts.endTimeMinutes\r\n }`,\r\n label: ts.toString(),\r\n id: ts.id,\r\n startTime: ts.startTimeHour * 60 + ts.startTimeMinutes,\r\n endTime: ts.endTimeHour * 60 + ts.endTimeMinutes,\r\n obj: ts,\r\n }\r\n } else {\r\n option = {\r\n value: ts.id.toString(),\r\n id: ts.id,\r\n label: ts.toString(),\r\n startTime: ts.startTimeHour * 60 + ts.startTimeMinutes,\r\n endTime: ts.endTimeHour * 60 + ts.endTimeMinutes,\r\n obj: ts,\r\n }\r\n }\r\n return resTs.some((x) => x.startTime == option.startTime && x.endTime == option.endTime)\r\n ? resTs\r\n : resTs.concat(option)\r\n }, [] as TimeSlotNewBookingOptionModel[]),\r\n )\r\n res.set(offer.id, options)\r\n return res\r\n }, new Map())\r\n }, [tours, tourId])\r\n //#endregion\r\n\r\n //#region Calcualte more dates on date, timeslots or offers changed\r\n const moreDates = React.useMemo(() => {\r\n var selDate = moment(date).startOf('day')\r\n var daysBefore = selDate.diff(moment().startOf('d'), 'days') - 1\r\n const dates = generateArrayOfN(10).map((i) => {\r\n const r = moment(selDate).add(i - daysBefore, 'days')\r\n return r\r\n })\r\n const res = offersOptions.reduce((res, offer) => {\r\n const offerId = offer.value as number\r\n const timeSlots = timeSlotsOptions.get(offerId)\r\n const resDates = dates.map((x) => {\r\n const isOfferAvailable = offer.obj.isOnDay(x.isoWeekday())\r\n const isAvailableTimeSlots = timeSlots?.some((ts) => ts.obj && ts.obj.isOnDay(x.isoWeekday())) ?? false\r\n return {\r\n isAvailable: isAvailableTimeSlots && isOfferAvailable,\r\n date: x.toDate(),\r\n }\r\n })\r\n res.set(offerId, resDates)\r\n return res\r\n }, new Map())\r\n return res\r\n }, [date, timeSlotsOptions, offersOptions])\r\n //#endregion\r\n //#region Time Slot Changed Effect\r\n useEffect(() => {\r\n const tso = timeSlotsOptions.get(offerId)\r\n const ts = tso?.find((x) => x.value == timeSlotIdWithTime)\r\n setValue('timeSlotId', ts?.id)\r\n setValue('startTime', ts?.startTime)\r\n setValue('endTime', ts?.endTime)\r\n }, [timeSlotIdWithTime])\r\n //#endregion\r\n //#region Tour Id or Date changeed effect. Request offers prices\r\n React.useEffect(() => {\r\n dispatch(AgencyBookingsState.actionCreators.requestNewBookingOfferPrices(tourId, date))\r\n }, [tourId, date])\r\n //#endregion\r\n //#region Hoteld Id or Date changed effect. Request arrivals\r\n React.useEffect(() => {\r\n dispatch(AgencyBookingsState.actionCreators.requestNewBookingArrivals(hotelId, date))\r\n }, [hotelId, date])\r\n //#endregion\r\n const arrivals = useSelector((state: ApplicationState) => state.agencyBookings.newBookingArrivals)\r\n const [selectedTimeSlots, setSelectedTimeSlots] = React.useState({})\r\n\r\n //#region Arrivals Options Memo\r\n const arrivalsOptions = React.useMemo(() => {\r\n return arrivals\r\n .sort((a, b) => (a.name > b.name ? 1 : -1))\r\n .map((x) => ({\r\n value: x.id,\r\n groupId: x.groupId,\r\n arrivalId: x.id,\r\n groupInfoId: x.groupInfoId,\r\n label: `${x.name} (${x.groupId})`,\r\n paxId: x.paxId,\r\n phones: x.phoneNumbers,\r\n }))\r\n }, [arrivals])\r\n //#endregion\r\n\r\n const showAll = offer && (!offer.timeSlots || offer.timeSlots.length == 0 || timeSlotId)\r\n const disabled = !showAll || !guestName\r\n const onSubmit = (data: any) => {\r\n // if(!data.guestName){\r\n // setError('guestName', new \"Guest name is required\");\r\n // return\r\n // }\r\n data.startTime = data.startTime || undefined\r\n data.endTime = data.endTime || undefined\r\n dispatch(AgencyBookingsState.actionCreators.addBooking(data))\r\n }\r\n const onClearGuest = () => {\r\n setValue('guestName', '')\r\n setValue('arrivalId', undefined)\r\n setValue('groupId', undefined)\r\n setValue('phones', '')\r\n setValue('roomNumber', '')\r\n setValue('groupInfoId', null)\r\n }\r\n const getGroupInfo = async (groupInfoId: number, hotelId: number) => {\r\n dispatch(LoadingStore.actionCreators.incrementLoading())\r\n var fetchTask = await AgencyAreaApiService.getNewBookingGroupInfo(groupInfoId, hotelId, dispatch)\r\n if (fetchTask.IsOk && fetchTask.Content) {\r\n setValue('roomNumber', fetchTask.Content.roomNumber)\r\n setValue('phones', fetchTask.Content.phoneNumbers)\r\n }\r\n dispatch(LoadingStore.actionCreators.decrementLoading())\r\n }\r\n const onChangeGuest = async (e: any) => {\r\n setValue('guestName', e.label)\r\n setValue('arrivalId', e.arrivalId)\r\n setValue('groupId', e.groupId)\r\n setValue('groupInfoId', e.groupInfoId)\r\n if (e.groupInfoId) {\r\n await getGroupInfo(e.groupInfoId, hotelId)\r\n }\r\n }\r\n const onChangeTimeSlot = (oid: number) => (option: SelectOptionModel) => {\r\n selectedTimeSlots[oid] = option.value\r\n setSelectedTimeSlots(Object.assign({}, selectedTimeSlots))\r\n if (offerId == oid) {\r\n setValue('timeSlotIdWithTime', option.value)\r\n }\r\n }\r\n const onSelectDateFromCarousel = (date: Date) => {\r\n setValue('date', moment(date))\r\n }\r\n //#region Offer Changed\r\n useEffect(() => {\r\n if (offerId) {\r\n const tso = timeSlotsOptions.get(offerId)\r\n if (tso && tso.length == 2) {\r\n setValue('timeSlotId', tso[1].id)\r\n setValue('timeSlotIdWithTime', tso[1].value)\r\n return\r\n }\r\n if (timeSlotIdWithTime && (!tso || !tso.some((ts) => ts.value == timeSlotIdWithTime))) {\r\n const selTs = selectedTimeSlots[offerId]\r\n if (selTs) {\r\n const ts = tso?.find((x) => x.value == selTs)\r\n if (ts) {\r\n setValue('timeSlotIdWithTime', ts.value)\r\n }\r\n } else {\r\n setValue('timeSlotIdWithTime', '')\r\n }\r\n } else {\r\n const selTs = selectedTimeSlots[offerId]\r\n if (selTs) {\r\n const ts = tso?.find((x) => x.value == selTs)\r\n if (ts) {\r\n setValue('timeSlotIdWithTime', ts.value)\r\n }\r\n } else {\r\n if (timeSlotIdWithTime) {\r\n selectedTimeSlots[offerId] = timeSlotIdWithTime\r\n setSelectedTimeSlots(Object.assign({}, selectedTimeSlots))\r\n }\r\n }\r\n }\r\n }\r\n }, [timeSlotsOptions, offerId])\r\n //#endregion\r\n const onSelectOffer = (id: number) => {\r\n setValue('offerId', id)\r\n }\r\n const prices = React.useMemo(() => {\r\n const offerPrice = offerPrices?.find((x) => x.offerId == offerId)\r\n const totalNetPriceUsd = offerPrice?.totalNetPriceUsd(adults, children) ?? 0\r\n const totalNetPrice = offerPrice?.totalNetPrice(adults, children) ?? 0\r\n const publishRateUsd = offerPrice?.totalPublishRateUsd(adults, children) ?? 0\r\n const publishRate = offerPrice?.totalPublishRate(adults, children) ?? 0\r\n return {\r\n offerPrice,\r\n totalNetPriceUsd: round(totalNetPriceUsd) as number,\r\n totalNetPrice: round(totalNetPrice) as number,\r\n publishRateUsd: round(publishRateUsd),\r\n publishRate: round(publishRate),\r\n }\r\n }, [adults, children, offerId, offerPrices])\r\n const payable = React.useMemo(() => {\r\n return {\r\n payableUsd: round(prices.totalNetPriceUsd - collect),\r\n payable: round(prices.totalNetPrice - collectOrig),\r\n }\r\n }, [prices, collect])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {Localization.getString('Back to bookings')}\r\n \r\n
\r\n {/*
\r\n

{Localization.getString('Core Info')}

\r\n
\r\n
*/}\r\n

{Localization.getString('Core Info')}

\r\n
\r\n
\r\n
\r\n ('date')}\r\n label={Localization.getString('Date')}\r\n isRequired\r\n control={control}\r\n />\r\n ('hotelId')}\r\n isRequired\r\n label={Localization.getString('Hotel')}\r\n options={hotelsOptions}\r\n control={control}\r\n />\r\n {date && hotelId ? (\r\n ('tourId')}\r\n isRequired\r\n label={Localization.getString('Tour')}\r\n options={toursOptions}\r\n control={control}\r\n />\r\n ) : null}\r\n
\r\n
\r\n setValue('adults', value)}\r\n />\r\n {/* ('adults')}\r\n label={`${Localization.getString('Adults')} (12+)`}\r\n min={1}\r\n /> */}\r\n setValue('children', value)}\r\n />\r\n {/* ('children')}\r\n label={`${Localization.getString('Children')} (3-11.99)`}\r\n min={0}\r\n /> */}\r\n setValue('infants', value)}\r\n />\r\n {/* ('infants')}\r\n label={`${Localization.getString('Infants')} (0-2.99)`}\r\n min={0}\r\n /> */}\r\n {prices.offerPrice?.pricePerTripRec ? (\r\n
\r\n
\r\n
\r\n Per Trip\r\n \r\n i{' '}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {prices.offerPrice.pricePerTripRec} AED\r\n
\r\n
\r\n ) : null}\r\n {/*
\r\n
\r\n Total * Includes all taxes.\r\n
\r\n
{prices.publishRate} AED
\r\n
*/}\r\n {date && hotelId && tourId\r\n ? null\r\n : // (\r\n // ('offerId')}\r\n // disabled={offersOptions.length == 2}\r\n // isRequired\r\n // label={Localization.getString('Ticket')}\r\n // options={offersOptions}\r\n // control={control}\r\n // />\r\n // )\r\n null}\r\n
\r\n ('startTime')}\r\n />\r\n ('endTime')}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {date && hotelId && tourId ? (\r\n \r\n
\r\n

{Localization.getString('Ticket Selection')}

\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {offersOptions.map((_offer) => {\r\n const _offerId = _offer.value as number\r\n const tso = timeSlotsOptions.get(_offerId)\r\n const price = offerPrices?.find((x) => x.offerId == _offerId)\r\n const isAvailable =\r\n // _offer.obj.isOnDay(date.isoWeekday()) &&\r\n tso?.some((ts) => ts.obj && ts.obj.isOnDay(date.isoWeekday()))\r\n return (\r\n \r\n \r\n \r\n {isAvailable ? (\r\n \r\n {tso && tso.length > 0 ? (\r\n tso.length > 2 ? (\r\n // _offerId == offerId ? (\r\n \r\n ) : (\r\n // (\r\n // 'timeSlotIdWithTime',\r\n // )}\r\n // isRequired\r\n // // label={Localization.getString('Select Time')}\r\n // options={tso}\r\n // control={control}\r\n // // value={timeSlotIdWithTime}\r\n // />\r\n // ) : (\r\n // \r\n // )\r\n tso[1].label\r\n )\r\n ) : null}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n
{Localization.getString('Ticket Selection')}{Localization.getString('Date')}{Localization.getString('Time Slot')}{Localization.getString('Published Rate')}{Localization.getString('NET Payable')}{Localization.getString('Select')}
{_offer.label}\r\n {isAvailable ? (\r\n moment(date).format('DD.MM.YYYY')\r\n ) : (\r\n \r\n )}\r\n \r\n {price?.totalPublishRateUsd(adults, children)} $ /{' '}\r\n {price?.totalPublishRate(adults, children)} AED\r\n \r\n {price?.totalNetPriceUsd(adults, children)} $ /{' '}\r\n {price?.totalNetPrice(adults, children)} AED\r\n \r\n {isAvailable ? (\r\n onSelectOffer(_offerId)}\r\n iconLeft={() => (\r\n \r\n )}\r\n label={\r\n offerId == _offerId\r\n ? 'Selected Ticket'\r\n : 'Select Ticket'\r\n }\r\n />\r\n ) : null}\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n {showAll ? (\r\n <>\r\n

{Localization.getString('Guest Details')}

\r\n
\r\n
\r\n
\r\n 0}\r\n isRequired\r\n hideIfNoOptions={true}\r\n isClearable={arrivalId > 0}\r\n onClear={onClearGuest}\r\n // options={{ required: 'Guest Name is required' }}\r\n options={arrivalsOptions as SelectOptionModel[]}\r\n error={errors && errors['guestName']?.message}\r\n label={Localization.getString('Guest Name')}\r\n onInputChanged={(value: string) => {\r\n setValue('guestName', value)\r\n }}\r\n isAutoComplete\r\n onChange={onChangeGuest}\r\n value={arrivalId}\r\n // autoCompleteToken={AuthUtils.getToken}\r\n // autoCompleteEndPoint={`/api/agent/customers/autocomplete?hotelid=${hotelId}&date=${moment(\r\n // date,\r\n // ).format('YYYY-MM-DD')}`}\r\n // autoCompleteResponseHandler={(data) =>\r\n // data.map((x: any) => {\r\n // return {\r\n // value: x,\r\n // arrivalId: x.arrivalId,\r\n // groupInfoId: x.groupInfoId,\r\n // label: `${x.name} (${x.groupId})`,\r\n // paxId: x.paxId,\r\n // groupId: x.groupId,\r\n // agencyId: x.agencyId,\r\n // phones: x.phones,\r\n // }\r\n // })\r\n // }\r\n />\r\n ('phones')}\r\n label={Localization.getString('Phone number')}\r\n />\r\n ('roomNumber')}\r\n label={Localization.getString('Room number')}\r\n />\r\n
\r\n
\r\n ('notes')}\r\n label={Localization.getString('Notes')}\r\n />\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n {showAll ? (\r\n <>\r\n

{Localization.getString('Payment Details')}

\r\n
\r\n
\r\n
\r\n ('voucherNumber')}\r\n label={Localization.getString('Voucher number')}\r\n />\r\n ('collect')}\r\n label={Localization.getString('Collect, $')}\r\n min={0}\r\n step={0.01}\r\n />\r\n ('collectOrig')}\r\n label={Localization.getString('Collect, AED')}\r\n min={0}\r\n step={0.01}\r\n />\r\n
\r\n
\r\n {offerPrices ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n {Localization.getString('Save')}\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\nexport default BookingForm\r\n","import * as React from 'react'\r\nimport { useMemo } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { Link } from 'react-router-dom'\r\nimport { push } from 'react-router-redux'\r\nimport { ContainerWithPadding, Grid, SectionTitle } from 'traveldesk-ui'\r\nimport { Routes } from '../../App'\r\nimport { ApplicationState } from '../../store'\r\nimport { actionCreators as bookingActions } from '../../store/AgencyBookings'\r\ninterface Props extends RouteComponentProps<{ id: string }> {}\r\nconst BookingConfirm = (props: Props) => {\r\n const dispatch = useDispatch()\r\n const Localization = useSelector((state: ApplicationState) => state.localization.locale)\r\n const booking = useSelector((state: ApplicationState) => state.agencyBookings.bookingDetails)\r\n const [bookingId, setBookingId] = React.useState(0)\r\n React.useEffect(() => {\r\n dispatch(bookingActions.clearBookingDetails)\r\n try {\r\n const id = parseInt(props.match.params.id)\r\n dispatch(bookingActions.requestBookingDetails(id))\r\n setBookingId(id)\r\n } catch {\r\n dispatch(push(Routes.agentBookings))\r\n }\r\n }, [props.match.params])\r\n return (\r\n \r\n \r\n \r\n \r\n {Localization.getString('Back to bookings')}\r\n \r\n

\r\n {Localization.getString('Download invoice')}\r\n

\r\n

\r\n \r\n {Localization.getString('Download voucher (RUS)')}\r\n \r\n

\r\n

\r\n \r\n {Localization.getString('Download voucher (ENG)')}\r\n \r\n

\r\n
\r\n
\r\n

Pick Up Time: {booking?.pickUpTime}

\r\n
\r\n
\r\n )\r\n}\r\nexport default BookingConfirm\r\n","import * as React from 'react'\r\nconst Modulbank = () => {\r\n return
\r\n

Подтверждение принадлежности домена второго уровня. Усанова Гузель Рафаилевна

\r\n
\r\n}\r\nexport default Modulbank","import * as React from 'react'\r\nimport { Route, Switch } from 'react-router'\r\nimport Layout from './components/Layout'\r\nimport PrivateRoute from './components/AuthorizedLayout'\r\nimport Home from './components/Home' //React.lazy(() => import(/* webpackChunkName: \"home\" */ './components/Home'))\r\nimport ToursPage from './pages/Tours' // React.lazy(() => import(/* webpackChunkName: \"tours\" */ './pages/Tours'))\r\nimport TourForm from './pages/TourForm/TourForm' // React.lazy(() => import(/* webpackChunkName: \"tourForm\" */ './pages/TourForm/TourForm'))\r\nimport LogMeInPage from './pages/LogMeInPage' // React.lazy(() => import('./pages/LogMeInPage'))\r\nimport Bookings from './pages/Bookings' // React.lazy(() => import(/* webpackChunkName: \"bookings\" */ './pages/Bookings'))\r\nimport AgentBookings from './pages/Agent/Bookings' //React.lazy(() => import(/* webpackChunkName: \"agentBookings\" */ './pages/Agent/Bookings'))\r\nimport AgentCommissions from './pages/Agent/Commissions' //React.lazy(() => import(/* webpackChunkName: \"agentCommissions\" */ './pages/Agent/Commissions'))\r\nimport TestTableFullScreenPage from './pages/TestTableFullScreen'\r\nimport Controls from './pages/Controls' //React.lazy(() => import('./pages/Controls'))\r\nimport OfferForm from './pages/OfferForm/OfferForm' // React.lazy(() => import(/* webpackChunkName: \"offerForm\" */ './pages/OfferForm/OfferForm'))\r\nimport TimeSlots from './pages/TimeSlots/TimeSlots' //React.lazy(() => import(/* webpackChunkName: \"timeSlots\" */ './pages/TimeSlots/TimeSlots'))\r\nimport TimeSlotsForm from './pages/TimeSlots/TimeSlotForm' //React.lazy(() => import(/* webpackChunkName: \"timeSlotForm\" */ './pages/TimeSlots/TimeSlotForm'))\r\nimport PickUpTimes from './pages/PickUpTimes/PickUpTimes' //React.lazy(() => import(/* webpackChunkName: \"pickUpTimes\" */ './pages/PickUpTimes/PickUpTimes'))\r\nimport PickUpTimeForm from './pages/PickUpTimes/PickUpTimeForm' //React.lazy(() => import(/* webpackChunkName: \"pickUpTimeForm\" */ './pages/PickUpTimes/PickUpTimeForm'))\r\nimport AdminLayout from './pages/Admin/AdminLayout'\r\nimport { LoadingSpinner } from 'traveldesk-ui'\r\nimport ArrivalsListPage from './pages/Arrivals/ArrivalsList' //React.lazy(() => import(/* webpackChunkName: \"arrivalsList\" */ './pages/Arrivals/ArrivalsList'))\r\nimport LoginPage from './pages/Login' //React.lazy(() => import(/* webpackChunkName: \"loginPage\" */ './pages/Login'))\r\nimport LogoutPage from './pages/Logout' //React.lazy(() => import(/* webpackChunkName: \"loginPage\" */ './pages/Logout'))\r\nimport AgentBookingForm from './pages/Agent/BookingForm'\r\nimport AgentBookingConfirm from './pages/Agent/BookingConfirm' //React.lazy(() => import(/* webpackChunkName: \"bookingForm\" */ './pages/Agent/BookingForm'))\r\nimport Modulbank from './ModulBank'\r\n\r\nexport default () => {\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport const Routes = {\r\n downloadInvoice(bookingId: number) {\r\n return `/bookings/download/invoice/${bookingId}`\r\n },\r\n downloadVoucher(bookingId: number, lang: string) {\r\n return `/bookings/download/voucher/${bookingId}?lang=${lang}`\r\n },\r\n agentBookings: '/agent/bookings',\r\n agentBookingsTemplate: '/agent/bookings',\r\n}\r\n","import * as React from 'react'\r\nimport * as ReactDOM from 'react-dom'\r\nimport { Provider } from 'react-redux'\r\nimport { ConnectedRouter } from 'connected-react-router'\r\nimport { createBrowserHistory } from 'history'\r\nimport configureStore from './store/configureStore'\r\nimport App from './App'\r\nimport { actionCreators as globalActions } from './store/Global'\r\nimport { Localization, SettingsStore } from 'traveldesk-ui'\r\nimport 'dotenv/config'\r\nexport const GLOBAL_SETTINGS = {\r\n GOOGLE_MAPS_API_KEY: process.env.REACT_APP_GOOGLE_MAPS_API_KEY ?? \"\"\r\n}\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string\r\nconst history = createBrowserHistory({ basename: baseUrl })\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst store = configureStore(history)\r\nstore.dispatch(globalActions.initialize() as any)\r\nstore.dispatch(Localization.actionCreators.initialize() as any)\r\n// store.dispatch(SettingsStore.actionCreators.setDataTableExportExcelEndpoint(\"https://supplier.traveldesk.me/api/excel/export\"))\r\nhistory.listen((location, action) => {\r\n store.dispatch(globalActions.setPath(location.pathname))\r\n})\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('main'),\r\n)\r\n\r\n// registerServiceWorker()\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux'\r\nimport thunk from 'redux-thunk'\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router'\r\nimport { History } from 'history'\r\nimport { ApplicationState, reducers } from './'\r\n\r\nexport default function configureStore(history: History, initialState?: ApplicationState) {\r\n const middleware = [thunk, routerMiddleware(history)]\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n router: connectRouter(history),\r\n })\r\n\r\n const enhancers = []\r\n const windowIfDefined = typeof window === 'undefined' ? null : (window as any)\r\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__())\r\n }\r\n\r\n return createStore(rootReducer, initialState as any, compose(applyMiddleware(...middleware), ...enhancers))\r\n}\r\n"],"sourceRoot":""}