{"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","cert1","cert2","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","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","amount","ipAddress","get","paymentStatus","checkoutID","paymentStatusSEPA","paymentID","TicketPaymentTab","paymentService","activePaymentMethod","setActivePaymentMethod","setCheckoutID","paymentError","setPaymentError","termsAccepted","setTermsAccepted","isPaymentSaving","setPaymentSaving","submitPaymentForm","setSubmitPaymentForm","paymentTypesToDisplay","setPaymentTypesToDisplay","setIpAddress","backToPayment","back","setPaymentScript","getElementById","parentNode","removeChild","remvoveScript","win","wpwlOptions","script","appendChild","entries","reduce","obj","paymentDataPayload","deliveryType","isOnlinePayment","vorkasse","orderTokenRes","amountToSend","toString","replaceAll","ip","payment","origin","data-brands","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","margin","print","TicketContent","paymentLoading","setPaymentLoading","showTabContent","setShowTabContent","parseTickets","unshift","parseUniversities","parsePaymentTypes","ticketSelectionTab","userTab","confirmSepaPayment","paymentId","ticketDataResponse","setTicketData","orderData","orderNr","cardRestoreData","savedTicket","ticketcode","fromStageName","fromZoneNr","toStageName","toZoneNr","viaStageName","viaStageNr","viaZoneNr","selectedCZ","confirmOnlinePayment","paymentReference","checkPaymentStatus","paymentValue","paymentStatusRes","code","screen","urlParams","URLSearchParams","appVersionElement","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","message"],"mappings":"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","file":"static/js/main.ea14714c.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};","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, 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, 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, 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, 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, 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 // // iconName: \"chart-pie\",\n // // iconPrefix: \"fas\",\n // description: \"Sepa Description\",\n // brand: \"DIRECTDEBIT_SEPA\",\n // paymentType: \"DB\",\n // value: \"SEPA-Online\"\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\nexport const paymentTypesToDisplayData = [\"Online-Kreditkarte\", \"Online-Überweisung\", \"Bankeinzug\", \"APPLEPAY\"];\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\nexport class PaymentService {\n\n public checkouts = async (data: any): Promise => {\n try {\n const { amount, currency, paymentType, orderToken, entityId, ipAddress } = data;\n const response = await axios.get(`${config.apiUrl}payunitycheckout/${entityId}/${amount}/${currency}/${paymentType}/${orderToken}/${ipAddress}`)\n return response.data;\n } catch (error) {\n return error;\n }\n };\n\n public paymentStatus = async (checkoutID: string, entityId: string): Promise => {\n try {\n const response = await axios.get(`${config.apiUrl}payunitystatus/${checkoutID}/${entityId}`)\n return response.data;\n } catch (error) {\n return \"server error\";\n }\n };\n\n public paymentStatusSEPA = async (paymentID: string, orderToken: string): Promise => {\n try {\n const response = await axios.get(`${config.apiUrl}payunitypaymentstatus/${paymentID}/${config.SEPA_entityId}/${orderToken}`)\n return response.data;\n } catch (error) {\n return \"server error\";\n }\n };\n}","import React, { ChangeEvent, useEffect, 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';\nimport { 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 [checkoutID, setCheckoutID] = useState('');\n const [paymentError, setPaymentError] = useState('');\n const [termsAccepted, setTermsAccepted] = useState(false);\n const [isPaymentSaving, setPaymentSaving] = useState(false);\n const [submitPaymentForm, setSubmitPaymentForm] = useState(false);\n const [paymentTypesToDisplay, setPaymentTypesToDisplay] = useState(\n paymentTypesToDisplayData\n );\n const [ipAddress, setIpAddress] = useState('');\n\n const backToPayment = async () => {\n setCheckoutID('');\n await continueExistingOrder(orderToken);\n };\n\n const back = () => {\n if (isTabDisabled) {\n // go to user data tab.\n setActiveTab(1);\n scrollToTabs();\n // setTimeout(() => {\n // history.replace(`/?sprache=${lang}`);\n // sessionStorageService.clearAll();\n // window.location.reload();\n // }, 1000);\n } else {\n setActiveTab(activeTab - 1);\n scrollToTabs();\n }\n };\n\n const remvoveScript = () => {\n const element: any = document.getElementById('paymentCheckout');\n if (element) {\n element.parentNode.removeChild(element);\n }\n };\n\n const setPaymentScript = (checkoutID: string) => {\n remvoveScript();\n const win: any = window;\n try {\n win.wpwlOptions = {\n locale: lang,\n };\n } catch (error) {\n console.log(error);\n }\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = `${config.paymentGatewayURL}v1/paymentWidgets.js?checkoutId=${checkoutID}`;\n script.id = 'paymentCheckout';\n document.body.appendChild(script);\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 checkouts(orderToken);\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 checkouts(orderToken);\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 // PayUnity Checkouts\n const orderTokenRes = await ticketsService.getOrderToken({\n orderNumber: res.documentElement.textContent,\n sessionID,\n });\n setOrderToken(orderTokenRes.documentElement.textContent);\n checkouts(orderTokenRes.documentElement.textContent);\n }\n };\n\n const checkouts = async (orderToken: string) => {\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 ipAddress: ipAddress.replaceAll('.', '-'),\n amount: amountToSend,\n paymentType: activePaymentMethod.paymentType,\n entityId:\n activePaymentMethod.value === 'SEPA-Online' ||\n activePaymentMethod.value === 'Bankeinzug'\n ? config.SEPA_entityId\n : config.entityId,\n };\n const res = await paymentService.checkouts(payload);\n if (res) {\n setPaymentSaving(false);\n setCheckoutID(res);\n setPaymentScript(res);\n scrollToTabs();\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 {!checkoutID && (\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 {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 {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 \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 {checkoutID && activePaymentMethod.brand && (\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 \n \n \n \n \n \n \n \n \n {t('Schritt zurück')}\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, 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