{"version":3,"sources":["i18n/index.ts","statics/tickets.ts","types/Certification.ts","types/CoreZone.ts","types/CustomerImage.ts","store/reducers/ticket.reducer.ts","store/providers/ticket.provider.tsx","statics/klima-ticket-parking.ts","config/index.ts","services/tickets/tickets.service.ts","services/lang/lang.service.ts","statics/main.ts","components/error-box/error-box.tsx","statics/validators.ts","enums/ticket.ts","services/session-storage/session-storage.ts","statics/ticket-status.ts","helpers/index.ts","services/mapper/mapper.service.ts","components/success-box/success-box.tsx","components/ticket-selection-tab/ticket-selection-tab.component.tsx","types/User.ts","services/data-mill/data-mill.service.ts","dialogs/confirm-dialog/info-dialog.tsx","components/ticket-user-tab/ticket-user-tab.tsx","components/image-crop/image-crop.tsx","components/files-drop-zone/files-drop-zone.component.tsx","components/ticket-upload-tab/ticket-upload-tab.tsx","components/route-box/route-box.tsx","components/track-stages/track-stages.tsx","types/Stage.ts","types/RouteStages.ts","components/ticket-track-tab/ticket-track-tab.tsx","components/pyment-box/payment-box.tsx","statics/icons.ts","statics/payment-types.ts","components/ticket-card-preview/ticket-card-preview.tsx","services/payment/payment.service.ts","components/ticket-payment-tab/ticket-payment-tab.tsx","components/klimaticket-box/klimaticket-box.tsx","statics/klima-tickets.ts","components/ticket-configuration-tab/ticket-configuration-tab.tsx","components/ticket-tab-content/ticket-tab-content.component.tsx","components/ticket-tabs/ticket-tabs.component.tsx","components/payment-options/payment-options.tsx","components/info-box/info-box.tsx","components/ticket-options/ticket-options.tsx","components/ticket-links/ticket-links.tsx","statics/payment-bank-info.ts","components/ticket-payment-success/ticket-payment-success.tsx","components/ticket-content/ticket-content.component.tsx","router/index.ts","pages/ticket/ticket.page.tsx","app.component.tsx","serviceWorker.ts","interceptors/auth-intercept.ts","index.tsx"],"names":["localeQuery","history","location","search","split","locale","toLowerCase","substr","i18n","use","Backend","initReactI18next","init","react","useSuspense","lng","fallbackLng","debug","interpolation","escapeValue","Klimaticket","cert1Id","cert1Required","cert2Id","cert2Required","cert3Id","cert3Required","firstOnMonth","isSemesterWorkflow","isKlimaTicket","tarifLevels","ticketCode","ticketId","ticketname","tickets","Certification","id","certificationContent","extension","error","name","this","CoreZone","czFrom","czTo","CustomerImage","imageStream","fileExtension","state","action","type","ticket","payload","klimaTicket","klimaTicketParking","klimaTickets","ticketsLoading","validFrom","activeTab","activePayment","paymentSuccess","paymentSuccessData","paymentErrorData","universities","customerImageInfo","certification1Info","certification2Info","originalUserImg","paymentTypes","paymentTypesLoaded","isExtendTicket","isTabDisabled","selectedRoute","selectedPrice","selectedCoreZone","orderNumber","sessionID","isExistingOrder","orderToken","differentInvoiceAddress","handicap","initialState","description","active","price","TicketContext","createContext","TicketProvider","children","useReducer","TicketReducer","dispatch","Provider","value","setTicket","setKlimaTicket","setKlimaTicketParking","setActiveTab","setActivePayment","setPaymentSuccess","setTickets","setKlimaTickets","setTicketValidFrom","setUniversities","setTicketsLoading","setCertification1Info","setCertification2Info","setCustomerImageInfo","setOriginalUserImg","setPaymentTypes","setPaymentTypesLoading","setIsTicketExtended","setIsTabDisabled","setPaymentSuccessData","setPaymentErrorData","setSelectedRoute","setSelectedPrice","setSelectedCoreZone","setOrderNumber","setSessionID","setIsExistingOrder","setOrderToken","setDifferentInvoiceAddress","setDisability","config","dataMillURL","allowDataMill","url","process","namespaceURL","username","WSS_USERNAME","password","WSS_PASSWORD","apiUrl","paymentGatewayURL","entityId","SEPA_entityId","SEPA_API_TOKEN","merchantId","TicketsService","soapConfig","appendMethodToURL","namespaceQualifier","envAttributes","noPrefix","timeout","initSoap","$","soap","callSOAP","data","method","SOAPAction","elementName","err","openSession","a","closeSession","getAvailableTickets","getOnlineOrderState","getErrorText","setCustomerData","setStudentData","getUniversities","checkInscription","uploadCustomerImage","uploadCertification","getStages","getPossiblePathes","setCardData","getPossiblePaymentTypes","newOrderWithStoredData","confirmOnlinepaymentData","cancelOnlinepayment","continueExistingOrder","getOrderToken","continueOrder","saveOrder","setPaymentData","getClimateTickets","wss","LangService","getCurrentLang","language","setCurrentLang","lang","changeLanguage","require","processors","parseNumbers","parseBooleans","firstCharLowerCase","appName","dateFormat","xml2JsonConfig","explicitArray","ignoreAttrs","valueProcessors","tagNameProcessors","fileTypes","maxFileSize","Intl","DateTimeFormat","resolvedOptions","timeZone","Date","getTimezoneOffset","ErrorBox","props","text","Box","className","p","TICKET","maxChar","numRegex","letterRegex","SessionStorageService","key","sessionStorage","getItem","JSON","parse","setItem","stringify","removeItem","clear","TicketStatus","status","langService","sessionStorageService","calculateAge","birthDate","ValidFrom","moment","diff","formatCurrency","NumberFormat","style","currency","format","isSessionExpired","handleSessionExpire","push","clearAll","window","reload","scrollToTabs","document","documentElement","body","animate","scrollTop","offset","top","isIosDevice","includes","navigator","platform","userAgent","MapperService","mapUserData","customerData","university","sexcode","salutation","firstname","lastname","city","customerNr","matrikelNr","ooevgNewsletter","dataTransferAccompanyingResearch","invoiceSexcode","invoiceSalutation","invoiceFirstname","invoiceLastname","invoicePostalCode","invoiceCity","invoiceAddress","invoiceCompanyName","invoiceUid","address","street","postalCode","plz","mail","email","mobilephonenr","String","phonenr","universityId","SuccessBox","useTranslation","t","TicketSelectionTabComponent","mapperService","newTicket","getData","React","useContext","ticketsService","defaultStatus","date","useState","ticketStatus","setTicketStatus","ticketStatusError","setTicketStatusError","extendTicketError","setExtendTicketError","newTicketValidationSchema","yup","required","ticketValidFromDate","typeError","newTicketForm","useFormik","initialValues","KLIMA","validationSchema","onSubmit","values","selectedTicket","filter","setData","orderStateValidationSchema","identifier","max","matches","min","orderStateForm","isValid","GetOnlineOrderState","extendTicketValidationSchema","customernr","extendTicketForm","getExtendTicketData","clearTicketData","user","countryCode","isKlimaOrYearDateInvalid","selectedValidDate","utcOffset","startOf","removeData","Number","toDate","done","textStatus","jqXHR","parseString","responseText","res","parseTicketData","fail","errorThrown","ticketRenewResponse","textContent","Array","isArray","customerImage","imageBase64","getTicketStatusError","selectedStatus","useEffect","setFieldValue","Grid","container","direction","spacing","item","xs","md","component","height","position","mb","handleSubmit","autoComplete","FormControl","RadioGroup","aria-label","onChange","event","target","map","index","FormControlLabel","control","Radio","color","label","classes","length","width","lg","utils","MomentUtils","libInstance","DatePicker","variant","inputVariant","views","SEMESTER","undefined","minDate","YEAR","maxDate","add","endOf","openTo","month","calendarOpenTo","shouldDisableDate","set","hour","minute","second","millisecond","year","autoOk","handleValidDateChange","InputProps","endAdornment","InputAdornment","IconButton","invalidDateMessage","maxDateMessage","minDateMessage","Boolean","errors","submitCount","mt","xl","Button","display","Divider","minHeight","TextField","test","inputProps","maxLength","keyboardIcon","disableFuture","Trans","i18nKey","href","marginTop","onClick","resetForm","icon","User","Invoice","DataMillService","guid","license","verifyMobilePhoneNumber","phonenumber","countrycode","formData","FormData","append","axios","post","response","verifyEmail","InfoDialog","title","handleClose","setClose","Dialog","open","onClose","aria-labelledby","DialogTitle","DialogContent","DialogContentText","DialogActions","TicketUserTab","countryCodeStored","birthDateError","postalCodeError","dataMill","privacy","setPrivacy","universityUploadConfirmation","setUniversityUploadConfirmation","telInputFocus","setTelInputFocus","customerError","setCustomerError","studentError","setStudentError","emailError","setEmailError","telError","setTelError","birthDateSemesterError","setBirthDateSemesterError","setCountryCode","saving","setSaving","modalDisabilityOpen","setModalDisabilityOpen","modalResearchOpen","setModalResearchOpen","next","handleEmailStatus","verifyMobileRes","valid","verifyEmailRes","studentPayload","uni","matriculationNumber","firstName","lastName","semester","parseInscription","inscription","isInscribed","errorDescription","age","customerInfoForm","parseClimateTickets","climateTickets","handlePostalCodeChange","fieldName","handleBirthDateChange","customerInfoValidationSchema","enableReinitialize","Object","keys","noValidate","InputLabel","Select","labelId","handleChange","IconComponent","ExpandMoreIcon","MenuItem","e","minLength","country","countryCodeEditable","onFocus","bind","onBlur","localization","de","preferredCountries","hanldeCountryCode","disabled","handleMatrikelNrChange","alignItems","left","Checkbox","checked","ml","rel","justify","textAlign","flexDirection","justifyContent","mr","CircularProgress","ImageCrop","image","onCrop","isSaving","cropperRef","useRef","cropper","setCropper","getRoundedCanvas","sourceCanvas","canvas","createElement","context","getContext","imageSmoothingEnabled","drawImage","globalCompositeOperation","beginPath","arc","Math","PI","fill","crop","cropperElement","current","croppedCanvas","getCroppedCanvas","imageSmoothingQuality","toDataURL","roundedCanvas","getCropData","imageCropCanvasData","canvasData","cropBoxData","setTimeout","setCanvasData","setCropBoxData","reset","moveDown","move","src","aspectRatio","cropBoxResizable","guides","background","getCanvasData","getCropBoxData","ref","dragMode","viewMode","autoCrop","checkOrientation","minCropBoxHeight","onInitialized","instance","flexWrap","rotate","zoom","FilesDropZone","onDrop","useCallback","acceptedFiles","onDropFiles","useDropzone","accept","multiple","maxFiles","getRootProps","isDragActive","TicketUploadTab","setImageCropCanvasData","croppedImage","setImage","setCrop","setCustomerImage","certification1","setCertification1","certification2","setCertification2","uploadError","setUploadError","droppedFiles","setdroppedFiles","inputUserImgRef","inputCertification1Ref","inputCertification2Ref","getFileExtension","validateImageType","file","newCustomerImage","size","reader","FileReader","onload","result","readAsDataURL","validateCertificateType","uploadType","certificateObj","certificate","cert","handleFileUpload","preventDefault","files","dataTransfer","resetInputs","clickUpload","element","click","upload","console","log","replace","toUpperCase","uploadExistingImageFromExistingOrder","isMissingFile","RouteBox","route","px","py","routeDescription","startZone","endZone","zoneCount","priceCardWithoutCZ","TrackStages","stage","onStageChange","stages","setStages","stageName","setValue","inputValue","setInputValue","loading","setLoading","parseStages","Autocomplete","autoHighlight","options","onInputChange","newInputValue","query","handleInputChange","getOptionLabel","option","getOptionSelected","newValue","handleOnChange","noOptionsText","loadingText","renderInput","params","Stage","stageNr","zoneNr","RouteStages","fromStage","toStage","viaStage","TicketTrackTab","coreZonesLink","routeStagesStored","routeStages","setRouteStages","possiblePathes","setPossiblePathes","possiblePathesLoading","setPossiblePathesLoading","possiblePathesLoaded","setPossiblePathesLoaded","possiblePathesError","setPossiblePathesError","submitStageForm","setSubmitStageForm","possiblePathesLoadingSilent","setPossiblePathesLoadingSilent","ticketPrices","setTicketPrices","routeError","setRouteError","isPriceHigherThanKlimaPrice","setIsPriceHigherThanKlimaPrice","stageType","routeStagesCopy","fromStageNr","toStageNr","parsePossiblePathes","priceInfo","routeDetails","pathDetails","prices","getTicketPrices","isPriceHigh","every","resetRoute","confirmRouteStages","resetCoreZone","handleUploadCertifications","cz","routeId","priceInfoId","ticketRouteForm","selectKlimaticket","ticketForm","whiteSpace","onRouteChange","isCZFromPossible","isCZToPossible","fontWeight","priceCZFrom","priceCZTo","PaymentBox","iconName","iconPrefix","minWidth","maxWidth","alt","icons","PaymentTypesData","brand","paymentType","paymentTypesToDisplayData","TicketCardPreview","selectedPayment","userStored","totalPrice","validTo","subtract","fontSize","lineHeight","fontStyle","bottom","right","maxHeight","sm","SEPA_months","PaymentService","checkouts","get","createPayment","amount","returnUrl","hostedTokenizationId","browserData","colorDepth","screen","javaEnabled","javaScriptEnabled","screenHeight","screenWidth","timezoneOffsetUtcMinutes","payoneStatus","paymentId","sepaCheckouts","iban","paymentStatus","checkoutID","paymentStatusSEPA","paymentID","TicketPaymentTab","paymentService","activePaymentMethod","setActivePaymentMethod","paymentError","setPaymentError","termsAccepted","setTermsAccepted","isPaymentSaving","setPaymentSaving","isCheckoutSaving","setCheckoutSaving","submitPaymentForm","setSubmitPaymentForm","IBAN","setIBAN","paymentTypesToDisplay","setPaymentTypesToDisplay","hostedTokenizationUrl","setHostedTokenizationUrl","tokenizerRef","isSepaPayment","setIsSepaPayment","isCreditPayment","setIsCreditPayment","isEPSPayment","setIsEPSPayment","backToPayment","back","entries","reduce","obj","paymentDataPayload","deliveryType","isOnlinePayment","vorkasse","orderTokenRes","createEPSPayment","orderNr","HostedTokenizationUrl","tokenizer","Tokenizer","hideCardholderName","initialize","amountToSend","toString","origin","paymentResult","Payment","Id","Status","MerchantAction","RedirectData","RedirectURL","Error","submitTokenization","success","message","handleSepaSubmit","payment","placeholder","margin","KlimaticketBox","zone","isSelectable","onSelect","modalInfoOpen","setModalInfoOpen","handleClickSelect","flexBasis","flexShrink","klimaTicketsData","TicketConfigurationTab","checkSessionExpire","pricesInfo","selectedPriceFromPrevOrder","selectedTicketFromPrevOrder","parkdeckWels","ticketName","arr","parking","TicketTabContentComponent","TabPanel","other","role","hidden","useMemo","a11yProps","useStyles","makeStyles","root","flexGrow","padding","TicketTabsComponent","Tabs","Tab","disableRipple","PaymentOptions","marginBottom","InfoBox","TicketOptions","TicketLinks","download","paymentBankInfo","TicketPaymentSuccess","setAmount","print","TicketContent","paymentLoading","setPaymentLoading","showTabContent","setShowTabContent","parseTickets","parseUniversities","parsePaymentTypes","ticketSelectionTab","userTab","confirmSepaPayment","ticketDataResponse","setTicketData","orderData","cardRestoreData","savedTicket","ticketcode","fromStageName","fromZoneNr","toStageName","toZoneNr","viaStageName","viaStageNr","viaZoneNr","selectedCZ","confirmOnlinePayment","paymentReference","checkPaymentStatus","paymentValue","paymentStatusRes","paymentResId","code","urlParams","URLSearchParams","appVersionElement","getElementById","innerHTML","mx","path","redirect","library","faUpload","faTicketAlt","faArrowAltCircleDown","faArrowAltCircleUp","faArrowAltCircleLeft","faArrowAltCircleRight","faTimes","faPrint","faFileImage","faFilePdf","faChartPie","faApplePay","App","theme","createMuiTheme","breakpoints","up","palette","primary","main","contrastText","secondary","divider","typography","fontFamily","overrides","MuiInput","input","border","font","boxShadow","transition","borderRadius","verticalAlign","opacity","MuiFormLabel","MuiButton","textTransform","textSecondary","textDecoration","containedPrimary","backgroundColor","ThemeProvider","router","hostname","match","interceptors","request","req","Promise","reject","ReactDOM","render","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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","file":"static/js/main.a0d9f3c6.chunk.js","sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport Backend from 'i18next-http-backend';\nimport { history } from \"react-router-guard\";\nconst query: string = history.location.search;\nconst localeQuery: string = query.split(\"sprache=\")[1];\nconst locale: string = localeQuery ? localeQuery.toLowerCase().substr(0,2) : \"de\";\ni18n\n .use(Backend)\n .use(initReactI18next)\n .init({\n react: {\n useSuspense: false\n },\n lng: locale || 'de',\n fallbackLng: 'en',\n debug: false,\n interpolation: {\n escapeValue: false,\n }\n });\n\nexport default i18n;","import { Ticket } from \"../types/Ticket\";\n\nexport const Klimaticket: Ticket = {\n cert1Id: \"00000000-0000-0000-0000-000000000000\",\n cert1Required: false,\n cert2Id: \"00000000-0000-0000-0000-000000000000\",\n cert2Required: false,\n cert3Id: \"00000000-0000-0000-0000-000000000000\",\n cert3Required: false,\n firstOnMonth: false,\n isSemesterWorkflow: false,\n isKlimaTicket: true,\n tarifLevels: \"\",\n ticketCode: 0,\n ticketId: 3,\n ticketname: \"Klimaticket OÖ\"\n}\n\nexport const tickets: Ticket[] = [\n {\n ...Klimaticket\n },\n // {\n // cert1: \"\",\n // cert1Id: \"44c8024c-f79b-e511-80c5-0050568ad98b\",\n // cert1Required: true,\n // cert2: \"\",\n // cert2Id: \"30c8024c-f79b-e511-80c5-0050568ad98b\",\n // cert2Required: false,\n // cert3Id: \"00000000-0000-0000-0000-000000000000\",\n // cert3Required: false,\n // firstOnMonth: false,\n // isSemesterWorkflow: true,\n // tarifLevels: \"\",\n // ticketCode: 53,\n // ticketId: 1,\n // ticketname: \"OÖVV Semesterkarte\"\n // },\n // {\n // cert1Id: \"00000000-0000-0000-0000-000000000000\",\n // cert1Required: false,\n // cert2Id: \"00000000-0000-0000-0000-000000000000\",\n // cert2Required: false,\n // cert3Id: \"00000000-0000-0000-0000-000000000000\",\n // cert3Required: false,\n // firstOnMonth: true,\n // isSemesterWorkflow: false,\n // tarifLevels: \"\",\n // ticketCode: 50,\n // ticketId: 2,\n // ticketname: \"OÖVV Jahreskarte\"\n // }\n]","export class Certification {\n id: any;\n certificationContent: any;\n extension = \"\";\n error = \"\";\n name = \"\";\n constructor(id: any) {\n this.id = id;\n }\n}","export class CoreZone {\n czFrom: \"ja\" | \"nein\" | \"\" = \"\";\n czTo: \"ja\" | \"nein\" | \"\" = \"\";\n}","export class CustomerImage {\n imageStream: any;\n fileExtension = \"\";\n error = \"\";\n name = \"\";\n}","// eslint-disable-next-line import/no-anonymous-default-export\nexport default (state: any, action: any) => {\n switch (action.type) {\n case \"SET_TICKET\":\n return {\n ...state,\n ticket: action.payload.ticket,\n };\n case \"SET_KLIMA_TICKET\":\n return {\n ...state,\n klimaTicket: action.payload.klimaTicket,\n };\n case \"SET_KLIMA_TICKET_PARKING\":\n return {\n ...state,\n klimaTicketParking: action.payload.klimaTicketParking,\n };\n case \"SET_TICKETS\":\n return {\n ...state,\n tickets: action.payload.tickets,\n };\n case \"SET_KLIMA_TICKETS\":\n return {\n ...state,\n klimaTickets: action.payload.klimaTickets,\n };\n case \"SET_TICKETS_LOADING\":\n return {\n ...state,\n ticketsLoading: action.payload.ticketsLoading,\n };\n case \"SET_TICKET_VALID_FROM\":\n return {\n ...state,\n validFrom: action.payload.validFrom,\n };\n case \"SET_ACTIVE_TAB\":\n return {\n ...state,\n activeTab: action.payload.activeTab,\n };\n case \"SET_ACTIVE_PAYMENT\":\n return {\n ...state,\n activePayment: action.payload.activePayment,\n };\n case \"SET_PAYMENT_SUCCESS\":\n return {\n ...state,\n paymentSuccess: action.payload.paymentSuccess,\n };\n case \"SET_PAYMENT_SUCCESS_DATA\":\n return {\n ...state,\n paymentSuccessData: action.payload.paymentSuccessData,\n };\n case \"SET_PAYMENT_ERROR_DATA\":\n return {\n ...state,\n paymentErrorData: action.payload.paymentErrorData,\n };\n case \"SET_UNIVERSITIES\":\n return {\n ...state,\n universities: action.payload.universities,\n };\n case \"SET_CUSTOMER_IMAGE\":\n return {\n ...state,\n customerImageInfo: action.payload.customerImageInfo,\n };\n case \"SET_CERT_1\":\n return {\n ...state,\n certification1Info: action.payload.certification1Info,\n };\n case \"SET_CERT_2\":\n return {\n ...state,\n certification2Info: action.payload.certification2Info,\n };\n case \"SET_USER_IMAGE\":\n return {\n ...state,\n originalUserImg: action.payload.originalUserImg,\n };\n case \"SET_PAYMENT_TYPES\":\n return {\n ...state,\n paymentTypes: action.payload.paymentTypes,\n };\n case \"SET_PAYMENT_TYPES_LOADING\":\n return {\n ...state,\n paymentTypesLoaded: action.payload.paymentTypesLoaded,\n };\n case \"SET_IS_EXTEND_TICKET\":\n return {\n ...state,\n isExtendTicket: action.payload.isExtendTicket,\n };\n case \"SET_IS_TAB_DISABLED\":\n return {\n ...state,\n isTabDisabled: action.payload.isTabDisabled,\n };\n case \"SET_SELECTED_ROUTE\":\n return {\n ...state,\n selectedRoute: action.payload.selectedRoute,\n };\n case \"SET_SELECTED_PRICE\":\n return {\n ...state,\n selectedPrice: action.payload.selectedPrice,\n };\n case \"SET_SELECTED_COREZONE\":\n return {\n ...state,\n selectedCoreZone: action.payload.selectedCoreZone,\n };\n case \"SET_ORDER_NUMBER\":\n return {\n ...state,\n orderNumber: action.payload.orderNumber,\n };\n case \"SET_SESSION\":\n return {\n ...state,\n sessionID: action.payload.sessionID,\n };\n case \"SET_IS_EXISTING_ORDER\":\n return {\n ...state,\n isExistingOrder: action.payload.isExistingOrder,\n };\n case \"SET_ORDER_TOKEN\":\n return {\n ...state,\n orderToken: action.payload.orderToken,\n };\n case \"SET_DIFF_INVOICE_ADDRESS\":\n return {\n ...state,\n differentInvoiceAddress: action.payload.differentInvoiceAddress,\n };\n case \"SET_DISABILITY\":\n return {\n ...state,\n handicap: action.payload.handicap,\n };\n default:\n return state;\n }\n};","import { MaterialUiPickersDate } from \"@material-ui/pickers/typings/date\";\nimport React, { createContext, useReducer } from \"react\";\nimport { klimaTicketsParkingData, KlimaTicketParking } from \"../../statics/klima-ticket-parking\";\nimport { tickets } from \"../../statics/tickets\";\nimport { Certification } from \"../../types/Certification\";\nimport { CoreZone } from \"../../types/CoreZone\";\nimport { CustomerImage } from \"../../types/CustomerImage\";\nimport { PriceInfo } from \"../../types/PriceInfo\";\nimport { Route } from \"../../types/Route\";\nimport { Ticket } from \"../../types/Ticket\";\nimport { University } from \"../../types/University\";\nimport TicketReducer from \"../reducers/ticket.reducer\";\n\nconst initialState: any = {\n ticket: {},\n klimaTicket: {},\n klimaTicketParking: klimaTicketsParkingData,\n activeTab: 0,\n paymentSuccess: false,\n paymentSuccessData: {},\n paymentErrorData: \"\",\n sessionID: \"\",\n ticketsLoading: false,\n isExtendTicket: false,\n isTabDisabled: false,\n activePayment: \"\",\n validFrom: null,\n tickets: tickets,\n klimaTickets: [] as Ticket[],\n universities: [],\n certification1Info: new Certification(1),\n certification2Info: new Certification(2),\n customerImageInfo: new CustomerImage(),\n originalUserImg: \"\",\n paymentTypes: [],\n paymentTypesLoaded: false,\n selectedRoute: {},\n selectedPrice: {},\n selectedCoreZone: new CoreZone(),\n orderNumber: \"\",\n isExistingOrder: false,\n orderToken: \"\",\n differentInvoiceAddress: false,\n handicap: false\n};\n\nexport const TicketContext = createContext(initialState);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TicketProvider = ({ children }: any) => {\n const [state, dispatch] = useReducer(TicketReducer, initialState);\n\n function setTicket(ticket: Ticket) {\n dispatch({\n type: \"SET_TICKET\",\n payload: { ticket },\n });\n }\n\n function setKlimaTicket(klimaTicket: Ticket) {\n dispatch({\n type: \"SET_KLIMA_TICKET\",\n payload: { klimaTicket },\n });\n }\n\n function setKlimaTicketParking(klimaTicketParking: KlimaTicketParking) {\n dispatch({\n type: \"SET_KLIMA_TICKET_PARKING\",\n payload: { klimaTicketParking },\n });\n }\n\n function setTickets(tickets: Ticket[]) {\n dispatch({\n type: \"SET_TICKETS\",\n payload: { tickets },\n });\n }\n\n function setKlimaTickets(klimaTickets: Ticket[]) {\n dispatch({\n type: \"SET_KLIMA_TICKETS\",\n payload: { klimaTickets },\n });\n }\n\n function setTicketsLoading(ticketsLoading: boolean) {\n dispatch({\n type: \"SET_TICKETS_LOADING\",\n payload: { ticketsLoading },\n });\n }\n\n function setTicketValidFrom(validFrom: MaterialUiPickersDate) {\n dispatch({\n type: \"SET_TICKET_VALID_FROM\",\n payload: { validFrom },\n });\n }\n\n function setActiveTab(activeTab: number) {\n dispatch({\n type: \"SET_ACTIVE_TAB\",\n payload: { activeTab },\n });\n }\n\n function setActivePayment(activePayment: string) {\n dispatch({\n type: \"SET_ACTIVE_PAYMENT\",\n payload: { activePayment },\n });\n }\n\n function setPaymentSuccess(paymentSuccess: boolean) {\n dispatch({\n type: \"SET_PAYMENT_SUCCESS\",\n payload: { paymentSuccess },\n });\n }\n\n function setPaymentSuccessData(paymentSuccessData: any) {\n dispatch({\n type: \"SET_PAYMENT_SUCCESS_DATA\",\n payload: { paymentSuccessData },\n });\n }\n\n function setPaymentErrorData(paymentErrorData: string) {\n dispatch({\n type: \"SET_PAYMENT_ERROR_DATA\",\n payload: { paymentErrorData },\n });\n }\n\n function setUniversities(universities: University[]) {\n dispatch({\n type: \"SET_UNIVERSITIES\",\n payload: { universities },\n });\n }\n\n function setCustomerImageInfo(customerImageInfo: any) {\n dispatch({\n type: \"SET_CUSTOMER_IMAGE\",\n payload: { customerImageInfo },\n });\n }\n\n function setCertification1Info(certification1Info: Certification) {\n dispatch({\n type: \"SET_CERT_1\",\n payload: { certification1Info },\n });\n }\n\n function setCertification2Info(certification2Info: Certification) {\n dispatch({\n type: \"SET_CERT_2\",\n payload: { certification2Info },\n });\n }\n\n function setOriginalUserImg(originalUserImg: any) {\n dispatch({\n type: \"SET_USER_IMAGE\",\n payload: { originalUserImg },\n });\n }\n\n function setPaymentTypes(paymentTypes: any[]) {\n dispatch({\n type: \"SET_PAYMENT_TYPES\",\n payload: { paymentTypes },\n });\n }\n\n function setPaymentTypesLoading(paymentTypesLoaded: boolean) {\n dispatch({\n type: \"SET_PAYMENT_TYPES_LOADING\",\n payload: { paymentTypesLoaded },\n });\n }\n\n function setIsTicketExtended(isExtendTicket: boolean) {\n dispatch({\n type: \"SET_IS_EXTEND_TICKET\",\n payload: { isExtendTicket },\n });\n }\n\n function setIsTabDisabled(isTabDisabled: boolean) {\n dispatch({\n type: \"SET_IS_TAB_DISABLED\",\n payload: { isTabDisabled },\n });\n }\n\n function setSelectedRoute(selectedRoute: Route) {\n dispatch({\n type: \"SET_SELECTED_ROUTE\",\n payload: { selectedRoute },\n });\n }\n\n function setSelectedPrice(selectedPrice: PriceInfo) {\n dispatch({\n type: \"SET_SELECTED_PRICE\",\n payload: { selectedPrice },\n });\n }\n\n function setSelectedCoreZone(selectedCoreZone: CoreZone) {\n dispatch({\n type: \"SET_SELECTED_COREZONE\",\n payload: { selectedCoreZone },\n });\n }\n\n function setOrderNumber(orderNumber: string) {\n dispatch({\n type: \"SET_ORDER_NUMBER\",\n payload: { orderNumber }\n });\n }\n\n function setSessionID(sessionID: string) {\n dispatch({\n type: \"SET_SESSION\",\n payload: { sessionID },\n });\n }\n\n function setIsExistingOrder(isExistingOrder: boolean) {\n dispatch({\n type: \"SET_IS_EXISTING_ORDER\",\n payload: { isExistingOrder },\n });\n }\n \n function setOrderToken(orderToken: string) {\n dispatch({\n type: \"SET_ORDER_TOKEN\",\n payload: { orderToken }\n });\n }\n\n function setDifferentInvoiceAddress(differentInvoiceAddress: boolean) {\n dispatch({\n type: \"SET_DIFF_INVOICE_ADDRESS\",\n payload: { differentInvoiceAddress }\n });\n }\n \n function setDisability(handicap: boolean) {\n dispatch({\n type: \"SET_DISABILITY\",\n payload: { handicap }\n });\n }\n\n return (\n \n {children}\n \n );\n};\n","export interface KlimaTicketParking {\n name: string,\n description: string,\n active: boolean;\n price: number;\n}\n\nexport const klimaTicketsParkingData: KlimaTicketParking[] = [\n {\n name: \"P+R Berechtigung Wels\",\n description: \"Kostenlos parken in der Park & Ride Anlage am Hauptbahnhof Wels\",\n active: false,\n price: 0\n },\n {\n name: \"P+R Berechtigung St. Valentin\",\n description: \"Kostenlos parken in der Park & Ride Anlage St Valentin\",\n active: false,\n price: 0\n }\n]","export const stage = process.env.REACT_APP_STAGE;\nexport const config = {\n // Data.Mill\n dataMillURL: \"https://api.datamill.solutions/\",\n allowDataMill: true,\n // SOAP\n url: process.env.REACT_APP_SOAP_URL || \"https://ofgmws.ooevg.at/test/OOService.asmx\",\n namespaceURL: \"http://ITPRO.OFGM_Online.OOWebService/\",\n username: process.env.WSS_USERNAME,\n password: process.env.WSS_PASSWORD,\n // Payment\n apiUrl: process.env.REACT_APP_PAYMENT_URL || \"https://ofgmws.ooevg.at/test/ItproDerpServices/api/ofgm/\",\n paymentGatewayURL: process.env.REACT_APP_PAYMENT_GATEWAY_URL || \"https://test.oppwa.com/\",\n entityId: process.env.REACT_APP_ENTITY_ID || \"8ac7a4c973562dcb01735700a07204b7\",\n SEPA_entityId: process.env.REACT_APP_SEPA_ENTITY_ID || \"8ac7a4c779ee496b0179f07a3c6208c7\",\n SEPA_API_TOKEN: process.env.REACT_APP_SEPA_API_TOKEN || \"633747F5-C79A-4D7D-9F71-A47FB41DD962\",\n merchantId: process.env.REACT_APP_MERCHANT_ID || \"OOEVGOFGMTicketshop\"\n};","import { config } from \"../../config\";\nconst { url, namespaceURL, username, password } = config;\ndeclare const $: any;\nexport class TicketsService {\n\n private soapConfig: any = {\n url,\n appendMethodToURL: false,\n namespaceURL,\n namespaceQualifier: \"tns\",\n envAttributes: {\n 'xmlns:tns': namespaceURL,\n 'xmlns:types': `${namespaceURL}encodedTypes`\n },\n noPrefix: true,\n // MS\n timeout: 1000000\n }\n\n constructor() {\n if (username && password) {\n this.soapConfig.wss = {\n username,\n password\n }\n }\n }\n\n public initSoap = () => {\n $.soap(this.soapConfig)\n }\n\n public callSOAP = (data = {}, method = \"\") => {\n try {\n this.initSoap();\n return $.soap({\n method,\n SOAPAction: `${namespaceURL + method}`,\n data,\n elementName: `tns:${method}`,\n });\n } catch (err) {\n return err;\n }\n }\n\n public openSession = async () => this.callSOAP({}, \"OpenSession\");\n\n public closeSession = (data: any) => this.callSOAP(data, \"CloseSession\");\n\n public getAvailableTickets = (data: any) => this.callSOAP(data, \"GetAvailableTickets\");\n\n public getOnlineOrderState = (data: any) => this.callSOAP(data, \"GetOnlineOrderState\");\n\n public getErrorText = async (data: any) => this.callSOAP(data, \"GetErrorText\");\n\n public setCustomerData = async (data: any) => this.callSOAP(data, \"SetCustomerData\");\n\n public setStudentData = async (data: any) => this.callSOAP(data, \"SetStudentData\");\n\n public getUniversities = (data: any) => this.callSOAP(data, \"GetUniversities\");\n\n public checkInscription = (data: any) => this.callSOAP(data, \"CheckInscription\");\n\n public uploadCustomerImage = (data: any) => this.callSOAP(data, \"UploadCustomerImage\");\n\n public uploadCertification = (data: any) => this.callSOAP(data, \"UploadCertification\");\n\n public getStages = (data: any) => this.callSOAP(data, \"GetStages\");\n\n public getPossiblePathes = (data: any) => this.callSOAP(data, \"GetPossiblePathes\");\n\n public setCardData = (data: any) => this.callSOAP(data, \"SetCardData\");\n\n public getPossiblePaymentTypes = (data: any) => this.callSOAP(data, \"GetPossiblePaymentTypes\");\n\n public newOrderWithStoredData = (data: any) => this.callSOAP(data, \"NewOrderWithStoredData\");\n\n public confirmOnlinepaymentData = (data: any) => this.callSOAP(data, \"ConfirmOnlinepaymentData\");\n\n public cancelOnlinepayment = (data: any) => this.callSOAP(data, \"CancelOnlinepayment\");\n\n public continueExistingOrder = (data: any) => this.callSOAP(data, \"ContinueExistingOrder\");\n\n public getOrderToken = (data: any) => this.callSOAP(data, \"GetOrderToken\");\n\n public continueOrder = (data: any) => this.callSOAP(data, \"ContinueOrder\");\n\n public saveOrder = (data: any) => this.callSOAP(data, \"SaveOrder\");\n\n public setPaymentData = (data: any) => this.callSOAP(data, \"SetPaymentData\");\n\n public getClimateTickets = (data: any) => this.callSOAP(data, \"GetClimateTickets\");\n}\n","import i18n from \"../../i18n\";\nimport { history } from \"react-router-guard\";\nconst query: string = history.location.search;\nconst localeQuery: string = query.split(\"sprache=\")[1];\nconst locale: string = localeQuery ? localeQuery.toLowerCase().substr(0,2) : \"de\";\nexport class LangService {\n public getCurrentLang = (): string => {\n return i18n.language || locale;\n }\n\n public setCurrentLang = (lang: string): void => {\n i18n.changeLanguage(lang);\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { parseNumbers, parseBooleans, firstCharLowerCase } = require('xml2js').processors;\nexport const appName = 'oövv';\nexport const dateFormat = 'DD.MM.YYYY';\nexport const xml2JsonConfig = { explicitArray: false, ignoreAttrs: true, valueProcessors: [parseNumbers, parseBooleans], tagNameProcessors: [firstCharLowerCase] };\nexport const fileTypes = \"image/jpg,image/jpeg,image/png,image/bmp\";\nexport const maxFileSize = 5*1024*1000;\nexport const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\nexport const timeZoneOffset = new Date().getTimezoneOffset();\nexport const currency = \"EUR\";","import React from 'react';\nimport './error-box.scoped.scss';\nimport { Box } from '@material-ui/core';\n\ninterface ErrorBoxProps {\n type?: string;\n text: any;\n}\n\nexport default function ErrorBox(props: ErrorBoxProps) {\n const { type, text } = props;\n return (\n \n \n {type && (\n
{type}!
\n )}\n
{text}
\n
\n
\n );\n}\n","export const emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nexport const maxChar = 50;\nexport const matrikelNrMaxChar = 8;\nexport const numRegex = /^\\d+$/;\nexport const letterRegex = /^[a-zA-ZéäöüÄÖÜß -]+$/","export enum TICKET {\n SEMESTER = 1,\n YEAR = 2,\n KLIMA = 3\n}\n","import { appName } from \"../../statics/main\";\n\nexport class SessionStorageService {\n public getData(key: string) {\n const data = sessionStorage.getItem(`${appName}-${key}`);\n return data ? JSON.parse(data) : '';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setData(key: string, data: any) {\n sessionStorage.setItem(`${appName}-${key}`, JSON.stringify(data));\n }\n public removeData(key: string) {\n sessionStorage.removeItem(`${appName}-${key}`);\n }\n public clearAll() {\n sessionStorage.clear();\n }\n}\n","export const TicketStatus = [\n {\n name: \"Bestellung eingegangen\",\n value: 1,\n status: \"Eingegangen\"\n },\n {\n name: \"Abklärung mit Besteller\",\n value: 2,\n status: \"Eingegangen\"\n },\n {\n name: \"Karte kann erstellt werden\",\n value: 3,\n status: \"Eingegangen\"\n },\n {\n name: \"Warte auf Fortsetzung durch Kunden\",\n value: 4,\n status: \"Fehlgeschlagen\"\n },\n {\n name: \"Bestellung abgeschlossen\",\n value: 5,\n status: \"Abgeschlossen\"\n },\n {\n name: \"Abgebrochen\",\n value: 6,\n status: \"Fehlgeschlagen\"\n },\n {\n name: \"Warte auf Onlinezahlung\",\n value: 7,\n status: \"Unbezahlt\"\n },\n {\n name: \"Onlinezahlung abgebrochen\",\n value: 8,\n status: \"Unbezahlt\"\n },\n {\n name: \"Karte erstellt\",\n value: 20,\n status: \"Abgeschlossen\"\n },\n {\n name: \"Zur Druckerei exportiert\",\n value: 21,\n status: \"Abgeschlossen\"\n },\n {\n name: \"Versendet\",\n value: 22,\n status: \"Abgeschlossen\"\n },\n {\n name: \"Storniert\",\n value: 23,\n status: \"Fehlgeschlagen\"\n },\n]","import { MaterialUiPickersDate } from \"@material-ui/pickers/typings/date\";\nimport moment from \"moment\";\nimport 'moment/locale/de';\nimport { history } from \"react-router-guard\";\nimport { LangService } from \"../services/lang/lang.service\";\nimport { SessionStorageService } from \"../services/session-storage/session-storage\";\ndeclare const $: any;\n\nconst langService: LangService = new LangService();\nconst sessionStorageService: SessionStorageService = new SessionStorageService();\n\nexport const addLeadingZero = (value = 0) => {\n return value.toString().length === 1 ? `0${value}` : value;\n}\n\nexport const formatDate = (date: any, format: string) => {\n if (date && format) {\n const momentDate = moment(new Date(date));\n const lang = langService.getCurrentLang();\n moment.locale(lang);\n const formatedDate = momentDate.format(format);\n return formatedDate;\n }\n}\n\nexport const deleteEmptyProp = (obj: any = {}) => {\n const object = { ...obj };\n for (const key in object) {\n // eslint-disable-next-line no-prototype-builtins\n if (object.hasOwnProperty(key)) {\n const element = object[key];\n if (!element) {\n delete obj[key];\n }\n }\n }\n return obj;\n}\n\nexport const limit = (text: string, length: number) => text?.substr(0, length);\n\nexport const turncate = (text = \"\", length: number) => {\n if (text.length > length) {\n return text.substr(0, length) + '...';\n } else {\n return text.substr(0, length);\n }\n}\n\n// deep clone (array of objects - array of arrays)\nexport const deepClone = (arr: any[] = []): any[] => arr.map(item => Array.isArray(item) ? deepClone(item) : (typeof item === \"object\") ? { ...item } : item);\n\nexport const isAllTextSpaces = (text = \"\") => {\n const regex = /^\\s+$/;\n // check if user write spaces at first\n if (regex.test(text)) {\n return true;\n }\n return false;\n}\n\nexport const isStringHasWhiteSpace = (text = \"\") => {\n const regex = /\\s/;\n // check if user write spaces at first\n if (regex.test(text)) {\n return true;\n }\n return false;\n}\n\nexport const calculateAge = (birthDate: MaterialUiPickersDate, ValidFrom: MaterialUiPickersDate) => moment(ValidFrom).diff(moment(birthDate), \"years\");\n\nexport const formatCurrency = (price: number) => {\n const formatter = new Intl.NumberFormat(\"de-AT\", {\n style: \"currency\",\n currency: \"EUR\"\n });\n return formatter.format(price / 100);\n}\n\nexport const isSessionExpired = (error: string): boolean => {\n return error === \"Keine Session vorhanden oder Session abgelaufen\";\n}\n\nexport const handleSessionExpire = (error: string) => {\n if (isSessionExpired(error)) {\n const lang = langService.getCurrentLang();\n history.push(`/?sprache=${lang}`);\n sessionStorageService.clearAll();\n window.location.reload();\n }\n}\n\nexport const scrollToTabs = () => {\n $([document.documentElement, document.body]).animate(\n {\n scrollTop: $(\".ticket-shop-main-wrapper\").offset().top - 100,\n },\n 1000\n );\n}\n\nexport const isIosDevice = () => [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod'\n].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document);","import moment from 'moment';\nimport { CustomerData } from '../../types/CustomerData';\nimport { University } from '../../types/University';\nimport { User } from '../../types/User';\nexport class MapperService {\n public mapUserData = (customerData: CustomerData, university: University) => {\n const {\n sexcode,\n salutation,\n firstname,\n lastname,\n city,\n customerNr,\n matrikelNr,\n ooevgNewsletter,\n dataTransferAccompanyingResearch,\n invoiceSexcode,\n invoiceSalutation,\n invoiceFirstname,\n invoiceLastname,\n invoicePostalCode,\n invoiceCity,\n invoiceAddress,\n invoiceCompanyName,\n invoiceUid,\n } = customerData;\n\n const user: User = {\n sexcode,\n salutation: salutation || '',\n firstname,\n lastname,\n address: customerData.street,\n postalCode: customerData.plz,\n city,\n birthDate: customerData.birthDate ? moment(customerData.birthDate) : null,\n mail: customerData.email,\n mobilephonenr: customerData.mobilephonenr\n ? String(customerData.mobilephonenr)\n : customerData.phonenr\n ? String(customerData.phonenr)\n : '',\n customerNr,\n ooevgNewsletter,\n dataTransferAccompanyingResearch,\n matrikelNr: matrikelNr || '',\n universityId: university?.id || '',\n invoiceSexcode: invoiceSexcode || sexcode,\n invoiceSalutation: invoiceSalutation || salutation || '',\n invoiceFirstname: invoiceFirstname || firstname,\n invoiceLastname: invoiceLastname || lastname,\n invoicePostalCode,\n invoiceCity,\n invoiceAddress,\n invoiceCompanyName,\n invoiceUid: invoiceUid || '',\n };\n return user;\n };\n}\n","import React from \"react\";\nimport \"./success-box.scoped.scss\";\nimport { Box } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface SuccessBoxProps {\n text: string;\n}\n\nexport default function SuccessBox(props: SuccessBoxProps) {\n const [t] = useTranslation();\n const { text } = props;\n return (\n \n \n
{t(\"Erfolg\")}!
\n
{text}
\n
\n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport './ticket-selection-tab.component.scoped.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { TicketContext } from '../../store';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n Grid,\n IconButton,\n InputAdornment,\n Radio,\n RadioGroup,\n TextField,\n} from '@material-ui/core';\nimport {\n DatePicker,\n DatePickerView,\n KeyboardDatePicker,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\nimport EventOutlinedIcon from '@material-ui/icons/EventOutlined';\nimport moment, { Moment } from 'moment';\nimport 'moment/locale/de';\nimport MomentUtils from '@date-io/moment';\nimport { LangService } from '../../services/lang/lang.service';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport { dateFormat, xml2JsonConfig } from '../../statics/main';\nimport { TicketsService } from '../../services/tickets/tickets.service';\nimport { Ticket } from '../../types/Ticket';\nimport ErrorBox from '../error-box/error-box';\nimport { numRegex } from '../../statics/validators';\nimport { parseString } from 'xml2js';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { Certification } from '../../types/Certification';\nimport { CustomerImage } from '../../types/CustomerImage';\nimport { TicketStatus } from '../../statics/ticket-status';\nimport {\n handleSessionExpire,\n isSessionExpired,\n scrollToTabs,\n} from '../../helpers';\nimport { TicketRenewResponse } from '../../types/TicketRenewResponse';\nimport { MapperService } from '../../services/mapper/mapper.service';\nimport SuccessBox from '../success-box/success-box';\nimport { TICKET } from '../../enums/ticket';\n\nexport const TicketSelectionTabComponent = () => {\n const [t] = useTranslation();\n const sessionStorageService = new SessionStorageService();\n const mapperService = new MapperService();\n const newTicket = sessionStorageService.getData('ticketForm') || {};\n const {\n setActiveTab,\n activeTab,\n setTicketValidFrom,\n setTicket,\n tickets,\n setOriginalUserImg,\n setCertification1Info,\n setCertification2Info,\n setCustomerImageInfo,\n setIsTicketExtended,\n isExtendTicket,\n sessionID,\n } = React.useContext(TicketContext);\n const ticketsService = new TicketsService();\n const langService: LangService = new LangService();\n const locale = langService.getCurrentLang();\n moment.locale(locale);\n const defaultStatus = { name: '', status: '', value: -1, date: '' };\n const [ticketStatus, setTicketStatus] = useState<{\n name: string;\n status: string;\n value: number;\n date: string;\n }>({ ...defaultStatus });\n const [ticketStatusError, setTicketStatusError] = useState('');\n const [extendTicketError, setExtendTicketError] = useState('');\n const [orderToken, setOrderToken] = useState('');\n\n // TICKET SELECTION FORM\n const newTicketValidationSchema = yup.object({\n ticketId: yup.number().required(),\n ticketValidFromDate: yup\n .date()\n .required()\n .typeError(t('invalid_date_format')),\n });\n\n const newTicketForm = useFormik({\n initialValues: {\n ticketId: newTicket.ticketId || TICKET.KLIMA,\n ticketValidFromDate: newTicket.ticketValidFromDate || null,\n },\n validationSchema: newTicketValidationSchema,\n onSubmit: (values) => {\n if (!values.ticketValidFromDate) return;\n const selectedTicket: Ticket = tickets.filter(\n (ticket: Ticket) => ticket.ticketId === values.ticketId\n )[0];\n setTicketValidFrom(values.ticketValidFromDate);\n setTicket(selectedTicket);\n sessionStorageService.setData('ticketForm', values);\n // for ticket info after payment success redirect.\n sessionStorageService.setData('selectedTicket', selectedTicket);\n setActiveTab(activeTab + 1);\n scrollToTabs();\n },\n });\n\n // ONLINE ORDER STATE\n const orderStateValidationSchema = yup.object({\n identifier: yup.string().required().max(10, '').matches(numRegex),\n birthDate: yup\n .date()\n .min(moment('1900-01-01').format('YYYY-MM-DD'))\n .max(moment())\n .required()\n .typeError(t('invalid_date_format')),\n });\n\n const orderStateForm = useFormik({\n initialValues: {\n birthDate: null,\n identifier: '',\n },\n validationSchema: orderStateValidationSchema,\n onSubmit: (values) => {\n if (!orderStateForm.isValid) return;\n GetOnlineOrderState(values);\n },\n });\n\n // Extend Ticket Form\n const extendTicketValidationSchema = yup.object({\n customernr: yup.string().required().max(10, '').matches(numRegex),\n birthDate: yup\n .date()\n .min(moment('1900-01-01').format('YYYY-MM-DD'))\n .max(moment())\n .required()\n .typeError(t('invalid_date_format')),\n });\n\n const extendTicketForm = useFormik({\n initialValues: {\n birthDate: null,\n customernr: '',\n },\n validationSchema: extendTicketValidationSchema,\n onSubmit: (values) => {\n if (!extendTicketForm.isValid) return;\n getExtendTicketData(values);\n },\n });\n\n const handleIdentifierChange = (event: any) => {\n const identifier = event.target.value;\n (!identifier || numRegex.test(identifier)) &&\n orderStateForm.setFieldValue('identifier', identifier);\n };\n\n const handleCustomerNumberChange = (event: any) => {\n const customernr = event.target.value;\n (!customernr || numRegex.test(customernr)) &&\n extendTicketForm.setFieldValue('customernr', customernr);\n };\n\n // validation of Ticket Valid From Date\n const handleValidDateChange = (selectedValidDate: MaterialUiPickersDate) => {\n // if ticket is yearly ticket or klima ticket, we select first day on month.\n if (\n newTicketForm.values.ticketId === TICKET.YEAR ||\n newTicketForm.values.ticketId === TICKET.KLIMA\n ) {\n // check for valid date range\n if (isKlimaOrYearDateInvalid(selectedValidDate)) {\n return;\n } \n if (selectedValidDate) {\n selectedValidDate = moment(selectedValidDate).utcOffset(0, true);\n selectedValidDate.set({\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n });\n }\n newTicketForm.setFieldValue(\n 'ticketValidFromDate',\n selectedValidDate?.startOf('month')\n );\n } else {\n newTicketForm.setFieldValue('ticketValidFromDate', selectedValidDate);\n }\n };\n\n const clearTicketData = () => {\n const user = sessionStorageService.getData('user');\n const countryCode = sessionStorageService.getData('countryCode');\n sessionStorageService.clearAll();\n sessionStorageService.setData('session', sessionID);\n if (isExtendTicket) {\n if (user) sessionStorageService.setData('user', user);\n if (countryCode)\n sessionStorageService.setData('countryCode', countryCode);\n }\n setOriginalUserImg('');\n setCertification1Info(new Certification(1));\n setCertification2Info(new Certification(2));\n setCustomerImageInfo(new CustomerImage());\n };\n\n const handleTicketTypeChange = (value: string) => {\n newTicketForm.setFieldValue('ticketId', Number(value));\n newTicketForm.setFieldValue('ticketValidFromDate', null);\n // Clear data on ticket change\n clearTicketData();\n };\n\n // validation on Semester Date\n // From 01/02/YYYY to 31/03/YYYY\n // From 01/09/YYYY to 31/10/YYYY\n const disableSemesterDate = (selectedValidDate: MaterialUiPickersDate) => {\n // reset time on selected date to compare dates correctly.\n if (selectedValidDate) {\n selectedValidDate = moment(selectedValidDate).utcOffset(0, true);\n selectedValidDate.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });\n }\n\n if (\n selectedValidDate &&\n (selectedValidDate.diff(\n moment(`${moment().year()}-02-01`, 'YYYY-MM-DD').utcOffset(0, true),\n 'days'\n ) < 0 ||\n (selectedValidDate.diff(\n moment(`${moment().year()}-03-31`, 'YYYY-MM-DD').utcOffset(0, true),\n 'days'\n ) > 0 &&\n selectedValidDate.diff(\n moment(`${moment().year()}-09-01`, 'YYYY-MM-DD').utcOffset(0, true),\n 'days'\n ) < 0) ||\n selectedValidDate.diff(\n moment(`${moment().year()}-10-31`, 'YYYY-MM-DD').utcOffset(0, true),\n 'days'\n ) > 0)\n ) {\n return true;\n }\n return false;\n };\n\n const calendarOpenTo = (): DatePickerView | undefined => {\n if (\n newTicketForm.values.ticketId === TICKET.YEAR ||\n newTicketForm.values.ticketId === TICKET.KLIMA\n ) {\n // Month is a zero based index from 0-11\n // If month is Nov or Dec , then it will be 2 years at calendar (open to YEAR first)\n if (moment().month() < 10) {\n return 'month';\n }\n return 'year';\n }\n return undefined;\n };\n\n const isKlimaOrYearDateInvalid = (\n selectedValidDate: MaterialUiPickersDate\n ): boolean => {\n if (\n selectedValidDate &&\n (moment(selectedValidDate)\n .utcOffset(0, true)\n .diff(moment().startOf('month'), 'month') < 0 ||\n moment(selectedValidDate)\n .utcOffset(0, true)\n .diff(moment().startOf('month'), 'month') > 2)\n ) {\n return true;\n }\n return false;\n };\n\n const getExtendTicketData = (values: any) => {\n clearTicketData();\n sessionStorageService.removeData('countryCode');\n setExtendTicketError('');\n const payload: any = {\n customernr: Number(values.customernr),\n birthDate: values.birthDate?.utcOffset(0, true).toDate(),\n sessionID,\n };\n ticketsService\n .newOrderWithStoredData(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) => {\n parseTicketData(err, res);\n });\n })\n .fail(function (jqXHR: any, textStatus: string, errorThrown: Error) {\n setExtendTicketError('Fehler beim Abfragen eines neuen Auftrags!');\n });\n };\n\n const parseTicketData = async (err: Error | null, res: any) => {\n const ticketRenewResponse: TicketRenewResponse =\n res['soap:Envelope']['soap:Body'];\n if (!ticketRenewResponse['types:OrderData']) {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error))\n setExtendTicketError('Fehler beim Abfragen eines neuen Auftrags!');\n } else {\n setIsTicketExtended(true);\n setCustomerData(ticketRenewResponse);\n }\n };\n\n const setCustomerData = (res: TicketRenewResponse) => {\n // Set Tab 2 Data (User Data, University)\n const customerData = Array.isArray(res['types:CustomerData'])\n ? res['types:CustomerData'][0]\n : res['types:CustomerData'];\n const university = res['types:University'];\n const user = mapperService.mapUserData(customerData, university);\n sessionStorageService.setData('user', user);\n // Set Tab 3 Data (Images, Files)\n const customerImage =\n 'data:image/png;base64,' + res['types:UploadFile'].imageBase64;\n const fileExtension = res['types:UploadFile'].fileExtension;\n sessionStorageService.setData('croppedImage', customerImage);\n sessionStorageService.setData('fileExtension', fileExtension);\n };\n\n const getTicketStatusError = async () => {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) setTicketStatusError(error);\n };\n\n const GetOnlineOrderState = (values: {\n identifier: string;\n birthDate: Moment | null;\n }) => {\n clearTicketData();\n setTicketStatusError('');\n const payload: any = {\n identifier: Number(values.identifier),\n birthDate: values.birthDate?.utcOffset(0, true).toDate(),\n sessionID,\n };\n ticketsService\n .getOnlineOrderState(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) => {\n if (res) {\n const {state, date} = res['soap:Envelope']['soap:Body']['types:OrderState'];\n const selectedStatus = TicketStatus.filter(\n (status) => state === status.value\n )[0];\n setTicketStatus({\n name: selectedStatus ? selectedStatus.name : '',\n status: selectedStatus ? selectedStatus.status : '',\n value: state,\n date: moment(date, \"YYYY-MM-DD THH:mm:ss\").format(\"DD.MM.YYYY HH:mm\")\n });\n if (state === 0) {\n getTicketStatusError();\n }\n if (state === 7 || state === 8) {\n getOrderToken(Number(values.identifier));\n }\n }\n });\n })\n .fail(function (jqXHR: any, textStatus: string, errorThrown: Error) {\n setTicketStatusError('Fehler beim Abfragen des Status der Bestellung!');\n });\n };\n\n const getOrderToken = async (orderNumber: number) => {\n const payload: any = {\n orderNumber,\n sessionID,\n };\n const res = await ticketsService.getOrderToken(payload);\n if (res) {\n setOrderToken(res.documentElement.textContent);\n }\n };\n\n const logout = () => {\n orderStateForm.resetForm();\n setTicketStatus({ ...defaultStatus });\n setOrderToken('');\n sessionStorageService.removeData('orderNumber');\n sessionStorageService.removeData('birthDate');\n };\n\n useEffect(() => {\n const orderNumber = sessionStorageService.getData('orderNumber');\n const birthDate = sessionStorageService.getData('birthDate');\n if (orderNumber && birthDate && sessionID) {\n GetOnlineOrderState({\n identifier: orderNumber,\n birthDate: moment(birthDate),\n });\n orderStateForm.setFieldValue('identifier', orderNumber);\n orderStateForm.setFieldValue('birthDate', moment(birthDate));\n sessionStorageService.removeData('orderNumber');\n sessionStorageService.removeData('birthDate');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sessionID]);\n\n return (\n
\n \n \n \n \n {t('Neues Ticket kaufen')}\n \n \n {t('Bitte wählen Sie das gewünschte Ticket')}.\n \n \n \n \n ) =>\n handleTicketTypeChange(event.target.value)\n }\n >\n {tickets.map((ticket: Ticket, index: number) => {\n return (\n }\n label={t(ticket.ticketname)}\n name=\"ticketId\"\n color=\"primary\"\n classes={{ label: 'ticket-select-label' }}\n />\n );\n })}\n \n \n \n {tickets.length > 0 && (\n <>\n \n \n handleValidDateChange(value)}\n className=\"w-100\"\n label={t('ticket gültig ab') + ' *'}\n InputProps={{\n endAdornment: (\n \n \n \n \n \n ),\n }}\n invalidDateMessage={t('invalid_date_format')}\n maxDateMessage=\"\"\n minDateMessage=\"\"\n error={Boolean(\n (newTicketForm.errors.ticketValidFromDate &&\n newTicketForm.values.ticketValidFromDate) ||\n (!newTicketForm.values.ticketValidFromDate &&\n newTicketForm.submitCount)\n )}\n />\n \n \n {Boolean(\n !newTicketForm.values.ticketValidFromDate &&\n newTicketForm.submitCount\n ) && (\n \n \n \n )}\n \n \n {t('Weiter')}\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n {t('Übernehmen')}\n \n \n {t(\n 'Sie haben bereits ein Ticket bestellt und möchten Ihre Daten für eine neue Bestellung übernehmen?'\n )}\n \n {!isExtendTicket && (\n \n \n \n \n \n \n \n extendTicketForm.setFieldValue('birthDate', value)\n }\n className=\"w-100\"\n label={t('Geburtsdatum')}\n keyboardIcon={}\n invalidDateMessage={t('invalid_date_format')}\n maxDateMessage={t('invalid_birth_date')}\n minDateMessage={t('invalid_birth_date')}\n disableFuture\n error={Boolean(\n (extendTicketForm.errors.birthDate &&\n extendTicketForm.values.birthDate) ||\n (!extendTicketForm.values.birthDate &&\n extendTicketForm.submitCount)\n )}\n />\n \n \n {Boolean(\n !extendTicketForm.isValid && extendTicketForm.submitCount\n ) && (\n \n \n \n )}\n {extendTicketError && (\n \n \n \n )}\n \n \n {/* */}\n {t('Übernehmen')}\n \n \n \n )}\n {isExtendTicket && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n {t('Statusabfrage')}\n \n {ticketStatus.value <= 0 && (\n <>\n \n {t(\n 'Sie haben Ihr Ticket schon bestellt und möchten den Bestellstatus abfragen?'\n )}\n \n \n \n \n \n \n \n \n orderStateForm.setFieldValue('birthDate', value)\n }\n className=\"w-100\"\n label={t('Geburtsdatum')}\n keyboardIcon={}\n invalidDateMessage={t('invalid_date_format')}\n maxDateMessage={t('invalid_birth_date')}\n minDateMessage={t('invalid_birth_date')}\n disableFuture\n error={Boolean(\n (orderStateForm.errors.birthDate &&\n orderStateForm.values.birthDate) ||\n (!orderStateForm.values.birthDate &&\n orderStateForm.submitCount)\n )}\n />\n \n \n {Boolean(\n !orderStateForm.isValid && orderStateForm.submitCount\n ) && (\n \n \n \n )}\n {ticketStatusError && (\n \n \n \n )}\n \n \n {t('PRÜFEN')}\n \n \n \n \n )}\n {ticketStatus.value > 0 && (\n <>\n \n \n :{' '}\n {(ticketStatus.value === 7 || ticketStatus.value === 8) && orderToken ? (\n // PAY AGAIN FOR STATUS 7 & 8 (WAITING FOR PAYMENT, PAYMENT CANCELLED)\n \n {t(ticketStatus.status)}\n \n ) : (\n {t(ticketStatus.status)} - {t(ticketStatus.name)}\n )}\n {ticketStatus.date &&\n {t('Letzte Änderung')}: {ticketStatus.date}\n }\n \n {/* \n
    \n {TicketStatus.map((status) => {\n return (\n \n \n {t(status.name)}\n \n \n );\n })}\n
\n
*/}\n \n \n \n {t('AUSLOGGEN')}\n \n \n \n )}\n \n
\n
\n
\n );\n};\n","import { Moment } from 'moment';\n\nexport class User {\n sexcode = '';\n salutation? = '';\n firstname = '';\n lastname = '';\n address = '';\n postalCode = '';\n city = '';\n birthDate: null | Moment = null;\n mail = '';\n mobilephonenr = '';\n ooevgNewsletter = false;\n dataTransferAccompanyingResearch = false;\n customerNr = 0;\n phonenr? = '';\n universityId? = '';\n matrikelNr? = '';\n invoiceCompanyName? = '';\n invoiceUid? = '';\n invoiceSexcode? = '';\n invoiceSalutation? = '';\n invoiceFirstname? = '';\n invoiceLastname? = '';\n invoicePostalCode? = '';\n invoiceCity? = '';\n invoiceAddress? = '';\n}\n\nexport class Invoice {\n invoiceCompanyName? = '';\n invoiceUid? = '';\n invoiceSexcode? = '';\n invoiceSalutation? = '';\n invoiceFirstname? = '';\n invoiceLastname? = '';\n invoicePostalCode? = '';\n invoiceCity? = '';\n invoiceAddress? = '';\n}","import axios from \"axios\";\nimport { config } from \"../../config\";\nconst { dataMillURL } = config;\n\nexport class DataMillService {\n private guid = \"HaMQ3f2C-vohn-r6xh-oR3c-Tx6BH3Xs6YBA\";\n private license = \"Cb3JV-kjeKJ-qidGc-2NNop-HcYNR\";\n\n public verifyMobilePhoneNumber = async (phonenumber: string, countrycode: string): Promise => {\n try {\n const formData = new FormData();\n formData.append(\"phonenumber\", phonenumber);\n formData.append(\"countrycode\", countrycode);\n formData.append(\"guid\", this.guid);\n formData.append(\"license\", this.license);\n const response = await axios.post(dataMillURL + \"phone/format\",\n formData);\n return response.data;\n } catch (error) {\n return error;\n }\n };\n\n public verifyEmail = async (email: string): Promise => {\n try {\n const formData = new FormData();\n formData.append(\"email\", email);\n formData.append(\"guid\", this.guid);\n formData.append(\"license\", this.license);\n const response = await axios.post(dataMillURL + \"email/domain/check\",\n formData);\n return response.data;\n } catch (error) {\n return error;\n }\n };\n}\n\n","import React from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from \"@material-ui/core\";\n\ninterface InfoDialogProps {\n open: boolean;\n text: any;\n title: string;\n setClose: any;\n}\n\nexport const InfoDialog = (props: InfoDialogProps) => {\n const [t] = useTranslation();\n const { text, title } = props;\n const handleClose = () => {\n props.setClose();\n };\n\n return (\n \n \n {title}\n \n \n {text}\n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport './ticket-user-tab.scoped.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { TicketContext } from '../../store';\nimport {\n Box,\n Button,\n Checkbox,\n FormControl,\n Grid,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n} from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport {\n KeyboardDatePicker,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\nimport EventOutlinedIcon from '@material-ui/icons/EventOutlined';\nimport moment from 'moment';\nimport 'moment/locale/de';\nimport MomentUtils from '@date-io/moment';\nimport { LangService } from '../../services/lang/lang.service';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport PhoneInput from 'react-phone-input-2';\nimport de from 'react-phone-input-2/lang/de.json';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport { dateFormat, xml2JsonConfig } from '../../statics/main';\nimport { TicketsService } from '../../services/tickets/tickets.service';\nimport { University } from '../../types/University';\nimport { parseString } from 'xml2js';\nimport ErrorBox from '../error-box/error-box';\nimport { Invoice, User } from '../../types/User';\nimport {\n letterRegex,\n matrikelNrMaxChar,\n maxChar,\n numRegex,\n} from '../../statics/validators';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { DataMillService } from '../../services/data-mill/data-mill.service';\nimport {\n calculateAge,\n handleSessionExpire,\n isSessionExpired,\n scrollToTabs,\n} from '../../helpers';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport InfoIcon from '@material-ui/icons/Info';\nimport { config } from '../../config';\nimport { InfoDialog } from '../../dialogs/confirm-dialog/info-dialog';\nimport { Ticket } from '../../types/Ticket';\nimport { TICKET } from '../../enums/ticket';\n\nexport const TicketUserTab = () => {\n const [t] = useTranslation();\n const sessionStorageService = new SessionStorageService();\n const sessionID = sessionStorageService.getData('session');\n const user: User = sessionStorageService.getData('user') || new User();\n const countryCodeStored: string =\n sessionStorageService.getData('countryCode') || '';\n const birthDateError = 'Bitte gültiges Geburtsdatum angeben!';\n const postalCodeError = 'Bitte gültige Postleitzahl angeben!';\n const {\n setActiveTab,\n activeTab,\n setKlimaTickets,\n setKlimaTicket,\n setSelectedPrice,\n ticket,\n universities,\n validFrom,\n isExtendTicket,\n setIsTicketExtended,\n setDifferentInvoiceAddress,\n differentInvoiceAddress,\n setDisability,\n handicap,\n isTabDisabled,\n isExistingOrder,\n } = React.useContext(TicketContext);\n const langService = new LangService();\n const ticketsService = new TicketsService();\n const dataMill = new DataMillService();\n const locale = langService.getCurrentLang();\n moment.locale(locale);\n const [privacy, setPrivacy] = useState(false);\n const [\n universityUploadConfirmation,\n setUniversityUploadConfirmation,\n ] = useState(false);\n const [telInputFocus, setTelInputFocus] = useState(false);\n const [customerError, setCustomerError] = useState('');\n const [studentError, setStudentError] = useState('');\n const [emailError, setEmailError] = useState('');\n const [telError, setTelError] = useState('');\n const [birthDateSemesterError, setBirthDateSemesterError] = useState('');\n const [countryCode, setCountryCode] = useState(countryCodeStored);\n const [saving, setSaving] = useState(false);\n const [modalDisabilityOpen, setModalDisabilityOpen] = useState(false);\n const [modalResearchOpen, setModalResearchOpen] = useState(false);\n\n const back = () => {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n };\n\n const next = () => {\n if (isExtendTicket) setIsTicketExtended(false);\n setActiveTab(activeTab + 1);\n scrollToTabs();\n };\n\n const resetErrors = () => {\n setCustomerError('');\n setTelError('');\n setEmailError('');\n };\n\n const handleMobilePhoneNumberStatus = (status: string) => {\n status === 'unknown'\n ? setTelError('unknown_mobile_number')\n : setTelError('invalid_mobile_number');\n };\n\n const handleEmailStatus = (status: string) => {\n status === 'unknown'\n ? setEmailError('unknown_email')\n : setEmailError('invalid_email');\n };\n\n const setCustomerData = async (values: User) => {\n resetErrors();\n const payload: any = {\n ...values,\n birthDate: moment(values.birthDate).utcOffset(0, true).toDate(),\n postalCode: Number(values.postalCode),\n sessionID,\n };\n payload.mobilephonenr = values.mobilephonenr?.includes('+')\n ? values.mobilephonenr\n : '+' + values.mobilephonenr;\n delete payload.universityId;\n delete payload.matrikelNr;\n sessionStorageService.setData('user', values);\n\n if (config.allowDataMill) {\n // Phone Number Validation\n if (countryCode) {\n const verifyMobileRes = await dataMill.verifyMobilePhoneNumber(\n values.mobilephonenr,\n countryCode\n );\n if (verifyMobileRes.valid !== '1') {\n handleMobilePhoneNumberStatus(verifyMobileRes.status);\n setSaving(false);\n return;\n }\n }\n\n // Email Validation\n const verifyEmailRes = await dataMill.verifyEmail(values.mail);\n if (verifyEmailRes.valid !== '1') {\n handleEmailStatus(verifyEmailRes.valid);\n setSaving(false);\n return;\n }\n }\n\n // Save Customer Data\n const customerRes = await ticketsService.setCustomerData(payload);\n if (customerRes.documentElement.textContent === 'false') {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) {\n setCustomerError(error);\n setSaving(false);\n }\n } else {\n // Save Student Data\n if (ticket.isSemesterWorkflow) {\n setStudentData(values);\n } else if (ticket.ticketId === TICKET.KLIMA) {\n // if user selects klmiaTickets only, then call api\n await getClimateTickets();\n next();\n } else {\n next();\n }\n }\n };\n\n const setStudentData = async (values: User) => {\n const { universityId, matrikelNr } = values;\n const studentPayload = {\n sessionID,\n universityId,\n matrikelNr,\n };\n await ticketsService.setStudentData(studentPayload);\n if (studentError && universityUploadConfirmation) {\n sessionStorageService.setData('universityUploadConfirmation', true);\n next();\n } else {\n sessionStorageService.setData('universityUploadConfirmation', false);\n checkInscription(values);\n }\n };\n\n const checkInscription = (values: User) => {\n const university: University = universities.filter(\n (uni: University) => uni.id === values.universityId\n )[0];\n if (!university.identifier) {\n sessionStorageService.setData('universityUploadConfirmation', true);\n next();\n return;\n }\n const payload = {\n sessionID,\n birthDate: values.birthDate,\n matriculationNumber: values.matrikelNr,\n firstName: values.firstname,\n lastName: values.lastname,\n postalCode: values.postalCode,\n semester: `${moment(validFrom).year()}${\n moment(validFrom).month() > 8 ? 'W' : 'S'\n }`,\n uni: university.identifier,\n };\n ticketsService\n .checkInscription(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) =>\n parseInscription(err, res)\n );\n });\n };\n\n const parseInscription = (err: Error | null, res: any) => {\n if (res) {\n const inscription =\n res['soap:Envelope']['soap:Body']['types:InscriptionServiceResult'];\n if (!inscription.isInscribed || inscription.errorDescription) {\n setSaving(false);\n if (\n inscription.errorDescription ===\n 'Fehlende Berechtigung für angegebene Bildungseinrichtung.'\n ) {\n setStudentError(\n 'Fehlende Berechtigung für angegebene Bildungseinrichtung'\n );\n } else {\n setStudentError(inscription.errorDescription);\n }\n } else {\n next();\n }\n }\n };\n\n const getClimateTickets = async () => {\n const payload = {\n age: calculateAge(customerInfoForm.values.birthDate, validFrom),\n handicap,\n sessionID,\n };\n ticketsService\n .getClimateTickets(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) =>\n parseClimateTickets(err, res)\n );\n });\n };\n\n const parseClimateTickets = (err: Error | null, res: any) => {\n if (res) {\n const climateTickets: Ticket[] =\n res['soap:Envelope']['soap:Body']['types:Ticket'] || [];\n setKlimaTickets(climateTickets);\n if (!isExistingOrder) {\n // set Regional klimaticket as default.\n setKlimaTicket(climateTickets[0]);\n // reset price.\n setSelectedPrice({});\n sessionStorageService.setData('selectedTicket', climateTickets[0]);\n }\n }\n };\n\n const handlePostalCodeChange = (event: any, fieldName: string) => {\n const postalCode = event.target.value;\n if (!postalCode || numRegex.test(postalCode)) {\n customerInfoForm.setFieldValue(fieldName, postalCode);\n }\n };\n\n const handleMatrikelNrChange = (event: any) => {\n const matrikelNr = event.target.value;\n (!matrikelNr || numRegex.test(matrikelNr)) &&\n customerInfoForm.setFieldValue('matrikelNr', matrikelNr);\n };\n\n const handleBirthDateChange = (birthDate: MaterialUiPickersDate) => {\n setBirthDateSemesterError('');\n customerInfoForm.setFieldValue('birthDate', birthDate);\n if (ticket.isSemesterWorkflow && birthDate?.isValid) {\n const age = calculateAge(birthDate, validFrom);\n age >= 26 && setBirthDateSemesterError('invalid_birth_date_semester');\n }\n };\n\n const hanldeCountryCode = (countryCode: string) => {\n sessionStorageService.setData('countryCode', countryCode);\n setCountryCode(countryCode);\n };\n\n // TICKET SELECTION FORM\n const customerInfoValidationSchema = yup.object({\n sexcode: yup.string().required(),\n salutation: yup.string().max(maxChar),\n firstname: yup.string().required().matches(letterRegex, '').max(maxChar),\n lastname: yup.string().required().matches(letterRegex, '').max(maxChar),\n address: yup\n .string()\n .required()\n .max(maxChar)\n .matches(/\\d/, 'pattern error'),\n postalCode: yup\n .string()\n .required()\n .min(4, 'too short')\n .max(4, 'too long')\n .matches(numRegex),\n city: yup.string().required().max(maxChar),\n birthDate: yup\n .date()\n .min(moment('1900-01-01').format('YYYY-MM-DD'))\n .max(moment())\n .required()\n .typeError(t('invalid_date_format')),\n mail: yup.string().required().email('invalid email'),\n mobilephonenr: yup.string().required(),\n ooevgNewsletter: yup.boolean(),\n dataTransferAccompanyingResearch: yup.boolean(),\n customerNr: yup.number(),\n universityId: ticket.isSemesterWorkflow\n ? yup.string().required()\n : yup.string(),\n matrikelNr: ticket.isSemesterWorkflow\n ? yup.string().required().matches(numRegex).max(matrikelNrMaxChar)\n : yup.string().matches(numRegex).max(matrikelNrMaxChar),\n invoiceCompanyName: differentInvoiceAddress\n ? yup.string().max(maxChar)\n : yup.string(),\n invoiceAddress: differentInvoiceAddress\n ? yup.string().required().max(maxChar).matches(/\\d/, 'pattern error')\n : yup.string(),\n invoicePostalCode: differentInvoiceAddress\n ? yup\n .string()\n .required()\n .min(4, 'too short')\n .max(4, 'too long')\n .matches(numRegex)\n : yup.string(),\n invoiceCity: differentInvoiceAddress\n ? yup.string().required().max(maxChar)\n : yup.string(),\n invoiceUid: differentInvoiceAddress\n ? yup.string().max(maxChar)\n : yup.string(),\n });\n\n const customerInfoForm = useFormik({\n initialValues: { ...user },\n validationSchema: customerInfoValidationSchema,\n enableReinitialize: true,\n onSubmit: (values) => {\n if (\n saving ||\n !customerInfoForm.isValid ||\n !privacy ||\n Boolean(birthDateSemesterError) ||\n (!universityUploadConfirmation && Boolean(studentError))\n ) {\n return;\n }\n const payload: any = { ...values };\n if (differentInvoiceAddress) {\n payload.invoiceFirstname = payload.firstname;\n payload.invoiceLastname = payload.lastname;\n payload.invoiceSalutation = payload.salutation;\n payload.invoiceSexcode = payload.sexcode;\n } else {\n Object.keys(new Invoice()).map((key: string) => delete payload[key]);\n }\n setSaving(true);\n setCustomerData(payload);\n },\n });\n\n useEffect(() => {\n if (user.birthDate) {\n handleBirthDateChange(moment(user.birthDate));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n \n \n \n \n \n \n {t('Anrede')}\n \n {t('Herr')}\n {t('Frau')}\n {t('Divers')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {Boolean(\n customerInfoForm.errors.address === 'pattern error' &&\n customerInfoForm.submitCount\n ) && (\n \n \n \n )}\n \n handlePostalCodeChange(e, 'postalCode')}\n inputProps={{ minLength: 4, maxLength: 4 }}\n error={Boolean(\n customerInfoForm.errors.postalCode &&\n customerInfoForm.submitCount\n )}\n required\n />\n \n {(customerError === postalCodeError ||\n Boolean(\n customerInfoForm.errors.postalCode === 'too short' &&\n customerInfoForm.submitCount\n )) && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n handleBirthDateChange(value)\n }\n className=\"w-100\"\n label={t('Geburtsdatum')}\n keyboardIcon={}\n invalidDateMessage={t('invalid_date_format')}\n maxDateMessage={t('invalid_birth_date')}\n minDateMessage={t('invalid_birth_date')}\n disableFuture\n required\n error={Boolean(\n (customerInfoForm.errors.birthDate &&\n customerInfoForm.values.birthDate) ||\n (!customerInfoForm.values.birthDate &&\n customerInfoForm.submitCount) ||\n customerError === birthDateError ||\n birthDateSemesterError\n )}\n />\n \n \n {customerError === birthDateError && (\n \n \n \n )}\n {birthDateSemesterError && (\n \n \n \n )}\n \n \n \n {Boolean(\n customerInfoForm.errors.mail === 'invalid email' &&\n customerInfoForm.submitCount\n ) && (\n \n \n \n )}\n {emailError && (\n \n \n \n )}\n \n \n {t('Telefonnummer')} *\n \n {\n hanldeCountryCode(data.countryCode);\n customerInfoForm.setFieldValue('mobilephonenr', value);\n }}\n inputProps={{\n name: 'phone',\n required: true,\n }}\n />\n \n {telError && (\n \n \n \n )}\n {customerInfoForm.values.customerNr ? (\n \n \n \n ) : null}\n {ticket.isSemesterWorkflow && (\n <>\n \n \n \n {t('Universität')}\n \n {\n setStudentError('');\n customerInfoForm.setFieldValue(\n 'universityId',\n event.target.value\n );\n }}\n IconComponent={ExpandMoreIcon}\n >\n {universities.map(\n (university: University, index: number) => {\n return (\n \n {university.name}\n \n );\n }\n )}\n \n \n \n \n {\n setStudentError('');\n handleMatrikelNrChange(event);\n }}\n error={Boolean(\n customerInfoForm.errors.matrikelNr &&\n customerInfoForm.submitCount\n )}\n inputProps={{ maxLength: matrikelNrMaxChar }}\n required\n />\n \n {studentError && (\n \n \n \n )}\n \n )}\n {ticket.ticketId === TICKET.KLIMA && (\n <>\n \n ) =>\n setDisability(event.target.checked)\n }\n name=\"handicap\"\n color=\"primary\"\n />\n \n {t('Ich bin mobilitätseingeschränkt')}{' '}\n setModalDisabilityOpen(true)}\n className=\"info-icon\"\n >\n \n \n setModalDisabilityOpen(false)}\n />\n \n ) =>\n setDifferentInvoiceAddress(event.target.checked)\n }\n name=\"differentInvoiceAddress\"\n color=\"primary\"\n />\n \n {t('Abweichende Rechnungsadresse')}\n \n \n \n )}\n {differentInvoiceAddress && (\n <>\n \n \n \n \n \n \n {Boolean(\n customerInfoForm.errors.invoiceAddress ===\n 'pattern error' && customerInfoForm.submitCount\n ) && (\n \n \n \n )}\n \n \n handlePostalCodeChange(e, 'invoicePostalCode')\n }\n inputProps={{ minLength: 4, maxLength: 4 }}\n error={Boolean(\n customerInfoForm.errors.invoicePostalCode &&\n customerInfoForm.submitCount\n )}\n required\n />\n \n {Boolean(\n customerInfoForm.errors.invoicePostalCode === 'too short' &&\n customerInfoForm.submitCount\n ) && (\n \n \n \n )}\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n ) =>\n setPrivacy(event.target.checked)\n }\n name=\"privacy\"\n color=\"primary\"\n className={\n !privacy && customerInfoForm.submitCount\n ? 'checkbox-required'\n : ''\n }\n />\n \n {t(\n 'Ich bin mit der Speicherung der angegebenen Inhalten einverstanden und bestätige, dass ich die'\n )}{' '}\n \n {t('Datenschutzerklärung')}\n {' '}\n {t('gelesen und zur Kenntnis genommen habe')}.\n \n \n\n \n \n \n {t(\n 'Hiermit erkläre ich bis auf Widerruf mein Einverständnis, von der OÖ Verkehrsverbund Organisations GmbH Nfg'\n )}{' '}\n & Co KG {t('weitere Informationen zu erhalten')}.\n \n \n\n \n \n \n {t(\n 'Ich möchte an der wissenschaftlichen Begleitstudie zum KlimaTicket teilnehmen'\n )}{' '}\n setModalResearchOpen(true)}\n className=\"info-icon\"\n >\n \n \n \n \n www.infas.at/klimaticket\n \n \n }\n setClose={() => setModalResearchOpen(false)}\n />\n {studentError && (\n \n ) =>\n setUniversityUploadConfirmation(event.target.checked)\n }\n name=\"universityUploadConfirmation\"\n color=\"primary\"\n className={\n !universityUploadConfirmation &&\n customerInfoForm.submitCount\n ? 'checkbox-required'\n : ''\n }\n />\n \n {t(\n 'Meine Daten sind korrekt, ich lade im nächsten Schritt meine Inskriptionsbestätigung hoch'\n )}\n \n \n )}\n {Boolean(\n (!customerInfoForm.isValid ||\n !privacy ||\n (studentError && !universityUploadConfirmation)) &&\n customerInfoForm.submitCount\n ) && (\n \n \n \n )}\n {customerError &&\n customerError !== postalCodeError &&\n customerError !== birthDateError && (\n \n \n \n )}\n \n \n \n \n {isExtendTicket && (\n \n \n {t('Bitte überprüfen Sie die Eingaben')}\n \n \n )}\n \n \n \n {!isTabDisabled && (\n \n {t('Schritt zurück')}\n \n )}\n \n \n \n {saving ? : t('Weiter')}\n \n \n \n \n \n \n
\n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport './image-crop.scoped.scss';\nimport Cropper from 'react-cropper';\nimport { Box, Button } from '@material-ui/core';\nimport ZoomInIcon from '@material-ui/icons/ZoomIn';\nimport ZoomOutIcon from '@material-ui/icons/ZoomOut';\nimport Rotate90DegreesCcwIcon from '@material-ui/icons/Rotate90DegreesCcw';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { TicketContext } from '../../store';\nimport { TICKET } from '../../enums/ticket';\n\ninterface ImageCropProps {\n image: string | undefined;\n onCrop: any;\n crop: boolean;\n imageCropCanvasData?: any;\n isSaving: boolean;\n}\n\ninterface ImageCropCanvasData {\n canvasData: any;\n cropBoxData: any;\n}\n\nexport const ImageCrop = (props: ImageCropProps) => {\n const { image, onCrop, isSaving } = props;\n const { ticket } = React.useContext(TicketContext);\n const [t] = useTranslation();\n const cropperRef = useRef(null);\n const [cropper, setCropper] = useState();\n const sessionStorageService = new SessionStorageService();\n\n const getCropData = () => {\n const imageElement: any = cropperRef.current;\n const cropperElement: any = imageElement.cropper;\n if (cropperElement && ticket.ticketId !== TICKET.KLIMA) {\n const croppedCanvas = cropperElement.getCroppedCanvas({\n imageSmoothingEnabled: true,\n imageSmoothingQuality: 'high',\n width: 120,\n height: 160,\n });\n const url = croppedCanvas && croppedCanvas.toDataURL();\n onCrop(url);\n }\n if (cropperElement && ticket.ticketId === TICKET.KLIMA) {\n const croppedCanvas = cropperElement.getCroppedCanvas({\n imageSmoothingEnabled: true,\n imageSmoothingQuality: 'high',\n width: 300,\n });\n // Round\n const roundedCanvas = getRoundedCanvas(croppedCanvas);\n const url = roundedCanvas && roundedCanvas.toDataURL();\n onCrop(url);\n }\n };\n\n const saveImageCropCanvasData = (event: Cropper.CropEvent) => {\n const imageElement: any = cropperRef.current;\n const cropperElement: any = imageElement.cropper;\n if (cropperElement) {\n const imageCropCanvasData: ImageCropCanvasData = {\n canvasData: cropperElement.getCanvasData(),\n cropBoxData: cropperElement.getCropBoxData(),\n };\n sessionStorageService.setData('imageCropCanvasData', imageCropCanvasData);\n }\n };\n\n const getRoundedCanvas = (sourceCanvas: any) => {\n const canvas = document.createElement('canvas');\n const context: any = canvas.getContext('2d');\n const width = sourceCanvas.width;\n const height = sourceCanvas.height;\n canvas.width = width;\n canvas.height = height;\n context.imageSmoothingEnabled = true;\n context.drawImage(sourceCanvas, 0, 0, width, height);\n context.globalCompositeOperation = 'destination-in';\n context.beginPath();\n context.arc(\n width / 2,\n height / 2,\n Math.min(width, height) / 2,\n 0,\n 2 * Math.PI,\n true\n );\n context.fill();\n return canvas;\n };\n\n useEffect(() => {\n if (props.crop) {\n getCropData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.crop]);\n\n useEffect(() => {\n if (\n cropper &&\n props.imageCropCanvasData &&\n props.imageCropCanvasData.canvasData &&\n props.imageCropCanvasData.cropBoxData\n ) {\n setTimeout(() => {\n cropper.setCanvasData(props.imageCropCanvasData.canvasData);\n cropper.setCropBoxData(props.imageCropCanvasData.cropBoxData);\n }, 100);\n }\n if (cropper && props.imageCropCanvasData === undefined) {\n setTimeout(() => {\n reset();\n }, 0);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cropper, props.imageCropCanvasData]);\n\n const zoomIn = () => {\n if (cropper) {\n cropper.zoom(0.1);\n }\n };\n\n const zoomOut = () => {\n if (cropper) {\n cropper.zoom(-0.1);\n }\n };\n\n const moveRight = () => {\n if (cropper) {\n cropper.move(10, 0);\n }\n };\n\n const moveLeft = () => {\n if (cropper) {\n cropper.move(-10, 0);\n }\n };\n\n const moveUp = () => {\n if (cropper) {\n cropper.move(0, -10);\n }\n };\n\n const moveDown = () => {\n if (cropper) {\n cropper.move(0, 10);\n }\n };\n\n const rotate = () => {\n if (cropper) {\n cropper.rotate(-90);\n }\n };\n\n const reset = () => {\n if (cropper) {\n cropper.reset();\n }\n };\n\n return (\n <>\n \n {image && (\n {\n setCropper(instance);\n }}\n />\n )}\n {!image && (\n \n

\n {t('Bild hierher ziehen und ablegen')}\n

\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useCallback } from \"react\";\nimport \"./files-drop-zone.component.scoped.scss\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDropzone } from \"react-dropzone\";\nimport { fileTypes } from \"../../statics/main\";\n\nconst FilesDropZone = (props: any) => {\n const [t] = useTranslation();\n const onDrop = useCallback((acceptedFiles) => {\n props.onDropFiles(acceptedFiles);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const { getRootProps, isDragActive } = useDropzone({\n onDrop,\n accept: fileTypes,\n multiple: false,\n maxFiles: 1\n });\n\n return (\n
\n {isDragActive && !props.isSaving ? (\n
\n

{t(\"Die Datei zum Hochladen freigeben\")}

\n
\n ) : null}\n {props.children}\n
\n );\n};\n\nexport default FilesDropZone;\n","import React, { useEffect, useRef, useState } from 'react';\nimport './ticket-upload-tab.scoped.scss';\nimport { useTranslation } from 'react-i18next';\nimport { TicketContext } from '../../store';\nimport { Box, Button, Divider, Grid } from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ImageCrop } from '../image-crop/image-crop';\nimport { setTimeout } from 'timers';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { TicketsService } from '../../services/tickets/tickets.service';\nimport FilesDropZone from '../files-drop-zone/files-drop-zone.component';\nimport { fileTypes, maxFileSize } from '../../statics/main';\nimport ErrorBox from '../error-box/error-box';\nimport { Certification } from '../../types/Certification';\nimport { CustomerImage } from '../../types/CustomerImage';\nimport {\n handleSessionExpire,\n isSessionExpired,\n scrollToTabs,\n} from '../../helpers';\n\nexport const TicketUploadTab = () => {\n const [t] = useTranslation();\n const sessionStorageService = new SessionStorageService();\n const sessionID = sessionStorageService.getData('session');\n const ticketsService = new TicketsService();\n const {\n setActiveTab,\n activeTab,\n ticket,\n setOriginalUserImg,\n setCertification1Info,\n setCertification2Info,\n setCustomerImageInfo,\n customerImageInfo,\n certification1Info,\n certification2Info,\n originalUserImg,\n isExistingOrder,\n } = React.useContext(TicketContext);\n const [imageCropCanvasData, setImageCropCanvasData] = useState(\n sessionStorageService.getData('imageCropCanvasData') || undefined\n );\n const croppedImage = sessionStorageService.getData('croppedImage');\n const [image, setImage] = useState(originalUserImg);\n const [crop, setCrop] = useState(false);\n const [customerImage, setCustomerImage] = useState({\n ...customerImageInfo,\n });\n const [certification1, setCertification1] = useState({\n ...certification1Info,\n });\n const [certification2, setCertification2] = useState({\n ...certification2Info,\n });\n const [saving, setSaving] = useState(false);\n const [uploadError, setUploadError] = useState('');\n const [droppedFiles, setdroppedFiles] = useState([]);\n const inputUserImgRef = useRef(null);\n const inputCertification1Ref = useRef(null);\n const inputCertification2Ref = useRef(null);\n const universityUploadConfirmation = sessionStorageService.getData(\n 'universityUploadConfirmation'\n );\n\n const getFileExtension = (type: string): string => {\n switch (type) {\n case 'image/bmp':\n return 'bmp';\n case 'image/jpeg':\n return 'jpg';\n case 'image/jpg':\n return 'jpg';\n case 'image/png':\n return 'png';\n case 'application/pdf':\n return 'pdf';\n default:\n return '';\n }\n };\n\n const validateImageType = async (file: File) => {\n const fileExtension = getFileExtension(file.type);\n const newCustomerImage = {\n ...customerImage,\n fileExtension,\n name: file.name,\n error: '',\n };\n if (file.size > maxFileSize) {\n newCustomerImage.error = 'invalid_file_size';\n setImage(undefined);\n } else if (!fileExtension || fileExtension === 'pdf') {\n newCustomerImage.error = 'invalid_image_format';\n setImage(undefined);\n } else {\n const reader = new FileReader();\n reader.onload = () => {\n sessionStorageService.removeData('imageCropCanvasData');\n setImageCropCanvasData(undefined);\n setImage(reader.result as any);\n setOriginalUserImg(reader.result as any);\n setCustomerImageInfo({ ...newCustomerImage });\n };\n reader.readAsDataURL(file);\n }\n setCustomerImage({ ...newCustomerImage });\n };\n\n const validateCertificateType = async (file: File, uploadType: string) => {\n const extension = getFileExtension(file.type);\n const certificateObj =\n uploadType === 'certification1'\n ? { ...certification1 }\n : { ...certification2 };\n const certificate: Certification = {\n ...certificateObj,\n extension,\n error: '',\n name: file.name,\n };\n if (file.size > maxFileSize) {\n certificate.error = 'invalid_file_size';\n uploadType === 'certification1'\n ? setCertification1(certificate)\n : setCertification2(certificate);\n } else if (!extension) {\n certificate.error = 'invalid_file_format';\n uploadType === 'certification1'\n ? setCertification1(certificate)\n : setCertification2(certificate);\n } else {\n const reader = new FileReader();\n reader.onload = () => {\n const cert = {\n ...certificate,\n certificationContent: reader.result as any,\n };\n if (uploadType === 'certification1') {\n setCertification1({ ...cert });\n setCertification1Info({ ...cert });\n } else {\n setCertification2({ ...cert });\n setCertification2Info({ ...cert });\n }\n };\n reader.readAsDataURL(file);\n }\n };\n\n const resetInputs = () => {\n try {\n if (inputUserImgRef && inputUserImgRef.current) {\n (inputUserImgRef.current as any).value = '';\n }\n if (inputCertification1Ref && inputCertification1Ref.current) {\n (inputCertification1Ref.current as any).value = '';\n }\n if (inputCertification2Ref && inputCertification2Ref.current) {\n (inputCertification2Ref.current as any).value = '';\n }\n } catch {\n return;\n }\n };\n\n const handleFileUpload = (e: any, uploadType: string) => {\n e.preventDefault();\n let files: File[] = [];\n if (e.dataTransfer) {\n files = e.dataTransfer.files;\n } else if (e.target) {\n files = e.target.files;\n }\n if (uploadType === 'customerImage') {\n validateImageType(files[0]);\n } else {\n validateCertificateType(files[0], uploadType);\n }\n resetInputs();\n };\n\n const clickUpload = (uploadType: string) => {\n let element: any;\n if (uploadType === 'customerImage') {\n element = inputUserImgRef.current;\n } else if (uploadType === 'certification1') {\n element = inputCertification1Ref.current;\n } else if (uploadType === 'certification2') {\n element = inputCertification2Ref.current;\n }\n element && element.click();\n };\n\n const getErrorText = async () => {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) setUploadError(error);\n };\n\n const upload = async (imageStream: any) => {\n setUploadError('');\n console.log('Uploading Image...');\n setCustomerImage({ ...customerImage, imageStream });\n setCustomerImageInfo({ ...customerImage, imageStream });\n const payload = {\n sessionID,\n imageStream: imageStream.replace(/^[^,]*,/, ''),\n fileExtension: customerImage.fileExtension.toUpperCase(),\n };\n const res = await ticketsService.uploadCustomerImage(payload);\n setSaving(false);\n if (res.documentElement.textContent === 'false') {\n getErrorText();\n console.log(`Upload Image Failed`);\n } else {\n console.log('Upload Image Complete');\n next();\n }\n };\n\n const uploadExistingImageFromExistingOrder = async () => {\n setUploadError('');\n console.log('Uploading Image...');\n const imageStream = croppedImage;\n const fileExtension = sessionStorageService.getData('fileExtension');\n setCustomerImage({ ...customerImage, imageStream, fileExtension });\n setCustomerImageInfo({ ...customerImage, imageStream, fileExtension });\n const payload = {\n sessionID,\n imageStream: imageStream.replace(/^[^,]*,/, ''),\n fileExtension: 'PNG',\n };\n const res = await ticketsService.uploadCustomerImage(payload);\n setSaving(false);\n if (res.documentElement.textContent === 'false') {\n getErrorText();\n console.log(`Upload Image Failed`);\n } else {\n console.log('Upload Image Complete');\n next();\n }\n };\n\n const submit = () => {\n let isMissingFile = false;\n // if it's existing order\n if (\n isExistingOrder &&\n !image &&\n !certification1.certificationContent &&\n !certification2.certificationContent\n ) {\n uploadExistingImageFromExistingOrder();\n } else {\n if (!image) {\n setCustomerImage({\n ...customerImage,\n error: 'complete_required_fields',\n });\n isMissingFile = true;\n }\n if (!isExistingOrder && ticket.isSemesterWorkflow && !certification1.certificationContent) {\n setCertification1({\n ...certification1,\n error: 'complete_required_fields',\n });\n isMissingFile = true;\n }\n if (\n !isExistingOrder &&\n ticket.isSemesterWorkflow &&\n universityUploadConfirmation &&\n !certification2.certificationContent\n ) {\n setCertification2({\n ...certification2,\n error: 'complete_required_fields',\n });\n isMissingFile = true;\n }\n }\n if (isMissingFile || saving) return;\n // on crop trigger true, upload() will be called;\n if (image) {\n setCrop(true);\n setTimeout(() => {\n setCrop(false);\n }, 100);\n }\n setSaving(true);\n };\n\n const back = () => {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n };\n\n const next = () => {\n setActiveTab(activeTab + 1);\n scrollToTabs();\n };\n\n useEffect(() => {\n if (!saving && droppedFiles && droppedFiles.length) {\n validateImageType(droppedFiles[0]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [droppedFiles]);\n\n return (\n
\n \n \n \n \n {t('Ausweisbild')}\n \n \n {t('Laden Sie ein aktuelles Foto von Ihnen hoch')}. {t('ACHTUNG')}\n : {t('nur')} BMP, JPG {t('und')} PNG Format {t('möglich')}.{' '}\n {t('Die maximale Größe des Bildes ist')} 5MB.\n \n \n {t(\n 'Um Probleme bei Fahrscheinkontrollen vorzubeugen, wählen Sie bitte ein Foto mit ausreichender Qualität, auf dem Ihr Gesicht gut erkennbar ist.'\n )}\n \n \n {t('Ausweisbild')} *\n \n \n (min. 50 KB, max. 5MB)\n \n \n \n handleFileUpload(event, 'customerImage')\n }\n type=\"file\"\n style={{ display: 'none' }}\n accept={fileTypes}\n />\n clickUpload('customerImage')}\n className=\"btn-theme btn-submit\"\n variant=\"outlined\"\n color=\"secondary\"\n disabled={saving}\n id=\"03-10\"\n >\n \n {t('DATEI AUSWÄHLEN')}\n \n \n {customerImage.name && (\n \n {' '}\n {customerImage.name}\n \n )}\n {customerImage.error && (\n \n \n \n )}\n \n \n \n \n \n\n \n \n \n \n \n \n {ticket.isSemesterWorkflow && (\n \n \n \n )}\n \n\n {ticket.isSemesterWorkflow && (\n \n \n \n {t('Bestätigungen')}\n \n \n {t('Laden Sie die notwendigen Bestätigungen hoch')}.{' '}\n {t('Die maximale Größe ist')} 5MB.\n \n \n {t('Meldezettel')} *\n \n \n \n handleFileUpload(event, 'certification1')\n }\n type=\"file\"\n style={{ display: 'none' }}\n accept={fileTypes + ',application/pdf'}\n />\n clickUpload('certification1')}\n className=\"btn-theme btn-submit\"\n variant=\"outlined\"\n color=\"secondary\"\n disabled={saving}\n id=\"03-20\"\n >\n \n {t('DATEI AUSWÄHLEN')}\n \n \n {certification1.name && (\n \n {' '}\n {certification1.name}\n \n )}\n {certification1.error && (\n \n \n \n )}\n {universityUploadConfirmation && (\n \n \n {t('Inskriptionsbestätigung')} *\n \n \n {t('für das betreffende Semester')}\n \n \n \n handleFileUpload(event, 'certification2')\n }\n type=\"file\"\n style={{ display: 'none' }}\n accept={fileTypes + ',application/pdf'}\n />\n clickUpload('certification2')}\n className=\"btn-theme btn-submit\"\n variant=\"outlined\"\n color=\"secondary\"\n disabled={saving}\n id=\"03-30\"\n >\n \n {t('DATEI AUSWÄHLEN')}\n \n \n {certification2.name && (\n \n {' '}\n {certification2.name}\n \n )}\n {certification2.error && (\n \n \n \n )}\n \n )}\n \n \n )}\n \n\n \n \n {uploadError && (\n \n \n \n )}\n \n \n \n {t('Schritt zurück')}\n \n \n \n \n {saving ? : t('Weiter')}\n \n \n \n \n \n
\n );\n};\n","import React from \"react\";\nimport \"./route-box.scoped.scss\";\nimport { Box } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\nimport { Route } from \"../../types/Route\";\nimport { PriceInfo } from \"../../types/PriceInfo\";\nimport { formatCurrency } from \"../../helpers\";\n\ninterface RouteBoxProps {\n route: Route;\n active?: boolean;\n disabled?: boolean;\n price: PriceInfo;\n}\n\nexport default function RouteBox(props: RouteBoxProps) {\n const [t] = useTranslation();\n const { route, active, disabled, price } = props;\n\n return (\n \n \n {route.routeDescription && via {route.routeDescription}}\n
{route.startZone} - {route.endZone}
\n
{t(\"Anzahl Zonen\")}: {route.zoneCount}
\n
{t(\"Ticket Preis\")}: {formatCurrency(price?.priceCardWithoutCZ)}
\n
\n
\n );\n}","import React, { useEffect, useState } from \"react\";\nimport \"./track-stages.scoped.scss\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box, TextField } from \"@material-ui/core\";\nimport { TicketsService } from \"../../services/tickets/tickets.service\";\nimport { xml2JsonConfig } from \"../../statics/main\";\nimport { parseString } from \"xml2js\";\nimport { Stage } from \"../../types/Stage\";\nimport { Autocomplete } from \"@material-ui/lab\";\nimport { SessionStorageService } from \"../../services/session-storage/session-storage\";\n\ninterface TrackStagesProps {\n label: string;\n name: string;\n required?: boolean;\n stage: Stage;\n disabled?: boolean;\n error?: boolean;\n onStageChange: (stage: Stage | null) => void;\n}\n\nexport const TrackStages = (props: TrackStagesProps) => {\n const [t] = useTranslation();\n const { label, name, required, stage, onStageChange, disabled, error } = props;\n const ticketsService = new TicketsService();\n const sessionStorageService = new SessionStorageService();\n const sessionID = sessionStorageService.getData(\"session\");\n const [stages, setStages] = useState([]);\n const [value, setValue] = React.useState(\n stage.stageName ? stage : null\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const getStages = async (filter = \"\") => {\n setLoading(true);\n ticketsService\n .getStages({ sessionID, filter })\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) =>\n parseStages(err, res)\n );\n })\n .fail(function (jqXHR: any, textStatus: string, errorThrown: Error) {\n setLoading(false);\n });\n };\n\n const parseStages = (err: Error | null, res: any) => {\n if (res) {\n const stages: any =\n res[\"soap:Envelope\"][\"soap:Body\"][\"types:Stage\"] || [];\n Array.isArray(stages) ? setStages(stages) : setStages([stages]);\n setLoading(false);\n }\n };\n\n const handleInputChange = (query: string) => {\n setInputValue(query);\n };\n\n const handleOnChange = (newValue: Stage | null) => {\n setValue(newValue);\n onStageChange(newValue);\n };\n\n useEffect(() => {\n if (inputValue.length > 2) {\n getStages(inputValue);\n } else {\n setStages([]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n\n return (\n <>\n {\n handleInputChange(newInputValue);\n }}\n getOptionLabel={(option: Stage) => option.stageName}\n getOptionSelected={(option: Stage, value: Stage) =>\n option.stageName === value.stageName\n }\n value={value}\n onChange={(event: any, newValue: Stage | null) => {\n handleOnChange(newValue);\n }}\n loading={loading}\n style={{ width: \"100%\" }}\n noOptionsText={t(\"no_options\")}\n loadingText={t(\"loading_options\")}\n disabled={disabled}\n renderInput={(params) => (\n \n )}\n />\n \n min. 3 {t(\"Zeichen\")}\n \n \n );\n};\n","export class Stage {\n stageName = \"\";\n stageNr = 0;\n zoneNr = 0;\n}","import { Stage } from \"./Stage\";\n\nexport class RouteStages {\n fromStage = new Stage();\n toStage = new Stage();\n viaStage = new Stage();\n}","import React, { useEffect, useState } from 'react';\nimport './ticket-track-tab.scoped.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { TicketContext } from '../../store';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n Grid,\n Radio,\n RadioGroup,\n} from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport moment from 'moment';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport RouteBox from '../route-box/route-box';\nimport ErrorBox from '../error-box/error-box';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { TicketsService } from '../../services/tickets/tickets.service';\nimport { TrackStages } from '../track-stages/track-stages';\nimport { Stage } from '../../types/Stage';\nimport { parseString } from 'xml2js';\nimport { xml2JsonConfig } from '../../statics/main';\nimport { PathDetails } from '../../types/PathDetails';\nimport { Route } from '../../types/Route';\nimport { PriceInfo } from '../../types/PriceInfo';\nimport { Certification } from '../../types/Certification';\nimport { RouteStages } from '../../types/RouteStages';\nimport { CoreZone } from '../../types/CoreZone';\nimport {\n formatCurrency,\n handleSessionExpire,\n isSessionExpired,\n scrollToTabs,\n} from '../../helpers';\nimport { LangService } from '../../services/lang/lang.service';\nimport { TICKET } from '../../enums/ticket';\n\nexport const TicketTrackTab = () => {\n const [t] = useTranslation();\n const ticketsService = new TicketsService();\n const sessionStorageService = new SessionStorageService();\n const sessionID = sessionStorageService.getData('session');\n const {\n setActiveTab,\n activeTab,\n validFrom,\n ticket,\n certification1Info,\n certification2Info,\n setSelectedRoute,\n selectedRoute,\n setSelectedPrice,\n selectedPrice,\n setSelectedCoreZone,\n selectedCoreZone,\n } = React.useContext(TicketContext);\n\n const langService: LangService = new LangService();\n const lang = langService.getCurrentLang();\n const coreZonesLink = `https://www.ooevv.at/?seite=zonenplan&sprache=${lang.toUpperCase()}`;\n\n const routeStagesStored: RouteStages =\n sessionStorageService.getData('routeStages') || new RouteStages();\n\n const universityUploadConfirmation = sessionStorageService.getData(\n 'universityUploadConfirmation'\n );\n\n const [routeStages, setRouteStages] = useState(\n routeStagesStored\n );\n\n const [possiblePathes, setPossiblePathes] = useState({} as any);\n\n // used for loading on submit buttom\n const [possiblePathesLoading, setPossiblePathesLoading] = useState(false);\n\n // used for show a warning msg when no routes found.\n const [possiblePathesLoaded, setPossiblePathesLoaded] = useState(false);\n \n // used for show a warning msg when no routes found.\n const [possiblePathesError, setPossiblePathesError] = useState(\"\");\n\n // used for show required error msg on stages\n const [submitStageForm, setSubmitStageForm] = useState(false);\n\n // Used for disable submit buttom (if there are stored data in the session).\n const [\n possiblePathesLoadingSilent,\n setPossiblePathesLoadingSilent,\n ] = useState(false);\n\n const [ticketPrices, setTicketPrices] = useState([]);\n const [routeError, setRouteError] = useState('');\n const [saving, setSaving] = useState(false);\n\n // used for show hint that klima ticket is cheaper\n const [\n isPriceHigherThanKlimaPrice,\n setIsPriceHigherThanKlimaPrice,\n ] = useState(false);\n\n const onStageChange = (stageType: string, stage: Stage | null) => {\n const routeStagesCopy: any = { ...routeStages };\n routeStagesCopy[stageType] = stage ? stage : new Stage();\n setRouteStages({ ...routeStagesCopy });\n sessionStorageService.setData('routeStages', { ...routeStagesCopy });\n };\n\n const getPossiblePathes = async (reset: boolean) => {\n setPossiblePathesLoading(true);\n const payload: any = {\n validFrom: moment(validFrom).utcOffset(0, true).toDate(),\n sessionID,\n fromStageNr: routeStages.fromStage.stageNr,\n toStageNr: routeStages.toStage.stageNr,\n // pass 0 if there is no Via\n viaStage: routeStages.viaStage.stageNr,\n };\n ticketsService\n .getPossiblePathes(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) =>\n parsePossiblePathes(err, res, reset)\n );\n }).fail(function (jqXHR: any, textStatus: string, errorThrown: Error) {\n setPossiblePathesLoadingSilent(false);\n setPossiblePathesLoading(false);\n setPossiblePathesError(\"possible_pathes_error\");\n });\n };\n\n const parsePossiblePathes = (err: Error | null, res: any, reset: boolean) => {\n if (res) {\n const priceInfo: PriceInfo[] =\n res['soap:Envelope']['soap:Body']['types:PriceInfo'] || [];\n const route = res['soap:Envelope']['soap:Body']['types:Route'] || [];\n const routeDetails =\n res['soap:Envelope']['soap:Body']['types:RouteDetails'] || [];\n const pathDetails = {\n priceInfo,\n routeDetails: Array.isArray(routeDetails)\n ? routeDetails\n : [routeDetails],\n route: Array.isArray(route) ? route : [route],\n };\n const prices: PriceInfo[] = getTicketPrices(priceInfo);\n const isPriceHigh = prices && prices.length &&\n ((ticket.ticketname.includes(\"Jahreskarte\") &&\n prices.every(\n (price: PriceInfo) => price.priceCardWithoutCZ >= 365 * 100\n )) ||\n (ticket.ticketname.includes(\"Semesterkarte\") &&\n prices.every(\n (price: PriceInfo) => price.priceCardWithoutCZ >= 274 * 100\n )));\n setIsPriceHigherThanKlimaPrice(isPriceHigh);\n prices && !isPriceHigh\n ? setPossiblePathes(pathDetails)\n : setPossiblePathes({} as any);\n setPossiblePathesLoading(false);\n setPossiblePathesLoadingSilent(false);\n setPossiblePathesLoaded(true);\n if (reset) {\n resetRoute();\n }\n } else {\n setPossiblePathesError(\"possible_pathes_error\");\n }\n };\n\n const getTicketPrices = (priceInfo: PriceInfo[]): PriceInfo[] => {\n const prices: PriceInfo[] = priceInfo.filter(\n (price: PriceInfo) => price.ticketCode === ticket.ticketCode\n );\n setTicketPrices(prices);\n return prices;\n };\n\n const confirmRouteStages = (reset = false) => {\n setSubmitStageForm(true);\n setPossiblePathesLoaded(false);\n setPossiblePathesError('');\n if (\n possiblePathesLoading ||\n !routeStages.fromStage.stageName ||\n !routeStages.toStage.stageName ||\n saving\n ) {\n return;\n }\n getPossiblePathes(reset);\n };\n\n const resetRoute = () => {\n setRouteError('');\n setPossiblePathesError('');\n setSelectedRoute({} as Route);\n setSelectedPrice({} as PriceInfo);\n resetCoreZone();\n };\n\n const onRouteChange = (route: Route, index: number) => {\n if (!saving && route.routeId !== selectedRoute.routeId) {\n setRouteError('');\n setSelectedRoute(route);\n setSelectedPrice(ticketPrices[index]);\n resetCoreZone();\n }\n };\n\n const back = () => {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n };\n\n const next = () => {\n setSaving(false);\n setActiveTab(activeTab + 1);\n scrollToTabs();\n };\n\n const uploadCertification = async (\n certificate: Certification,\n id: number\n ) => {\n console.log(`Uploading Certificate ${id}...`);\n const payload = {\n sessionID,\n certificationContent: certificate.certificationContent.replace(\n /^[^,]*,/,\n ''\n ),\n extension: certificate.extension.toUpperCase(),\n id,\n };\n const res = await ticketsService.uploadCertification(payload);\n if (res.documentElement.textContent === 'false') {\n setSaving(false);\n console.log(`Upload Certificate ${id} Failed`);\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n console.log(error);\n } else {\n console.log(`Upload Certificate ${id} Complete`);\n }\n return res;\n };\n\n const handleUploadCertifications = async () => {\n if (ticket.isSemesterWorkflow && certification1Info.certificationContent) {\n // const id = ticket.cert1Id;\n const uploadCertification1Res = await uploadCertification(\n certification1Info,\n 1\n );\n if (\n uploadCertification1Res.documentElement.textContent === 'true' &&\n universityUploadConfirmation &&\n certification2Info.certificationContent\n ) {\n // const id = ticket.cert2Id;\n const uploadCertification2Res = await uploadCertification(\n certification2Info,\n 2\n );\n if (uploadCertification2Res.documentElement.textContent === 'true') {\n next();\n }\n }\n } else {\n next();\n }\n };\n\n const setCardData = async (cz: CoreZone) => {\n setRouteError('');\n const payload = {\n sessionID,\n routeId: selectedRoute.routeId,\n ticketId: ticket.ticketId,\n priceInfoId: selectedPrice.priceInfoId,\n czFrom: cz.czFrom === 'ja' ? true : false,\n czTo: cz.czTo === 'ja' ? true : false,\n };\n setSaving(true);\n const res = await ticketsService.setCardData(payload);\n if (res.documentElement.textContent === 'false') {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) {\n setRouteError(error);\n setSaving(false);\n }\n } else {\n handleUploadCertifications();\n }\n };\n\n const validationSchema = yup.object({\n czFrom: yup.string(),\n czTo: yup.string(),\n });\n\n const ticketRouteForm = useFormik({\n initialValues: {\n czFrom: selectedCoreZone.czFrom,\n czTo: selectedCoreZone.czTo,\n },\n validationSchema,\n onSubmit: (values) => {\n if (saving) return;\n setCardData(values);\n },\n });\n\n const resetCoreZone = () => {\n ticketRouteForm.setFieldValue('czFrom', '');\n ticketRouteForm.setFieldValue('czTo', '');\n setSelectedCoreZone(new CoreZone());\n };\n\n const selectKlimaticket = () => {\n const ticketForm = {\n ticketId: TICKET.KLIMA,\n ticketValidFromDate: null,\n };\n sessionStorageService.setData(\"ticketForm\", ticketForm);\n setActiveTab(0);\n scrollToTabs();\n };\n\n useEffect(() => {\n if (\n routeStagesStored.toStage.stageName &&\n routeStagesStored.fromStage.stageName\n ) {\n setPossiblePathesLoadingSilent(true);\n confirmRouteStages();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n
\n \n \n \n \n 1. {t('Streckendaten')}\n \n \n {t('Geben Sie ihre Einstiegs- und Ausstiegshaltestelle ein')}.\n \n \n \n onStageChange('fromStage', stage)\n }\n disabled={saving}\n error={!routeStages.fromStage.stageName && submitStageForm}\n />\n \n \n \n onStageChange('toStage', stage)\n }\n disabled={saving}\n error={!routeStages.toStage.stageName && submitStageForm}\n />\n \n \n \n onStageChange('viaStage', stage)\n }\n disabled={saving}\n />\n \n {Boolean(\n (!routeStages.fromStage.stageName ||\n !routeStages.toStage.stageName) &&\n submitStageForm\n ) && (\n \n \n \n )}\n \n \n {possiblePathesLoading && !possiblePathesLoadingSilent ? (\n \n ) : (\n t('bestätigen')\n )}\n \n \n \n \n \n \n \n \n \n \n 2. {t('Routenauswahl')}\n \n {isPriceHigherThanKlimaPrice ? (\n \n {ticket.ticketname.includes(\"Jahreskarte\") && (\n \n Für diese Fahrtstrecke ist das KlimaTicket OÖ Regional | Classic um € 365 das günstigste Ticket.
Klicken Sie HIER um den Bestellvorgang für das KlimaTicket OÖ zu starten.\n \n }\n >\n )}\n {ticket.ticketname.includes(\"Semesterkarte\") && (\n \n Für diese Fahrtstrecke ist das KlimaTicket OÖ Regional | Junior um € 274 das günstigste Ticket.
Klicken Sie HIER um den Bestellvorgang für das KlimaTicket OÖ zu starten.\n \n }\n >\n )}\n
\n ) : possiblePathes.route && possiblePathes.route.length ? (\n \n {t('Bitte geben Sie ihre gewünschte Fahrstrecke an')}\n \n ) : possiblePathesError ? (\n \n \n \n ) : possiblePathesLoaded ? (\n \n \n \n ) : (\n \n {t(\n 'Bitte geben Sie zuerst Ihre Streckendaten an, bevor Sie die gewünschte Fahrstrecke auswählen'\n )}\n \n )}\n {possiblePathes.route && (\n \n {possiblePathes.route.map((route: Route, index: number) => {\n return (\n onRouteChange(route, index)}\n >\n index\n ? ticketPrices[index]\n : ({} as PriceInfo)\n }\n active={route.routeId === selectedRoute.routeId}\n disabled={saving}\n />\n \n );\n })}\n \n )}\n \n \n \n \n
\n \n \n \n 3. {t('Kernzone')}\n \n {!possiblePathes.route && (\n \n {t(\n 'Bitte geben Sie zuerst Streckendaten und Route an, bevor Sie die Kernzonen auswählen'\n )}\n \n )}\n {possiblePathes.route && !selectedRoute.routeId && (\n \n {t(\n 'Bitte geben Sie zuerst die Route an, bevor Sie die Kernzonen auswählen'\n )}\n \n )}\n {possiblePathes.route &&\n selectedRoute.routeId &&\n (selectedRoute.isCZFromPossible ||\n selectedRoute.isCZToPossible) && (\n \n {t(\n 'Folgende kostenpflichtige Kernzonen wurden erkannt Diese sind für den Umstieg in der Kernzone erforderlich'\n )}\n \n )}\n {possiblePathes.route &&\n selectedRoute.routeId &&\n !(\n selectedRoute.isCZFromPossible || selectedRoute.isCZToPossible\n ) && (\n \n {t(\n 'Für die Streckenauswahl haben wir keine kostenpflichtigen Kernzonen erkannt'\n )}\n \n )}\n {possiblePathes.route && selectedRoute.routeId && (\n <>\n {selectedRoute.isCZFromPossible && (\n \n \n {t('Benötigen Sie ein Kernzonenticket für')}{' '}\n {selectedRoute.startZone}? (\n {formatCurrency(selectedPrice.priceCZFrom)}{' '}\n {t('Aufpreis')})\n \n \n \n ,\n czFrom: string\n ) => {\n ticketRouteForm.setFieldValue('czFrom', czFrom);\n setSelectedCoreZone({\n ...selectedCoreZone,\n czFrom,\n });\n }}\n >\n }\n label={\n t('Ja, ich benötige ein Kernzonenticket für') +\n ' ' +\n selectedRoute.startZone\n }\n name=\"czFrom\"\n color=\"primary\"\n classes={{ label: 'small-text-theme' }}\n disabled={saving}\n />\n }\n label={\n t(\n 'Nein, ich benötige kein Kernzonenticket für'\n ) +\n ' ' +\n selectedRoute.startZone\n }\n name=\"czFrom\"\n classes={{ label: 'small-text-theme' }}\n disabled={saving}\n />\n \n \n \n \n )}\n {selectedRoute.isCZToPossible && (\n \n \n {t('Benötigen Sie ein Kernzonenticket für')}{' '}\n {selectedRoute.endZone}? (\n {formatCurrency(selectedPrice.priceCZTo)}{' '}\n {t('Aufpreis')})\n \n \n \n ,\n czTo: string\n ) => {\n ticketRouteForm.setFieldValue('czTo', czTo);\n setSelectedCoreZone({\n ...selectedCoreZone,\n czTo,\n });\n }}\n >\n }\n label={\n t('Ja, ich benötige ein Kernzonenticket für') +\n ' ' +\n selectedRoute.endZone\n }\n name=\"czTo\"\n color=\"primary\"\n classes={{ label: 'small-text-theme' }}\n disabled={saving}\n />\n }\n label={\n t(\n 'Nein, ich benötige kein Kernzonenticket für'\n ) +\n ' ' +\n selectedRoute.endZone\n }\n name=\"czTo\"\n classes={{ label: 'small-text-theme' }}\n disabled={saving}\n />\n \n \n \n \n )}\n {((selectedRoute.isCZFromPossible &&\n selectedRoute.isCZToPossible &&\n ticketRouteForm.values.czFrom === 'nein' &&\n ticketRouteForm.values.czTo === 'nein') ||\n (selectedRoute.isCZFromPossible &&\n !selectedRoute.isCZToPossible &&\n ticketRouteForm.values.czFrom === 'nein') ||\n (!selectedRoute.isCZFromPossible &&\n selectedRoute.isCZToPossible &&\n ticketRouteForm.values.czTo === 'nein')) && (\n \n \n heir\n \n \n }\n >\n )}\n \n )}\n \n \n
\n \n \n {routeError && (\n \n \n \n )}\n \n \n \n {t('Schritt zurück')}\n \n \n \n \n {saving ? : t('Weiter')}\n \n \n \n \n \n
\n
\n );\n};\n","import React from \"react\";\nimport \"./payment-box.scoped.scss\";\nimport { Box } from \"@material-ui/core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconName, IconPrefix } from \"@fortawesome/fontawesome-svg-core\";\n\ninterface PaymentBoxProps {\n name: string;\n description: string;\n image?: any;\n iconName?: IconName;\n iconPrefix?: IconPrefix;\n active?: boolean;\n disabled?: boolean;\n}\n\nexport default function PaymentBox(props: PaymentBoxProps) {\n const { name, description, image, active, iconName, iconPrefix, disabled } = props;\n return (\n \n \n \n {image && {name}}\n {iconName && iconPrefix && (\n \n )}\n \n
\n
{name}
\n
{description}
\n
\n
\n \n );\n}\n","export type Icons = {\n [key: string]: string;\n}\n\nexport const icons: Icons = {\n infoGrey: '/images/info-grey.svg',\n infoRed: '/images/info-red.svg',\n infoGreen: '/images/info-green.svg',\n infoBlue: '/images/info-blue.svg',\n link: '/images/link.svg',\n download: '/images/download.svg',\n\n eps: '/images/eps.png',\n mastercard: '/images/mastercard.png',\n sepa: '/images/sepa.png',\n vorkassa: '/images/vorkassa.svg',\n\n yearTicketCard: '/images/year-ticket-card.png',\n semesterTicketCard: '/images/semester-ticket-card.png',\n klimaTicketCard: '/images/klima-ticket-card.png',\n ticketTri: '/images/tickets-drei.svg',\n qrCode: '/images/qrcode.png'\n}","import { icons } from \"./icons\";\nimport { IconName, IconPrefix } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface PaymentTypeData {\n name: string;\n description: string;\n brand: string;\n paymentType: string;\n value: string;\n image?: string;\n iconName?: IconName;\n iconPrefix?: IconPrefix;\n}\n\nexport const PaymentTypesData: PaymentTypeData[] = [\n // {\n // name: \"Vorkasse\",\n // image: icons.vorkassa,\n // description: \"Vorkasse Description\",\n // brand: \"\",\n // paymentType: \"\",\n // value: \"Überweisung\"\n // },\n {\n name: \"Kreditkarte\",\n image: icons.mastercard,\n description: \"Kreditkarte Description\",\n brand: \"VISA MASTER\",\n paymentType: \"DB\",\n value: \"Online-Kreditkarte\"\n },\n {\n name: \"EPS (Online Banking)\",\n image: icons.eps,\n description: \"EPS Description\",\n brand: \"EPS\",\n paymentType: \"PA\",\n value: \"Online-Überweisung\"\n },\n {\n name: \"Sepa online\",\n image: icons.sepa,\n description: \"Sepa Description\",\n brand: \"DIRECTDEBIT_SEPA\",\n paymentType: \"DB\",\n value: \"Bankeinzug\"\n },\n // {\n // name: \"Apple Pay\",\n // iconName: \"apple-pay\",\n // iconPrefix: \"fab\",\n // description: \"Apple Pay Description\",\n // brand: \"APPLEPAY\",\n // paymentType: \"DB\",\n // value: \"APPLEPAY\"\n // }\n];\n\n// export const paymentTypesToDisplayData = [\"Online-Kreditkarte\", \"Online-Überweisung\", \"Bankeinzug\", \"APPLEPAY\"];\nexport const paymentTypesToDisplayData = [\"Online-Kreditkarte\", \"Online-Überweisung\", \"Bankeinzug\",];\n\nexport const SEPA_months = 10;","import React from \"react\";\nimport \"./ticket-card-preview.scoped.scss\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { Box, Grid } from \"@material-ui/core\";\nimport { icons } from \"../../statics/icons\";\nimport { dateFormat } from \"../../statics/main\";\nimport moment from \"moment\";\nimport { SessionStorageService } from \"../../services/session-storage/session-storage\";\nimport { formatCurrency } from \"../../helpers\";\nimport { User } from \"../../types/User\";\nimport { Ticket } from \"../../types/Ticket\";\nimport { TicketContext } from \"../../store\";\nimport { PaymentTypeData, SEPA_months } from \"../../statics/payment-types\";\ninterface TicketCardPreviewProps {\n selectedPayment: PaymentTypeData;\n}\n\nexport const TicketCardPreview = (props: TicketCardPreviewProps) => {\n const [t] = useTranslation();\n const sessionStorageService = new SessionStorageService();\n const { selectedPayment } = props;\n const {\n selectedRoute,\n selectedPrice,\n selectedCoreZone,\n customerImageInfo,\n } = React.useContext(TicketContext);\n const customerImage =\n customerImageInfo.imageStream || sessionStorageService.getData(\"croppedImage\");\n const validFrom: Date = sessionStorageService.getData(\"ticketForm\")\n ?.ticketValidFromDate;\n const ticket: Ticket = sessionStorageService.getData(\"selectedTicket\");\n const isKlimaTicket = !(\n ticket.ticketname.includes(\"Semesterkarte\") ||\n ticket.ticketname.includes(\"Jahreskarte\")\n );\n const userStored: User = sessionStorageService.getData(\"user\");\n const totalPrice =\n selectedPrice.priceCardWithoutCZ +\n (selectedCoreZone.czFrom === \"ja\" ? selectedPrice.priceCZFrom : 0) +\n (selectedCoreZone.czTo === \"ja\" ? selectedPrice.priceCZTo : 0);\n const validTo = ticket.isSemesterWorkflow\n ? moment(validFrom).add(5, \"month\").subtract(1, \"day\").format(dateFormat)\n : moment(validFrom).add(1, \"year\").subtract(1, \"day\").format(dateFormat);\n return (\n \n {/* Semster and year card preview */}\n {!isKlimaTicket && (\n \n \n \n \n \n {moment(validFrom).format(dateFormat)} -{\" \"}\n \n \n {validTo}\n \n \n \n \"\"\n \n {selectedRoute.startZone && (\n \n \n {selectedRoute.startZone}\n {selectedCoreZone.czFrom === \"ja\" ? \" +K\" : \"\"}\n \n \n )}\n {selectedRoute.endZone && (\n \n \n {selectedRoute.endZone}\n {selectedCoreZone.czTo === \"ja\" ? \" +K\" : \"\"}\n \n \n )}\n {selectedRoute.routeDescription && (\n \n \n Via {selectedRoute.routeDescription}\n \n \n )}\n {selectedRoute.zoneCount && (\n \n \n {selectedRoute.zoneCount} {t(\"Kernzonen\")}\n \n \n )}\n \n \n {formatCurrency(totalPrice)} ({t(\"inkl\")}. 10% UST)\n \n \n \n \n {userStored.firstname}\n \n \n \n \n {userStored.lastname}\n \n \n \n \"QR\n \n \n \n )}\n {/* Klimaticket card preview */}\n {isKlimaTicket && (\n \n \n \n \n \n \n {/* \n \n {t(\"Klimaticket OÖ\")}\n \n */}\n \n \n {t(ticket.ticketname.split(\"KlimaTicket OÖ\")[1] || ticket.ticketname)}\n \n \n \n \n {userStored.firstname}\n \n \n \n \n {userStored.lastname}\n \n \n \n \n {moment(validFrom).format(dateFormat)} - \n \n \n \n \n {validTo}\n \n \n {/* \n \"QR\n */}\n \n \n )}\n \n \n {ticket.isSemesterWorkflow\n ? t(\"OÖVV Semesterkarte\")\n : !isKlimaTicket\n ? t(\"OÖVV Jahreskarte\")\n : t(\"Klimaticket OÖ\")}\n \n {!isKlimaTicket && selectedRoute.startZone && selectedRoute.endZone && (\n \n {t(\"Von\")} {selectedRoute.startZone} {t(\"nach\")}{\" \"}\n {selectedRoute.endZone}{\" \"}\n {selectedRoute.routeDescription ? t(\"über\") : \" \"}{\" \"}\n {selectedRoute.routeDescription}\n \n )}\n {isKlimaTicket && (\n \n {t(ticket.ticketname.split(\"KlimaTicket OÖ\")[1] || ticket.ticketname)}\n \n )}\n \n {t(\"Gültig ab\")} {moment(validFrom).format(dateFormat)} {t(\"bis\")}{\" \"}\n {validTo}\n \n {((selectedCoreZone.czFrom === \"ja\" && selectedRoute.startZone) ||\n (selectedCoreZone.czTo === \"ja\" && selectedRoute.endZone)) && (\n \n {t(\"Mit Kernzone\")}{\" \"}\n {selectedCoreZone.czFrom === \"ja\" ? selectedRoute.startZone : \"\"}\n {selectedCoreZone.czFrom === \"ja\" && selectedCoreZone.czTo === \"ja\"\n ? \" - \"\n : \" \"}\n {selectedCoreZone.czTo === \"ja\" ? selectedRoute.endZone : \"\"}\n \n )}\n \n {t(\"Preis\")}: {formatCurrency(totalPrice)}{\" \"}\n {(selectedPayment.value === \"SEPA-Online\" || selectedPayment.value === \"Bankeinzug\") && (\n <>\n {\" \"}\n {formatCurrency(totalPrice / SEPA_months)}\n \n )}\n \n \n \n );\n};\n","import axios from \"axios\";\nimport { config } from \"../../config\";\n\ninterface CheckoutResponse {\n ExpiredCardTokens: any[];\n HostedTokenizationId: string;\n HostedTokenizationUrl: string; //\"https://payment.preprod.payone.com/hostedtokenization/tokenization/form/89f544e053674620b271f57c7b5c914b\"\n InvalidTokens: any[];\n PartialRedirectUrl: string;\n}\nexport class PaymentService {\n // https://developer.payone.com/en/api-reference#tag/HostedTokenization/operation/CreateHostedTokenizationApi\n public checkouts = async (data: {\n orderToken: string;\n }): Promise => {\n try {\n const { orderToken } = data;\n const response = await axios.get(\n `${config.apiUrl}payone/checkout/${config.merchantId}/${orderToken}`\n );\n return response.data;\n } catch (error) {\n console.log(\"checkout error\", error);\n return undefined;\n }\n };\n\n // https://developer.payone.com/en/api-reference#tag/Payments/operation/CreatePaymentApi\n public createPayment = async (data: {\n orderToken: string;\n amount: string;\n currency: string;\n returnUrl: string;\n hostedTokenizationId?: string;\n locale: string;\n }): Promise => {\n try {\n const {\n orderToken,\n amount,\n currency,\n returnUrl,\n hostedTokenizationId,\n locale\n } = data;\n const response = await axios.post(\n `${config.apiUrl}payone/createpayment/${config.merchantId}/${amount}/${currency}/${orderToken}`,\n {\n \n // acceptHeader: \"application/json, text/plain, */*\",\n browserData: {\n colorDepth: window.screen.colorDepth,\n javaEnabled: false,\n javaScriptEnabled: true,\n screenHeight: window.screen.height,\n screenWidth: window.screen.width,\n },\n // ipAddress,\n locale,\n timezoneOffsetUtcMinutes: -60,\n // userAgent: window.navigator.userAgent,\n },\n {\n params: {\n returnUrl,\n hostedTokenizationId,\n },\n }\n );\n return response.data;\n } catch (error) {\n console.log(\"create payment error\", error);\n return undefined;\n }\n };\n\n public payoneStatus = async ({\n paymentId,\n }: {\n paymentId: string;\n }): Promise => {\n try {\n const response = await axios.get(\n `${config.apiUrl}payone/status/${config.merchantId}/${paymentId}`\n );\n return response.data;\n } catch (error) {\n return \"server error\";\n }\n };\n\n public sepaCheckouts = async ({\n orderToken,\n iban,\n }: {\n orderToken: string;\n iban: string;\n }): Promise => {\n try {\n const response = await axios.post(\n `${config.apiUrl}payone/iban/${config.SEPA_API_TOKEN}/${orderToken}/${iban}`,undefined\n );\n return response.data;\n } catch (error) {\n console.log(\"sepa checkout error\", error);\n throw error;\n }\n };\n\n // public checkouts = async (data: any): Promise => {\n // try {\n // const { amount, currency, paymentType, orderToken, entityId, ipAddress } =\n // data;\n // const response = await axios.get(\n // `${config.apiUrl}payunitycheckout/${entityId}/${amount}/${currency}/${paymentType}/${orderToken}/${ipAddress}`\n // );\n // return response.data;\n // } catch (error) {\n // return error;\n // }\n // };\n\n public paymentStatus = async (\n checkoutID: string,\n entityId: string\n ): Promise => {\n try {\n const response = await axios.get(\n `${config.apiUrl}payunitystatus/${checkoutID}/${entityId}`\n );\n return response.data;\n } catch (error) {\n return \"server error\";\n }\n };\n\n public paymentStatusSEPA = async (\n paymentID: string,\n orderToken: string\n ): Promise => {\n try {\n const response = await axios.get(\n `${config.apiUrl}payunitypaymentstatus/${paymentID}/${config.SEPA_entityId}/${orderToken}`\n );\n return response.data;\n } catch (error) {\n return \"server error\";\n }\n };\n}\n","import React, { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport \"./ticket-payment-tab.scoped.scss\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { TicketContext } from \"../../store\";\nimport { Box, Button, Checkbox, Grid } from \"@material-ui/core\";\nimport PaymentBox from \"../pyment-box/payment-box\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { TicketCardPreview } from \"../ticket-card-preview/ticket-card-preview\";\nimport {\n PaymentTypeData,\n PaymentTypesData,\n paymentTypesToDisplayData,\n} from \"../../statics/payment-types\";\nimport { PaymentService } from \"../../services/payment/payment.service\";\nimport { SessionStorageService } from \"../../services/session-storage/session-storage\";\nimport { currency } from \"../../statics/main\";\n// import { history } from 'react-router-guard';\nimport ErrorBox from \"../error-box/error-box\";\nimport {\n formatCurrency,\n handleSessionExpire,\n isIosDevice,\n isSessionExpired,\n scrollToTabs,\n} from \"../../helpers\";\nimport { LangService } from \"../../services/lang/lang.service\";\n// import { config } from \"../../config\";\nimport { TicketsService } from \"../../services/tickets/tickets.service\";\nimport { Payment } from \"../../types/Payment\";\nimport { SEPA_months } from \"../../statics/payment-types\";\ndeclare const $: any;\n\nexport const TicketPaymentTab = () => {\n const [t] = useTranslation();\n const {\n setActiveTab,\n activeTab,\n paymentTypes,\n paymentTypesLoaded,\n paymentErrorData,\n setPaymentSuccess,\n setPaymentSuccessData,\n setOrderNumber,\n orderNumber,\n setOrderToken,\n orderToken,\n isTabDisabled,\n selectedPrice,\n selectedCoreZone,\n isExistingOrder,\n } = React.useContext(TicketContext);\n const paymentService = new PaymentService();\n const ticketsService = new TicketsService();\n const sessionStorageService = new SessionStorageService();\n const langService = new LangService();\n const lang = langService.getCurrentLang();\n const sessionID = sessionStorageService.getData(\"session\");\n // Amount in EUR so divide by 100\n const amount =\n (selectedPrice.priceCardWithoutCZ +\n (selectedCoreZone.czFrom === \"ja\" ? selectedPrice.priceCZFrom : 0) +\n (selectedCoreZone.czTo === \"ja\" ? selectedPrice.priceCZTo : 0)) /\n 100;\n const [\n activePaymentMethod,\n setActivePaymentMethod,\n ] = useState({} as PaymentTypeData);\n const [paymentError, setPaymentError] = useState(\"\");\n const [termsAccepted, setTermsAccepted] = useState(false);\n const [isPaymentSaving, setPaymentSaving] = useState(false);\n const [isCheckoutSaving, setCheckoutSaving] = useState(false);\n const [submitPaymentForm, setSubmitPaymentForm] = useState(false);\n const [IBAN, setIBAN] = useState();\n const [paymentTypesToDisplay, setPaymentTypesToDisplay] = useState(\n paymentTypesToDisplayData\n );\n // const [ipAddress, setIpAddress] = useState(\"\");\n const [hostedTokenizationUrl, setHostedTokenizationUrl] = useState();\n const tokenizerRef = useRef(null);\n const [isSepaPayment, setIsSepaPayment] = useState(false);\n const [isCreditPayment, setIsCreditPayment] = useState(false);\n const [isEPSPayment, setIsEPSPayment] = useState(false);\n\n useEffect(() => {\n if (\n activePaymentMethod.value === \"SEPA-Online\" ||\n activePaymentMethod.value === \"Bankeinzug\"\n ) {\n setIsSepaPayment(true);\n setIsCreditPayment(false);\n setIsEPSPayment(false);\n } else if (activePaymentMethod.value === \"Online-Kreditkarte\") {\n setIsCreditPayment(true);\n setIsSepaPayment(false);\n setIsEPSPayment(false);\n } else if (activePaymentMethod.value === \"Online-Überweisung\") {\n setIsEPSPayment(true);\n setIsSepaPayment(false);\n setIsCreditPayment(false);\n } else {\n setIsSepaPayment(false);\n setIsCreditPayment(false);\n setIsEPSPayment(false);\n }\n }, [activePaymentMethod]);\n\n const backToPayment = async () => {\n setHostedTokenizationUrl(\"\");\n setSubmitPaymentForm(false);\n setIsSepaPayment(false);\n setIsCreditPayment(false);\n setIsEPSPayment(false);\n setPaymentSaving(false);\n setCheckoutSaving(false);\n setActivePaymentMethod({} as PaymentTypeData);\n await continueExistingOrder(orderToken);\n };\n\n const back = () => {\n if (isTabDisabled) {\n // go to user data tab.\n setActiveTab(1);\n scrollToTabs();\n } else {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n }\n };\n\n const setPaymentData = async () => {\n setSubmitPaymentForm(true);\n if (!activePaymentMethod?.name || !termsAccepted || isPaymentSaving) {\n return;\n }\n setPaymentError(\"\");\n setPaymentSaving(true);\n const selectedPayment: Payment = paymentTypes.filter(\n (item: Payment) => item.name === activePaymentMethod.value\n )[0];\n // set payment name to check for SEPA status if payment was SEPA.\n // sessionStorageService.setData(\"paymentValue\", selectedPayment.name);\n // convert keys first char to uppercase of payment method data.\n const paymentType: any = Object.entries(selectedPayment).reduce(\n (obj: any, [key, value]) => {\n obj[key[0].toUpperCase() + key.substr(1)] = value;\n return obj;\n },\n {}\n );\n const paymentDataPayload = {\n sessionID,\n deliveryType: \"PostDelivery\",\n paymentType,\n };\n const res = await ticketsService.setPaymentData(paymentDataPayload);\n if (res.documentElement.textContent === \"false\") {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) {\n scrollToTabs();\n setPaymentError(error);\n setPaymentSaving(false);\n }\n } else {\n // if it's existing order, then do checkout without creating new order.\n if (isExistingOrder) {\n if (!selectedPayment.isOnlinePayment) {\n setPaymentSuccessData({\n vorkasse: true,\n });\n setPaymentSuccess(true);\n return;\n }\n if (isCreditPayment) {\n checkouts({ orderToken });\n }\n } else if (!isExistingOrder && orderNumber) {\n // if it's already saved order and went to payment page then hit back again to choose another payment method, then do checkout without creating new order.\n if (isCreditPayment) {\n checkouts({ orderToken });\n }\n } else {\n saveOrder();\n }\n }\n };\n\n const continueExistingOrder = async (orderToken: string) => {\n const payload: any = {\n orderToken,\n sessionID,\n };\n await ticketsService.continueExistingOrder(payload);\n };\n\n const saveOrder = async () => {\n const res = await ticketsService.saveOrder({ sessionID });\n if (Number(res.documentElement.textContent) === -1) {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) {\n scrollToTabs();\n setPaymentError(error || \"Speichern der Auftragsdaten fehlgeschlagen\");\n setPaymentSaving(false);\n return;\n }\n } else {\n // order saved successfully\n const selectedPayment: Payment = paymentTypes.filter(\n (item: Payment) => item.name === activePaymentMethod.value\n )[0];\n setOrderNumber(Number(res.documentElement.textContent));\n if (!selectedPayment.isOnlinePayment) {\n setPaymentSuccessData({\n vorkasse: true,\n });\n setPaymentSuccess(true);\n return;\n }\n // Payone Checkouts\n const orderTokenRes = await ticketsService.getOrderToken({\n orderNumber: res.documentElement.textContent,\n sessionID,\n });\n setOrderToken(orderTokenRes.documentElement.textContent);\n if (isCreditPayment) {\n checkouts({ orderToken: orderTokenRes.documentElement.textContent });\n } else if (isEPSPayment) {\n await createEPSPayment({\n orderToken: orderTokenRes.documentElement.textContent,\n orderNr: res.documentElement.textContent,\n });\n }\n scrollToTabs();\n }\n };\n\n const checkouts = async ({ orderToken }: { orderToken: string }) => {\n try {\n const res = await paymentService.checkouts({ orderToken });\n setHostedTokenizationUrl(res?.HostedTokenizationUrl);\n // Initialize the Tokenizer\n const tokenizer = new window.Tokenizer(\n res?.HostedTokenizationUrl as string,\n \"div-hosted-tokenization\",\n {\n hideCardholderName: false, // Show/hide cardholder name field\n }\n );\n await tokenizer.initialize();\n // Store the tokenizer instance in the ref\n tokenizerRef.current = tokenizer;\n console.log(\"iFrame initialized successfully\");\n } catch (error) {\n setPaymentSaving(false);\n console.error(\"Error fetching tokenization URL:\", error);\n }\n };\n\n const createPayment = async ({\n hostedTokenizationId,\n orderToken,\n }: {\n hostedTokenizationId: string;\n orderToken: string;\n }) => {\n // It has to validate this regex /^[0-9]{1,12}(\\.[0-9]{2})?$/\n const amountToSend = amount.toString().includes(\".\")\n ? amount.toString() + \"0\"\n : amount.toString() + \".00\";\n const payload = {\n hostedTokenizationId,\n currency,\n orderToken,\n amount: amountToSend,\n returnUrl: `${document.location.origin}/?orderNr=${orderNumber}&hostedTokenizationId=${hostedTokenizationId}&sprache=${lang}`,\n locale: lang === \"de\" ? \"de_AT\" : \"en_US\",\n };\n const paymentResult = await paymentService.createPayment(payload);\n if (paymentResult) {\n const paymentId = paymentResult.Payment.Id;\n if (\n paymentResult?.Payment?.Status === \"REDIRECTED\" &&\n paymentResult?.MerchantAction?.RedirectData?.RedirectURL\n ) {\n window.location.href =\n paymentResult?.MerchantAction?.RedirectData?.RedirectURL;\n } else {\n window.location.href = `${document.location.origin}/?orderNr=${orderNumber}&hostedTokenizationId=${hostedTokenizationId}&paymentId=${paymentId}&sprache=${lang}`;\n }\n } else {\n setPaymentError(\"(400) Die Zahlung wird abgelehnt\");\n setPaymentSaving(false);\n setCheckoutSaving(false);\n setHostedTokenizationUrl(\"\");\n }\n };\n\n const createEPSPayment = async ({\n orderToken,\n orderNr,\n }: {\n orderToken: string;\n orderNr: string;\n }) => {\n // It has to validate this regex /^[0-9]{1,12}(\\.[0-9]{2})?$/\n const amountToSend = amount.toString().includes(\".\")\n ? amount.toString() + \"0\"\n : amount.toString() + \".00\";\n const payload = {\n currency,\n orderToken,\n amount: amountToSend,\n returnUrl: `${document.location.origin}/?orderNr=${orderNr}&sprache=${lang}`,\n locale: lang === \"de\" ? \"de_AT\" : \"en_US\",\n };\n const paymentResult = await paymentService.createPayment(payload);\n if (paymentResult) {\n const paymentId = paymentResult.Payment.Id;\n if (\n paymentResult?.Payment?.Status === \"REDIRECTED\" &&\n paymentResult?.MerchantAction?.RedirectData?.RedirectURL\n ) {\n window.location.href =\n paymentResult?.MerchantAction?.RedirectData?.RedirectURL;\n } else {\n window.location.href = `${document.location.origin}/?orderNr=${orderNr}&paymentId=${paymentId}&sprache=${lang}`;\n }\n } else {\n setPaymentError(\"(400) Die Zahlung wird abgelehnt\");\n setPaymentSaving(false);\n setCheckoutSaving(false);\n }\n };\n\n const handleSubmit = async () => {\n try {\n if (isCheckoutSaving) return;\n setCheckoutSaving(true);\n if (!tokenizerRef.current) {\n throw new Error(\"Tokenizer not initialized\");\n }\n const result = await tokenizerRef.current.submitTokenization();\n if (result.success) {\n await createPayment({\n hostedTokenizationId: result.hostedTokenizationId as string,\n orderToken,\n });\n } else {\n console.error(\"Tokenization failed:\", result.error?.message);\n }\n } catch (error) {\n setCheckoutSaving(false);\n console.error(\"Error during tokenization:\", error);\n }\n };\n\n const handleSepaSubmit = async () => {\n try {\n if (isCheckoutSaving) return;\n setCheckoutSaving(true);\n await paymentService.sepaCheckouts({\n orderToken,\n iban: IBAN as string,\n });\n setPaymentSaving(false);\n setCheckoutSaving(false);\n setPaymentSuccess(true);\n } catch (error) {\n setPaymentSaving(false);\n setCheckoutSaving(false);\n setIsSepaPayment(false);\n setPaymentError(\"(400) SEPA Zahlung fehlgeschlagen\");\n await continueExistingOrder(orderToken);\n console.error(\"SEPA Error\", error);\n }\n };\n\n const scrollToPaymentInfo = () => {\n $([document.documentElement, document.body]).animate(\n {\n scrollTop: $(\".payment-options-box\").offset().top - 100,\n },\n 1000\n );\n };\n\n const setActivePayment = (item: PaymentTypeData) => {\n if (\n paymentTypes?.length === 0 ||\n (item.value === \"APPLEPAY\" && !isIosDevice()) ||\n !paymentTypesToDisplay.includes(item.value)\n )\n return;\n setActivePaymentMethod(item);\n };\n\n // useEffect(() => {\n // $.get(\n // \"https://api.ipify.org?format=jsonp\",\n // function (response: any) {\n // setIpAddress(response.ip);\n // },\n // \"jsonp\"\n // );\n // }, []);\n\n useEffect(() => {\n if (paymentTypes?.length) {\n setPaymentTypesToDisplay(paymentTypes.map((item: any) => item.name));\n }\n }, [paymentTypes]);\n\n return (\n
\n {(hostedTokenizationUrl || isSepaPayment) &&\n activePaymentMethod.brand &&\n submitPaymentForm &&\n orderToken ? (\n <>\n \n \n \n \n \n \n \n {\"Gesamtpreis\"}: {formatCurrency(amount * 100)}{\" \"}\n {(activePaymentMethod.value === \"SEPA-Online\" ||\n activePaymentMethod.value === \"Bankeinzug\") && (\n <>\n {\" \"}\n {formatCurrency((amount * 100) / SEPA_months)}\n \n )}\n \n {isSepaPayment && (\n \n \n \n
\n Kontoinhaber\n
\n
\n \n
\n
\n
\n
\n IBAN\n
\n
\n setIBAN(e.target.value)}\n />\n
\n
\n
\n
\n \n {isCheckoutSaving ? (\n \n ) : (\n t(\"Jetzt bezahlen\")\n )}\n \n
\n
\n \n \n )}\n {isCreditPayment && hostedTokenizationUrl && (\n <>\n
\n \n {isCheckoutSaving ? (\n \n ) : (\n t(\"Jetzt bezahlen\")\n )}\n \n \n )}\n \n \n \n \n \n \n \n \n {t(\"Schritt zurück\")}\n \n \n \n \n \n \n ) : (\n <>\n \n \n \n \n {t(\"zahlung\")}\n \n {(paymentError || paymentErrorData) && (\n \n \n \n )}\n \n {t(\n \"Bitte wählen Sie Ihre gewünschte Zahlungsart aus und klicken Sie nach der Auswahl auf Kostenpflichtig bestellen\"\n )}\n :\n \n \n {t(\n \"Mehr Informationen zu den Zahlungsmöglichkeiten finden Sie\"\n )}{\" \"}\n \n {t(\"weiter unten\")}\n \n .\n \n \n {Boolean(!activePaymentMethod?.name && submitPaymentForm) && (\n \n \n \n \n \n )}\n {Boolean(\n paymentTypesLoaded && paymentTypes?.length === 0\n ) && (\n \n \n \n \n \n )}\n {paymentTypes?.length\n ? PaymentTypesData.map((item: PaymentTypeData, index) => {\n return (\n \n setActivePayment(item)}\n display={\n !paymentTypesToDisplay.includes(item.value)\n ? \"none\"\n : \"\"\n }\n >\n \n \n \n );\n })\n : null}\n \n \n \n \n \n \n {t(\"Vorschau\")}\n \n {selectedPrice?.priceCardWithoutCZ && (\n <>\n \n \n \n \n ) =>\n setTermsAccepted(event.target.checked)\n }\n name=\"termsAccepted\"\n color=\"primary\"\n className={\n !termsAccepted && submitPaymentForm\n ? \"checkbox-required\"\n : \"\"\n }\n />\n \n {t(\"Ich akzeptiere die\")}{\" \"}\n \n {t(\"AGBs\")}\n {\" \"}\n {t(\"der OÖ-Verkehrsverbund-Organisations GmbH Nfg\")}\n . & CO KG\n \n \n {Boolean(!termsAccepted && submitPaymentForm) && (\n \n \n \n )}\n \n \n \n )}\n \n \n \n \n \n \n \n {isTabDisabled ? (\n \n {t(\"Daten oder Produkt ändern\")}\n \n ) : (\n \n {t(\"Schritt zurück\")}\n \n )}\n \n \n \n {isPaymentSaving ? (\n \n ) : (\n t(\"KOSTENPFLICHTIG BESTELLEN\")\n )}\n \n \n \n \n \n \n )}\n \n );\n};\n","import React, { useState } from \"react\";\nimport \"./klimaticket-box.scoped.scss\";\nimport { Box, Button } from \"@material-ui/core\";\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport { InfoDialog } from \"../../dialogs/confirm-dialog/info-dialog\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface KlimaticketBoxProps {\n zone: string;\n description: any;\n price: string;\n active?: boolean;\n isSelectable?: boolean;\n onSelect?: any;\n}\n\nexport default function KlimaticketBox(props: KlimaticketBoxProps) {\n const { zone, description, price, isSelectable, active, onSelect } = props;\n const [modalInfoOpen, setModalInfoOpen] = useState(false);\n const [t] = useTranslation();\n\n const handleClickModalInfoOpen = () => {\n setModalInfoOpen(true);\n };\n\n const handleClickSelect = () => {\n onSelect();\n };\n\n return (\n \n \n {zone}\n \n \n \n {description}\n \n \n {price}\n \n \n \n {isSelectable && !active && (\n \n {t(\"Auswählen\")}\n \n )}\n {isSelectable && active && (\n \n {t(\"Abwählen\")}\n \n )}\n \n \n setModalInfoOpen(false)}\n />\n \n );\n}\n","interface klimaTicket {\n name: string,\n description: string,\n city?: string\n}\n\nexport const klimaTicketsData: klimaTicket[] = [\n {\n name: \"Region\",\n description: \"Alle Verkehrsmittel innerhalb des Verbundgebiets OÖ ausgenommen des Stadtverkehrs in Linz, Wels und Steyr\"\n },\n {\n name: \"+ Kernzone Wels\",\n description: \"Alle Verkehrsmittel innerhalb des Verbundgebiets OÖ inklusive Stadtverkehr\",\n city: \"Wels\"\n },\n {\n name: \"+ Kernzone Steyr\",\n description: \"Alle Verkehrsmittel innerhalb des Verbundgebiets OÖ inklusive Stadtverkehr\",\n city: \"Steyr\"\n },\n {\n name: \"+ Kernzone Linz\",\n description: \"Alle Verkehrsmittel innerhalb des Verbundgebiets OÖ inklusive Stadtverkehr\",\n city: \"Linz\"\n },\n {\n name: \"+ Premium\",\n description: \"Alle Verkehrsmittel innerhalb des Verbundgebiets OÖ inklusive Stadtverkehr in Linz, Wels und Steyr\"\n }\n]","import React, { useEffect, useState } from 'react';\nimport './ticket-configuration-tab.scoped.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { TicketContext } from '../../store';\nimport { Box, Button, Divider, Grid } from '@material-ui/core';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { parseString } from 'xml2js';\nimport moment from 'moment';\nimport { SessionStorageService } from '../../services/session-storage/session-storage';\nimport { TicketsService } from '../../services/tickets/tickets.service';\nimport { xml2JsonConfig } from '../../statics/main';\nimport { Route } from '../../types/Route';\nimport { PriceInfo } from '../../types/PriceInfo';\nimport {\n formatCurrency,\n handleSessionExpire,\n isSessionExpired,\n scrollToTabs,\n} from '../../helpers';\nimport KlimaticketBox from '../klimaticket-box/klimaticket-box';\n// import InfoIcon from '@material-ui/icons/Info';\n// import { InfoDialog } from '../../dialogs/confirm-dialog/info-dialog';\nimport ErrorBox from '../error-box/error-box';\nimport { Ticket } from '../../types/Ticket';\nimport { klimaTicketsData } from '../../statics/klima-tickets';\nimport { KlimaTicketParking } from '../../statics/klima-ticket-parking';\n\nexport const TicketConfigurationTab = () => {\n const [t] = useTranslation();\n const ticketsService = new TicketsService();\n const sessionStorageService = new SessionStorageService();\n const sessionID = sessionStorageService.getData('session');\n const {\n setActiveTab,\n activeTab,\n validFrom,\n setKlimaTicket,\n // setKlimaTicketParking,\n klimaTickets,\n klimaTicket,\n klimaTicketParking,\n setSelectedRoute,\n selectedRoute,\n setSelectedPrice,\n selectedPrice,\n isExistingOrder,\n } = React.useContext(TicketContext);\n\n // used for loading on submit buttom\n const [possiblePathesLoading, setPossiblePathesLoading] = useState(false);\n const [routeError, setRouteError] = useState('');\n const [saving, setSaving] = useState(false);\n // const [modalInfoOpen, setModalInfoOpen] = useState(false);\n // const [selectedInfoBox, setSelectedInfoBox] = useState({} as any);\n const [ticketPrices, setTicketPrices] = useState([]);\n\n // const handleClickModalInfoOpen = (info: { title: string; text: string }) => {\n // setSelectedInfoBox({\n // title: info.title,\n // text: info.text,\n // });\n // setModalInfoOpen(true);\n // };\n\n // const handleParkingChange = (\n // parking: KlimaTicketParking,\n // checked: boolean,\n // index: number\n // ) => {\n // const result: KlimaTicketParking = { ...parking, active: checked };\n // const klimaTicketParkingCopy = [...klimaTicketParking];\n // klimaTicketParkingCopy[index] = result;\n // setKlimaTicketParking([...klimaTicketParkingCopy]);\n // };\n\n const handleSelectExtraZone = (ticket: Ticket, price: PriceInfo) => {\n // if use deselects his choice.\n if (klimaTicket.ticketname === ticket.ticketname) {\n setKlimaTicket(klimaTickets[0]);\n setSelectedPrice(ticketPrices[0]);\n sessionStorageService.setData('selectedTicket', klimaTickets[0]);\n } else {\n setKlimaTicket(ticket);\n setSelectedPrice(price);\n sessionStorageService.setData('selectedTicket', ticket);\n }\n };\n\n const back = () => {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n };\n\n const next = () => {\n setSaving(false);\n setActiveTab(activeTab + 1);\n scrollToTabs();\n };\n\n const checkSessionExpire = async () => {\n const sessionID = sessionStorageService.getData('session');\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n };\n\n const getPossiblePathes = async () => {\n setPossiblePathesLoading(true);\n const payload: any = {\n validFrom: moment(validFrom).utcOffset(0, true).toDate(),\n sessionID,\n fromStageNr: 40000,\n toStageNr: 40000,\n viaStage: 0,\n };\n ticketsService\n .getPossiblePathes(payload)\n .done((data: any, textStatus: string, jqXHR: any) => {\n parseString(jqXHR.responseText, xml2JsonConfig, (err, res) =>\n parsePossiblePathes(err, res)\n );\n });\n };\n\n const parsePossiblePathes = (err: Error | null, res: any) => {\n checkSessionExpire();\n if (res) {\n const pricesInfo: PriceInfo[] =\n res['soap:Envelope']['soap:Body']['types:PriceInfo'] || [];\n const route: Route =\n res['soap:Envelope']['soap:Body']['types:Route'] || [];\n const pathDetails = {\n pricesInfo,\n route: Array.isArray(route) ? route : [route],\n };\n setTicketPrices(pricesInfo);\n setPossiblePathesLoading(false);\n setSelectedRoute(pathDetails.route[0]);\n // if there is no selected ticket, then choose default price.\n if (!selectedPrice?.priceInfoId) {\n setSelectedPrice(pricesInfo[0]);\n }\n // re set ticket and price with the correct ids as they return with id = 0 from continue existing order api\n if (isExistingOrder && klimaTicket && selectedPrice) {\n const selectedPriceFromPrevOrder = pricesInfo.filter(\n // eslint-disable-next-line eqeqeq\n (price) => price.ticketCode == klimaTicket.ticketCode\n )[0];\n selectedPriceFromPrevOrder\n ? setSelectedPrice(selectedPriceFromPrevOrder)\n : setSelectedPrice(pricesInfo[0]);\n const selectedTicketFromPrevOrder = klimaTickets.filter(\n // eslint-disable-next-line eqeqeq\n (ticket: Ticket) => ticket.ticketCode == klimaTicket.ticketCode\n )[0];\n selectedTicketFromPrevOrder\n ? setKlimaTicket(selectedTicketFromPrevOrder)\n : setKlimaTicket(klimaTickets[0]);\n }\n }\n };\n\n const setCardData = async () => {\n setRouteError('');\n const payload = {\n sessionID,\n routeId: selectedRoute.routeId,\n ticketId: klimaTicket.ticketId,\n priceInfoId: selectedPrice.priceInfoId,\n czFrom: false,\n czTo: false,\n parkdeckWels: klimaTicketParking[0].active ? true : false,\n };\n setSaving(true);\n const res = await ticketsService.setCardData(payload);\n if (res.documentElement.textContent === 'false') {\n const error: string = (await ticketsService.getErrorText({ sessionID }))\n .documentElement.textContent;\n handleSessionExpire(error);\n if (!isSessionExpired(error)) {\n setRouteError(error);\n setSaving(false);\n }\n } else {\n next();\n }\n };\n\n useEffect(() => {\n getPossiblePathes();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n \n \n \n \n {t('Ihr Ticket')}\n \n \n \n {t(klimaTickets[0].ticketname)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('Zusätzliche Optionen')}\n \n \n {t(\n 'Bitte wählen Sie aus, ob Sie zusätzlich eine Kernzone benötigen'\n )}\n \n {klimaTickets.map((item: Ticket, index: number) => {\n const arr = item.ticketname.split('+');\n const ticketName = arr[1]\n ? `+ ${t('Kernzone') + arr[1]}`\n : arr[0];\n return (\n \n \n }\n price={\n ticketPrices.length\n ? `+ ${formatCurrency(\n ticketPrices[index]?.priceCardWithoutCZ -\n ticketPrices[0]?.priceCardWithoutCZ\n )}`\n : ''\n }\n active={klimaTicket?.ticketname === item.ticketname}\n isSelectable={true}\n onSelect={() =>\n handleSelectExtraZone(item, ticketPrices[index])\n }\n />\n \n );\n })}\n \n \n \n \n \n {/* START OF PARKING SECTION */}\n {/* \n \n \n {t(\"Zusätzliche Optionen\")}\n \n \n {t(\"Bitte wählen Sie bei Bedarf zusätzliche Optionen aus\")}\n \n {klimaTicketParking.map(\n (parking: KlimaTicketParking, index: number) => {\n return (\n \n ) =>\n handleParkingChange(\n parking,\n event.target.checked,\n index\n )\n }\n name={parking.name}\n color=\"primary\"\n style={{ top: \"-7px\" }}\n />\n \n \n
{t(parking.name)}
\n \n
\n
\n {t(parking.description)}\n
\n
\n ({t(\"Gratis\")})\n
\n
\n \n );\n }\n )}\n \n setModalInfoOpen(false)}\n />\n \n \n \n
*/}\n {/* END OF PARKING SECTION */}\n \n \n \n {t('Bestellübersicht')}\n \n \n {t('Bitte kontrollieren Sie Ihre Bestellung')}\n \n {/* Region Ticket */}\n \n \n {klimaTickets[0].ticketname}\n \n \n {ticketPrices.length\n ? formatCurrency(ticketPrices[0]?.priceCardWithoutCZ)\n : ''}\n \n \n {/* +Zone ticket */}\n {klimaTicket.ticketname !== klimaTickets[0].ticketname && (\n \n \n {klimaTicket.ticketname.split('+')[1]\n ? t('Aufpreis Kernzone') +\n klimaTicket.ticketname.split('+')[1]\n : t('Aufpreis') + ' ' + klimaTicket.ticketname}\n \n \n {ticketPrices.length\n ? formatCurrency(\n selectedPrice?.priceCardWithoutCZ -\n ticketPrices[0]?.priceCardWithoutCZ\n )\n : ''}\n \n \n )}\n {/* Active Parking */}\n {klimaTicketParking.map(\n (parking: KlimaTicketParking, index: number) => {\n return (\n \n \n {t(parking.name)}\n \n \n {formatCurrency(parking.price)}\n \n \n );\n }\n )}\n \n \n \n {t('Summe')}\n \n \n {ticketPrices.length && selectedPrice?.priceCardWithoutCZ\n ? formatCurrency(selectedPrice?.priceCardWithoutCZ)\n : ''}\n \n \n {routeError && (\n \n \n \n )}\n \n \n \n {t('Schritt zurück')}\n \n \n \n \n {saving ? (\n \n ) : (\n t('Zur Kassa')\n )}\n \n \n \n \n \n
\n
\n );\n};\n","import React from \"react\";\nimport \"./ticket-tab-content.component.scoped.scss\";\nimport { TicketContext } from \"../../store\";\nimport { TicketSelectionTabComponent } from \"../ticket-selection-tab/ticket-selection-tab.component\";\nimport { TicketUserTab } from \"../ticket-user-tab/ticket-user-tab\";\nimport { TicketUploadTab } from \"../ticket-upload-tab/ticket-upload-tab\";\nimport { TicketTrackTab } from \"../ticket-track-tab/ticket-track-tab\";\nimport { TicketPaymentTab } from \"../ticket-payment-tab/ticket-payment-tab\";\nimport { TicketConfigurationTab } from \"../ticket-configuration-tab/ticket-configuration-tab\";\n\nexport default function TicketTabContentComponent() {\n const { activeTab, ticket } = React.useContext(TicketContext);\n\n interface TabPanelProps {\n children?: React.ReactNode;\n index: number;\n value: number;\n }\n\n function TabPanel(props: TabPanelProps) {\n const { children, value, index, ...other } = props;\n return (\n