{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/Dialogs/ArticleTreatmentEditDialog.vue?e3b9","webpack:///./src/log.js","webpack:///./src/views/OrderHistory/EditTicketPositionComponent.vue?ece9","webpack:///./src/views/Catalogue/ImportAssembly.vue?8495","webpack:///./src/views/Settings/AddressTile.vue?fb27","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/views/Catalogue/ArticleTile.vue?18ed","webpack:///./src/views/Catalogue/ImportArticle.vue?f7bf","webpack:///./src/views/Checkout/Offer.vue?4f08","webpack:///./src/views/OrderHistory/RequestCancellation.vue?ffd4","webpack:///./src/views/Settings/UserManagement.vue?06b7","webpack:///./src/App.vue?05ac","webpack:///./src/views/Cart/CartTabMenu.vue?8255","webpack:///./src/views/Catalogue/AssemblyTile.vue?694c","webpack:///./src/views/OrderHistory/OrderDetail.vue?3436","webpack:///./src/assets/blexon_logo_portal.png","webpack:///./src/class-component-hooks.ts","webpack:///./src/plugins/vuetify.js","webpack:///./src/App.vue","webpack:///./src/store/httpClient.ts","webpack:///./src/views/Cart/CartTabMenu.vue","webpack:///./src/views/Cart/CartTabMenuItem.vue","webpack:///./src/views/Cart/CartTabMenuItem.vue?7551","webpack:///./src/views/Cart/CartTabMenuItem.vue?2024","webpack:///./src/views/Cart/CartTabMenuItem.vue?b52c","webpack:///./src/views/Cart/CartTabMenu.vue?9f43","webpack:///./src/views/Cart/CartTabMenu.vue?0431","webpack:///./src/views/Cart/CartTabMenu.vue?8568","webpack:///./src/App.vue?dad8","webpack:///./src/dtos/articleState.ts","webpack:///./src/dtos/priceState.ts","webpack:///./src/App.vue?18c8","webpack:///./src/App.vue?3746","webpack:///./src/views/Catalogue/Catalogue.vue","webpack:///./src/views/Catalogue/ArticleTile.vue","webpack:///./src/store/rules.ts","webpack:///./src/dtos/cartItem.ts","webpack:///./src/views/Dialogs/ArticlePriceInfoDialog.vue","webpack:///./src/views/Dialogs/ArticlePriceInfoDialog.vue?83e0","webpack:///./src/dtos/entgratart.ts","webpack:///./src/views/Dialogs/ArticlePriceInfoDialog.vue?f3cd","webpack:///./src/views/Dialogs/ArticlePriceInfoDialog.vue?b907","webpack:///./src/views/Dialogs/ArticleEditDialog.vue","webpack:///./src/views/Dialogs/ArticleEditDialog.vue?68c2","webpack:///./src/views/Dialogs/ArticleEditDialog.vue?5da5","webpack:///./src/views/Dialogs/ArticleEditDialog.vue?7e00","webpack:///./src/views/Dialogs/ArticleDeleteWarningDialog.vue","webpack:///./src/views/Dialogs/ArticleDeleteWarningDialog.vue?7422","webpack:///./src/views/Dialogs/ArticleDeleteWarningDialog.vue?fd39","webpack:///./src/views/Dialogs/ArticleDeleteWarningDialog.vue?af17","webpack:///./src/views/Dialogs/SendToHelpdeskDialog.vue","webpack:///./src/views/Dialogs/SendToHelpdeskDialog.vue?ce9c","webpack:///./src/views/Dialogs/SendToHelpdeskDialog.vue?8e12","webpack:///./src/views/Dialogs/SendToHelpdeskDialog.vue?f708","webpack:///./src/views/Dialogs/TooManyCalculatingDialog.vue","webpack:///./src/views/Dialogs/TooManyCalculatingDialog.vue?1d26","webpack:///./src/dtos/treatmentTypes.ts","webpack:///./src/views/Dialogs/TooManyCalculatingDialog.vue?706d","webpack:///./src/views/Dialogs/TooManyCalculatingDialog.vue?45c6","webpack:///./src/views/Dialogs/ArticleTreatmentEditDialog.vue","webpack:///./src/dtos/surfaceColorDto.ts","webpack:///./src/dtos/powderDto.ts","webpack:///./src/views/Dialogs/ArticleTreatmentEditDialog.vue?2e21","webpack:///./src/views/Dialogs/ArticleTreatmentEditDialog.vue?e237","webpack:///./src/views/Dialogs/ArticleTreatmentEditDialog.vue?ea18","webpack:///./src/views/Dialogs/PowderCoatingNotEditableDialog.vue","webpack:///./src/views/Dialogs/PowderCoatingNotEditableDialog.vue?00f6","webpack:///./src/dtos/priceModel.ts","webpack:///./src/views/Dialogs/PowderCoatingNotEditableDialog.vue?eb7c","webpack:///./src/views/Dialogs/PowderCoatingNotEditableDialog.vue?2888","webpack:///./src/dtos/checkArticleReason.ts","webpack:///./src/dtos/hintId.ts","webpack:///./src/views/Dialogs/SpeechBubbleFloat.vue","webpack:///./src/views/Dialogs/SpeechBubbleFloat.vue?40f8","webpack:///./src/views/Dialogs/SpeechBubbleFloat.vue?fabe","webpack:///./src/views/Dialogs/SpeechBubbleFloat.vue?8cf4","webpack:///./src/views/Catalogue/ArticleTile.vue?725f","webpack:///./src/views/Catalogue/ArticleTile.vue?4743","webpack:///./src/views/Catalogue/ArticleTile.vue?10eb","webpack:///./src/views/Catalogue/AssemblyTile.vue","webpack:///./src/views/Catalogue/AssemblyTile.vue?6c1c","webpack:///./src/views/Catalogue/AssemblyTile.vue?f86e","webpack:///./src/views/Catalogue/AssemblyTile.vue?cc60","webpack:///./src/views/Catalogue/ImportArticle.vue","webpack:///./src/views/Catalogue/ImportArticle.vue?daa9","webpack:///./src/views/Catalogue/ImportArticle.vue?08b8","webpack:///./src/views/Catalogue/ImportArticle.vue?d424","webpack:///./src/views/Catalogue/ImportAssembly.vue","webpack:///./src/views/Catalogue/ImportAssembly.vue?e1ca","webpack:///./src/views/Catalogue/ImportAssembly.vue?b3b2","webpack:///./src/views/Catalogue/ImportAssembly.vue?5340","webpack:///./src/views/Catalogue/PendingOrder.vue","webpack:///./src/views/Catalogue/PendingOrder.vue?8af5","webpack:///./src/views/Catalogue/PendingOrder.vue?8ea7","webpack:///./src/views/Catalogue/PendingOrder.vue?c366","webpack:///./src/views/Catalogue/Multiedit.vue","webpack:///./src/views/Dialogs/ArticleMultiDeleteDialog.vue","webpack:///./src/views/Dialogs/ArticleMultiDeleteDialog.vue?82d9","webpack:///./src/views/Dialogs/ArticleMultiDeleteDialog.vue?9002","webpack:///./src/views/Dialogs/ArticleMultiDeleteDialog.vue?ae2a","webpack:///./src/views/Catalogue/Multiedit.vue?79d4","webpack:///./src/dtos/catalogueSortingType.ts","webpack:///./src/dtos/importFileExtension.ts","webpack:///./src/views/Catalogue/Multiedit.vue?1641","webpack:///./src/views/Catalogue/Multiedit.vue?08aa","webpack:///./src/views/Catalogue/Catalogue.vue?a5f0","webpack:///./src/views/Catalogue/Catalogue.vue?2499","webpack:///./src/views/Catalogue/Catalogue.vue?449d","webpack:///./src/views/Catalogue/Assembly.vue","webpack:///./src/views/Catalogue/Assembly.vue?0397","webpack:///./src/dtos/orderTrackingState.ts","webpack:///./src/views/Catalogue/Assembly.vue?d973","webpack:///./src/views/Catalogue/Assembly.vue?5ccd","webpack:///./src/views/OrderHistory/Orders.vue","webpack:///./src/views/OrderHistory/TicketComponent.vue","webpack:///./src/views/OrderHistory/TicketComponent.vue?88fa","webpack:///./src/views/OrderHistory/TicketComponent.vue?e046","webpack:///./src/views/OrderHistory/TicketComponent.vue?46a6","webpack:///./src/views/OrderHistory/OrderDetail.vue","webpack:///./src/views/OrderHistory/OrderDetail.vue?5d0d","webpack:///./src/dtos/erpAddressType.ts","webpack:///./src/dtos/addressType.ts","webpack:///./src/views/OrderHistory/OrderDetail.vue?30f9","webpack:///./src/views/OrderHistory/OrderDetail.vue?aa56","webpack:///./src/dtos/addressDto.ts","webpack:///./src/views/Settings/ChangeAddress.vue","webpack:///./src/views/Settings/ChangeAddress.vue?2f02","webpack:///./src/views/Settings/ChangeAddress.vue?2038","webpack:///./src/views/Settings/ChangeAddress.vue?179c","webpack:///./src/views/OrderHistory/Orders.vue?2143","webpack:///./src/views/OrderHistory/Orders.vue?9095","webpack:///./src/views/OrderHistory/Orders.vue?9909","webpack:///./src/views/Checkout/Checkout.vue","webpack:///./src/views/Cart/Cart.vue","webpack:///./src/views/Cart/SavedCarts.vue","webpack:///./src/dtos/savedCartDto.ts","webpack:///./src/views/Cart/SavedCarts.vue?7122","webpack:///./src/views/Cart/SavedCarts.vue?7a58","webpack:///./src/views/Cart/SavedCarts.vue?82bb","webpack:///./src/views/Cart/CurrentCart.vue","webpack:///./src/views/Cart/CartPosition.vue","webpack:///./src/views/Cart/CartPosition.vue?ca04","webpack:///./src/views/Cart/CartPosition.vue?62e2","webpack:///./src/views/Cart/CartPosition.vue?fec9","webpack:///./src/views/Cart/CurrentCart.vue?4349","webpack:///./src/views/Cart/CurrentCart.vue?3949","webpack:///./src/views/Cart/CurrentCart.vue?8bc6","webpack:///./src/views/Cart/Cart.vue?dae4","webpack:///./src/dtos/deliveryType.ts","webpack:///./src/views/Cart/Cart.vue?8675","webpack:///./src/views/Cart/Cart.vue?306a","webpack:///./src/views/Checkout/Summary.vue","webpack:///./src/views/Checkout/Offer.vue","webpack:///./src/dtos/orderRequestDto.ts","webpack:///./src/views/Checkout/Delivery.vue","webpack:///./src/dtos/fertigerAddressDto.ts","webpack:///./src/views/Checkout/Delivery.vue?b62d","webpack:///./src/views/Checkout/Delivery.vue?4110","webpack:///./src/views/Checkout/Delivery.vue?f20a","webpack:///./src/views/Checkout/Offer.vue?d621","webpack:///./src/views/Checkout/Offer.vue?c828","webpack:///./src/views/Checkout/Offer.vue?57e5","webpack:///./src/views/Checkout/Summary.vue?1345","webpack:///./src/dtos/offerFailReason.ts","webpack:///./src/views/Checkout/Summary.vue?fb22","webpack:///./src/views/Checkout/Summary.vue?e217","webpack:///./src/views/Checkout/OfferInformation.vue","webpack:///./src/views/Checkout/OfferInformation.vue?52ee","webpack:///./src/views/Checkout/OfferInformation.vue?39f3","webpack:///./src/views/Checkout/OfferInformation.vue?f7b2","webpack:///./src/views/Settings/AddressTile.vue","webpack:///./src/views/Settings/AddressTile.vue?1143","webpack:///./src/views/Settings/AddressTile.vue?9dd7","webpack:///./src/views/Settings/AddressTile.vue?5ded","webpack:///./src/views/Settings/AddressesOverview.vue","webpack:///./src/views/Settings/AddressesOverview.vue?845e","webpack:///./src/views/Settings/AddressesOverview.vue?1130","webpack:///./src/views/Settings/AddressesOverview.vue?b457","webpack:///./src/views/Checkout/Checkout.vue?ee9c","webpack:///./src/views/Checkout/Checkout.vue?1d76","webpack:///./src/views/Checkout/Checkout.vue?b0de","webpack:///./src/views/Settings/Settings.vue","webpack:///./src/views/Settings/UserSettings.vue","webpack:///./src/dtos/userInfoDto.ts","webpack:///./src/views/Settings/UserSettings.vue?8569","webpack:///./src/views/Settings/UserSettings.vue?d156","webpack:///./src/views/Settings/UserSettings.vue?6cad","webpack:///./src/views/Settings/CustomerSettings.vue","webpack:///./src/dtos/customerInfoDto.ts","webpack:///./src/views/Settings/CustomerSettings.vue?7839","webpack:///./src/views/Settings/CustomerSettings.vue?b94c","webpack:///./src/views/Settings/CustomerSettings.vue?935a","webpack:///./src/views/Settings/Settings.vue?0c4f","webpack:///./src/views/Settings/Settings.vue?23aa","webpack:///./src/views/Settings/Settings.vue?0073","webpack:///./src/views/NotFoundComponent.vue","webpack:///./src/views/NotFoundComponent.vue?88c4","webpack:///./src/views/NotFoundComponent.vue?cfb0","webpack:///./src/views/NotFoundComponent.vue?d2fe","webpack:///./src/views/Settings/UserManagement.vue","webpack:///./src/dtos/userLoginDto.ts","webpack:///./src/views/Settings/UserManagement.vue?3491","webpack:///./src/views/Settings/UserManagement.vue?c0d5","webpack:///./src/views/Settings/UserManagement.vue?fc3c","webpack:///./src/views/OrderHistory/RequestCancellation.vue","webpack:///./src/views/OrderHistory/RequestCancellation.vue?7d20","webpack:///./src/views/OrderHistory/RequestCancellation.vue?713e","webpack:///./src/views/OrderHistory/RequestCancellation.vue?a77b","webpack:///./src/views/OrderHistory/CancellationConfirmation.vue","webpack:///./src/views/OrderHistory/CancellationConfirmation.vue?e2b9","webpack:///./src/views/OrderHistory/CancellationConfirmation.vue?d548","webpack:///./src/views/OrderHistory/CancellationConfirmation.vue?9f8a","webpack:///./src/views/OrderHistory/CreateTicket.vue","webpack:///./src/views/OrderHistory/ChoosePosition.vue","webpack:///./src/views/OrderHistory/ChoosePosition.vue?1c3b","webpack:///./src/dtos/ticket/complainType.ts","webpack:///./src/views/OrderHistory/ChoosePosition.vue?9129","webpack:///./src/views/OrderHistory/ChoosePosition.vue?6628","webpack:///./src/views/OrderHistory/EditTicketPositionComponent.vue","webpack:///./src/dtos/ticket/fileDto.ts","webpack:///./src/dtos/ticket/IComplainType.ts","webpack:///./src/dtos/ticket/complaintExpectationType.ts","webpack:///./src/dtos/ticket/IComplaintExpectationType.ts","webpack:///./src/dtos/ticket/ticketState.ts","webpack:///./src/views/OrderHistory/EditTicketPositionComponent.vue?ee1c","webpack:///./src/views/OrderHistory/EditTicketPositionComponent.vue?9991","webpack:///./src/views/OrderHistory/EditTicketPositionComponent.vue?5221","webpack:///./src/dtos/ticket/ticketDto.ts","webpack:///./src/views/OrderHistory/CreateTicket.vue?ec05","webpack:///./src/views/OrderHistory/CreateTicket.vue?d44a","webpack:///./src/views/OrderHistory/CreateTicket.vue?c2e7","webpack:///./src/router.ts","webpack:///./src/store/actions.ts","webpack:///./src/dtos/cart.ts","webpack:///./src/dtos/offerDto.ts","webpack:///./src/store/mutations.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/store.ts","webpack:///./src/main.ts","webpack:///./src/views/OrderHistory/CancellationConfirmation.vue?68b9","webpack:///./src/views/Catalogue/Catalogue.vue?5cc1"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","console","oldCons","log","text","post","info","warn","error","onerror","message","file","line","col","addEventListener","e","package","JSON","parse","unescape","process","level","item","localStorage","getItem","user","undefined","profile","xhr","XMLHttpRequest","open","setRequestHeader","send","stringify","system","version","map","webpackContext","req","id","webpackContextResolve","Error","code","keys","resolve","Component","registerHooks","Vue","use","Vuetify","directives","Ripple","theme","themes","light","accent","highlight","attrs","require","collapseAppBar","_vm","_v","staticClass","staticStyle","scopedSlots","menu","fn","on","_c","logout","model","expression","dataGroup","navigateTo","isLoading","dismissErrorMessageBanner","criticalDataReady","callback","showSnackbar","$$v","getThumbnailUrl","snackbar","appVersion","staticRenderFns","render","userString","client","axios","baseURL","headers","Authorization","access_token","interceptors","response","request","responseURL","Promise","reject","hasValidOffer","cartItems","_l","index","article","$event","CartTabMenuItem","this","$store","getters","articleById","cartItem","articleId","removeFromCart","dispatch","__decorate","Prop","component","CartTabMenu","state","currentCart","Array","offer","hasChanged","offerInvalidForCartUpdate","currentOfferCalculating","emptyCart","components","App","constructor","drawer","currentWindowWidth","userGroup","impersonateUsername","userCanManageUsers","commit","loadUserInfoAndFileSizeLimits","then","setUserCanManageUsers","setupShoppingCart","loadAvailabilities","loadHints","checkForKundenportalErrorMessages","mounted","setupResizeEvent","setupArticlePollingInterval","customer","isAdmin","httpClient","isMaintenance","packageJson","oidc","customerId","loading","bannerErrorMessage","snackbarTimeout","closeSnackbar","to","$router","regionId","availabilities","werkstoffe","isPulverbeschichtungAvailable","userAddresses","delivery","userPreferredDeliveryAddress","invoice","userPreferredInvoiceAddress","setWindowWidth","event","innerWidth","ArticleState","PriceState","order","style","dragAreaHeightStyle","dragover","visibility","dragging","isAssembly","hasArticles","class","importingArticles","hasMultipleUsers","searchTerm","activeSortType","hasMoreToLoad","articleLoading","uploadWarningDialog","deleteOverlay","_u","_g","unlockArticle","isCalculating","lockArticle","width","height","background","_e","hasEngravings","customerArticleId","getZusatzbezeichnungOberseite","rawName","_s","canChangePowderCoating","stopPropagation","powderCoatingNotEditableDialog","camMessages","filter","articleStateColor","calculating","priceState","recalculatePrice","availablePriceModels","preisInformationenDialog","price","quantity","amountToAddToCart","isValidAmount","allowedCartAmountRule","isHelpdeskButtonVisible","cadDialog","articleDeleteWarningDialog","setDeleteOverlay","showHelpdeskDialogue","tooManyCalculatingDialog","optionalStringMax35Rule","v","requiredRule","replace","addressOptionalStringMax35Rule","test","optionalStringMax50Rule","requiredStringMax35Rule","addressRequiredStringMax35Rule","requiredStringMax50Rule","isNaN","requiredEmailRule","optionalEmailRule","requiredIntegerRule","parseInt","parseFloat","requiredInteger0To1000Rule","CartItem","checkEsc","ArticlePriceInfoDialog","closeDialog","$emit","keyPress","hasPriceModels","Entgratart","articleDataValid","articleNumber","selectedWerkstoffId","isUpdatingArticleData","entgratart","saveArticleData","getEntgratartText","None","Manually","Webern","Trowalisieren","BothSides","ArticleEditDialog","articleName","saveFailedErrorMessage","rules","resetEditArticleData","articleEditDialog","customerArticleName","werkstoffId","onSelectedWerkstoffIdChanged","hasWerkstoffChanged","thickness","w","materials","some","entgratarten","werkstoff","blexonId","entgratSettings","materialId","enumValues","values","forEach","isBiegeteil","numberOfBendLines","disabled","isBothSidesEnabled","sides","sort","a","b","longestSide","maximumOtherSides","Math","max","trowalDisabled","weight","round","isTrowalisierenEnabled","sanitisedName","trim","sanitisedNumber","setUpdating","articleData","err","Watch","deleteArticle","ArticleDeleteWarningDialog","nextTick","refreshCart","isHelpdeskEmailValid","helpdeskEmail","SendToHelpdeskDialog","username","reason","TooManyCalculatingDialog","PowderFinish","PowderStructure","PowderApplication","ArticleFaceType","ralFilterTerm","powderCoatingStructureOptions","powderStructureHint","selectedPowderStructure","powderCoatingFinishOptions","filteredPowders","selectedPowderId","powder","articleFaceOptions","selectedPowderFace","isSingleArticle","saveTreatments","SurfaceColorDto","ralCode","hexCode","PowderDto","surfaceColor","structure","Smooth","finish","Glossy","application","Internal","layerThickness","available","setupCost","ArticleTreatmentEditDialog","selectedPowderFinish","showAllPowders","Matt","Fine","Rough","Visible","Back","Both","selectedPowderColorId","articles","powderCoatingTreatment","powders","filtered","ExternalFassade","ExternalIndustry","isStandardPowder","cleaned","c1","c2","getAllSurfaceColors","colors","includes","isColorAvailable","colorId","isPowderCoatingAvailable","_this$selectedPowder","selectedPowder","getStructureText","getFinishText","getColorClass","articleTreatmentEditDialog","getPowders","singleArticle","treatmentFace","powderTreatmentValid","array","_this$selectedPowder2","treatmentDto","hasValue","catch","PowderCoatingNotEditableDialog","PriceModel","CheckArticleReason","HintId","allPriceModels","Standard","Slow","Express","_self","_setup","dontShowAgain","SpeechBubbleFloat","showBubble","hintId","toggleTooltip","beforeUnmount","unseenHintIds","ondontShowAgainChanged","setHintAsShown","hasNotSeen","setHintAsShownLocally","ArticleTile","currentWindowHeight","blexonisierenRunning","articleToken","articleHasUnsavedChanges","articleCartNames","priceModels","PriceModelDefault","reasonToSendArticleToHelpdesk","ModelError","priceListHintTitle","priceListHintText","setWindowHeight","quantityInAssembly","canArticleChangePowderCoating","featureDtos","weldlines","find","customerDefaultDeliveryAddress","country","_this$articleToken","_this$articleToken2","email","encodeURI","url","token","readonly","locked","migrated","OK","Warning","Failed","canBeProduced","Ok","Calculating","isImpersonated","Info","oldToken","NotCalculated","Invalid","waehrung","_this$article$powderC","articleHasPowderCoating","lastChange","priceLists","sortedPrices","from","prices","getModelPrice","list","pl","priceModel","toFixed","selectedArticleIds","newValue","handleArticleChangedInCad","openArticleEditDialog","isArticleLockedAndNotAdmin","origin","closeCadDialog","deleteToken","verwerfen","confirm","_this$articleToken3","removeEventListener","addToCart","newCartItem","currentHeight","innerHeight","New","showPriceError","materialname","getZusatzbezeichnungUnterseite","ShopPriceList","getWeldlineString","numberOfCorners","reduce","corners","clean","isMultiSelectionMode","isArticleSelected","cursor","subarticleId","AssemblyTile","subArticleIds","subArticles","previousValue","link","path","isWeldingAvailable","subarticle","parentArticleId","every","articleInitialized","$set","availableThicknesses","selectedThickness","deleting","ImportArticle","resetCalculatingMessage","calculatingMessage","updateArticleName","availableWerkstoffe","validate","blexonisieren","subArticle","ImportAssembly","selectedWerkstoffIdChanged","werkstoffeForArticle","entries","deleteOrderDialog","deletePendingOrder","PendingOrder","delete","pendingOrder","isInCart","articleIds","positions","articleMultiDeleteDialog","isDeleting","articlesInPartLists","validStateArticles","deleteArticles","ArticleMultiDeleteDialog","selectedArticles","deleteCount","loadArticles","checkArticleCarts","async","newEntry","carts","Multiedit","selectedArticlesCount","allSelectedCanBePowdercoated","clearSelection","CatalogueSortingType","ImportFileExtension","Catalogue","lastSearchTerm","loadBatchSize","floatingFilter","initialLoadIsRunning","errorUploadFiles","warningUploadFiles","invalidFormatUploadFiles","validFileFormats","sortTypes","CreatedAtDescending","CreatedAtAscending","LastChangeDescending","LastChangeAscending","ArticleNameAscending","ArticleNameDescending","MaterialNameAscending","MaterialNameDescending","MaterialThicknessAscending","MaterialThicknessDescending","beforeRouteEnter","next","vm","checkCatalogueBottom","beforeRouteLeave","initialLoading","catalogueSearchTerm","catalogueUserId","catalogueArticles","allArticlesInCatalog","catalogueArticleIds","hasMoreArticlesToLoad","type","activeCatalogueSortTypeValue","sortType","showFullscreenImport","pendingOrders","users","getImportingArticlesOfCustomer","getArticlesOfCustomer","canOrderDirectly","loadPendingOrders","reload","relevantSearchTerm","selectedUserId","reloadOnSearchTermChange","reloadOnSortingChange","reloadOnUserChange","bottomOfWindow","pageYOffset","document","body","offsetHeight","element","getElementById","elementPosition","getBoundingClientRect","y","manuallyLoadMoreArticles","fileSizeLimits","preventDefault","$refs","upload","parentNode","className","dragleave","drop","uploadFiles","dataTransfer","files","loadValidFileFormats","extension","toLowerCase","format","toLocaleLowerCase","fileExceedesLimit","size","artikel","temporaryImportId","uploadProgress","FormData","append","config","header","onUploadProgress","progressEvent","percentCompleted","loaded","total","articleToReplace","newArticle","target","limitType","f","Step","errorLimit","re","extensionGroup","exec","extensions","warningLimit","removePendingOrder","orderId","debounce","leading","MultiEdit","navigate","assembly","subarticles","Assembly","assemblyId","OrderTrackingState","getIcon","slot","hasBusyCancellationRequest","updateKommissionsnummer","kommission","trackingcode","getOrderConfirmationPdf","canChangeDeliveryAddress","editAddress","cancellationButton","isLoadingCancellation","showCancellationConfirmationDialog","cancelOrder","editAddressDialog","currentEditAddressOrderId","loadingTicketStates","TicketComponent","refDate","Date","orderDate","dateLimit","setDate","getDate","createOrEditTicket","ticketState","orderState","Delivered","Paid","Fakturiert","position","blexonArticleId","feature","count","features","_f","pricePerUnit","mwStSatz","getTotal","OrderDetail","fertiger","companyName","street","zipAndTown","loadOrderConfirmation","getEntgratartString","rampenabholung","fertigerId","companyname","steet","zip","town","getMwSt","mwst","ErpAddressType","AddressType","AddressDto","givenName","surname","phone","eMail","isDefault","Delivery","isBilledDigitally","isValid","address","rechnungsversandPerPostMöglich","invoiceVersandart","addressType","saveAddress","isSaving","ChangeAddress","customerDeliveryType","CustomerDelivery","customerInvoiceType","CustomerInvoice","orderDeliveryType","OrderDelivery","orderInvoiceType","OrderInvoice","completedOrderInvoiceType","CompletedOrderInvoice","completedOrderDeliveryType","CompletedOrderDelivery","deliveryType","invoiceType","Invoice","correctPlz","newAddress","form","updateVersandart","customerDefaultInvoiceAddress","changed","Orders","ticketStates","isLoadingPdf","isLoadingOrderPdf","showOrderDetail","orderIdToCancel","currentEditAddress","currentEditAddressType","checkOrdersBottom","loadOrders","orders","orderCancellations","loadOrderCancellationRequests","getTicketStates","getTicketStateFromOrderId","returnStates","toString","hasCancellationRequest","orderCancellationRequests","blexonOrderId","hasWaitingCancellationRequest","hasOpenCancellationRequest","hasClosedCancellationRequest","canChangeKommissionsnummer","Ordered","InProduction","Produced","translatedZustellungArt","canChangeInvoiceAddress","responseType","URL","createObjectURL","Blob","createElement","href","download","click","remove","revokeObjectURL","navigateToTicket","params","checkCancellation","orderProcessedInMeantime","responseAddress","Unknown","Cancelled","CreditOverdrawn","stepCount","isCartValid","hasItemsInCart","deliveryAddressKey","invoiceAddressKey","invoiceAddress","currentOffer","customKommissionsnummer","onIsAdditionalEmailSelectedChanged","isAdditionalEmailSelected","addressPickerDialog","refreshAddresses","selectedCartId","deleteSavedCartDialog","loadArticlesFromSavedCart","deleteSavedCart","SavedCartDto","SavedCarts","sortedSavedCarts","sentToCartAmount","savedCarts","localeCompare","lastSelectedSavedCartId","setLastSelectedSavedCart","findIndex","cart","loadSavedCarts","currentSavedCartId","newId","currentlySelectedCart","tempLoopAmount","oldQuantity","quantityOfItemInCart","savedCartFilter","queryText","itemText","cartName","searchText","indexOf","setNewSavedCartArticleQuantity","parsed","cartId","removeArticleFromSavedCart","cartIdToDelete","saveAsNewCartDialog","proxy","checkNewCartName","articleQuantity","CartPosition","addToSavedCart","amount","articleStateIcon","CurrentCart","newCartName","cartNameAlreadyExists","saved","newCart","cartPositions","checkEscOrEnter","saveCartValid","saveNewCart","Cart","availableSavedCarts","DeliveryType","ref","discount","refInFor","changeSelection","selected","hover","anySelected","downloadOffer","deliveryDate","isRampenabholung","isDeliveryNachAufwand","acceptedNachAufwand","acceptedAGB","createOrder","isNachAufwandDialogVisible","isOrderFailedDialogVisible","OrderRequestDto","deliveryAddress","calculationId","selectedManufacturerId","dueDate","additionalOrderConfirmationEmail","areFertigerAddressesLoading","rampeManufacturerId","isRampenabholungAvailable","isManufacturerNotPossibleDialogVisible","isManufacturerAddressDialogVisible","FertigerAddressDto","manufacturerId","deliveryPhoneNumber","ticketEMail","technicalEMail","generalEMail","Offer","isFertigerAddressesLoadingFailed","manufacturerAddresses","currentFertigerAddress","loadFertigerAddresses","setRampenabholungState","onRampeSelectionChanged","deliveryChoice","manufacturingOffers","rampenabholungSelectionValid","addr","canProcessTheOrder","getFertigerInfoById","getFertigerTownById","openManufacturerAddressDialog","isAuftragsrabattDialogVisible","setFirstDate","selectedOfferChanged","allowedDates","requestOnly","readyToBuy","newOrderId","orderRequest","ex","isOfferTimerZero","isDeliveryDateValid","isCountryValidForDelivery","redirectToArticles","navigateToAgb","canOrderIndirectly","NachAufwand","customerIsCountryValidForDelivery","manufacturingOffer","dates","orderDiscount","orderDiscounts","validFrom","moment","add","minimalDelayInDays","validTo","orderDiscountSlow","datum","datesOfDelivery","isAfter","isBefore","offerValidTimerSeconds","orderSuccessful","getLabelForPendingOrder","String","requestedAt","requestedByFirstname","requestedByLastname","totalOfAllItemsInCart","mwstRatio","costMwst","deliveryCost","invoiceCharge","nettoOffer","totalOffer","SummaryComponent","selectedPriceModel","OfferComponent","OfferFailReason","offerCalculating","noFertigerCanProduce","amountOfItemsInCart","offerFailed","offerFailReason","NoFertigerCanProduce","NoFertigerHasDeliveryDate","percent","offerValidTimerTotalSeconds","isOrder","isUserPreferred","isNotOrder","canEditAddress","deleteAddressDialog","AddressTile","userCanChangeDeliveryAddress","userCanChangeInvoiceAddress","setRights","propAddress","assign","customerDeliveryAddressCount","customerInvoiceAddressCount","deliveryResponse","InvoiceResponse","openEditDialog","changeUserPreferred","addressData","setAddressForOrder","closeEditDialogAndReload","userCanCreateAddresses","addressLoaded","newAddressdialog","AddressesOverview","addresses","setAddress","invoiceResponse","copyAddresses","deliveryAddresses","invoiceAddresses","createNewAddress","Checkout","currentAddressPickerType","isValidForm","refreshAddressesToggle","refreshCartAddressesToggle","refreshCartAddresses","offerDecrementTimerId","resetTimerInterval","clearInterval","defaultAdditionalOrderConfirmationEmail","updateOffer","resetOffer","apiCall","offerDto","startOfferValidTimer","openAddressPicker","newIntervalId","setInterval","decrementOfferTimer","goToCustomerSettings","tab","DeliveryComponent","OfferInformation","tabTypes","display","saveUser","lastname","newsletterMessage","newUsername","emailChangeWarningdialog","emailChangeRegisteredDialog","emailChangeFailedDialog","changePassword","UserInfoDto","userId","firstname","newsletterSubscribed","appCode","canManageUsers","preferredDeliveryAddressId","preferredInvoiceAddressId","UserSettings","lastUser","registeredChangedUserEmail","isUsernameValid","changePasswordDialog","loadUser","hasChanges","usernameIsDifferent","navigator","clipboard","writeText","useCompanyName","saveCustomer","canUserChangeSettings","customerMwstNumber","CustomerInfoDto","plz","generalEmail","generalPhone","currency","mwstRates","regionName","CustomerSettings","lastCustomer","companyNameRule","correctPlzRule","getCustomerCountry","customerMwstNumberRule","loadCustomer","settings","Settings","tabName","NotFoundComponent","goToUserSettings","userToRemove","isValidEmail","newUser","addUserDialog","addUser","userDeleteWarningDialog","UserLoginDto","confirmed","UserManagement","currentUserId","validEmailRule","savingClaim","getCurrentUserId","loadUsers","validateForm","usersCopy","currentUser","u","currentUserIndex","u1","u2","textA","toUpperCase","textB","unshift","usersLoaded","userIsLoggedInUser","isOnlyTrueManageUser","canManageUser","manageUserUsersCount","isOnlyDirectOrderUser","directOrderUsersCount","claimType","claimValue","updateLocalUser","claimDto","status","successful","_this$userToRemove","toggleAll","acceptingCosts","forceCancellation","cancellationRequestIsValid","RequestCancellation","fixCost","loadOrder","loadFixCost","isSelected","orderData","pos","orderPositions","goToOrders","toggleAllPositions","cancellation","ArticleId","CancellationConfirmation","loadOrderData","loadCancellationRequest","selectedForCancellation","cost","fixCosts","cancellationCost","getArticleName","getShownCancellationCost","setTimeout","currentStep","selectedPositions","formValid","ticketDto","complains","altContactButtonText","useAlternativeContactInfo","requiredAltContactEmailRule","alternativePhone","menge","partId","seiteVerlassenDialog","part","ChoosePosition","formatPrice","ComplainType","isReadonly","complaint","partsAreMissing","getComplaintImageUri","uploadingImages","showGallery","currentImage","expectationType","FileDto","filename","mimetype","filedata","guid","OutOfTolerance","WrongBending","CutqualityLow","Scratches","MissingCuts","WrongGrainDirection","TransportDamage","Missing","PowderCoating","Weldline","Feature","Other","ComplaintExpectationType","Ersatzlieferung","TicketState","EditTicketPositionComponent","valid","source","expectationTypes","ComplaintExpectationTypes","ersatzExpectation","requiredExpectationDescription","requiredChoiceRule","requiredNumberRule","ComplainTypes","powderCoatingTreatmentDto","weldlinesAsText","beforeMount","numberOfWrongParts","complainType","$nextTick","newImage","onImageClick","deleteImage","setMaxParts","ticket","Open","onValidChanged","TicketDto","Legacy","customerName","customerPhone","customerEmail","alternativeEmail","manufacturerName","createdAt","newDueDate","customerRepairCollectionDate","CreateTicketView","saving","requiredAltContactRule","isAlternativeContact","validateEmail","loadTicketDto","matches","input","selectedForComplaint","getComplainType","selectedValue","getExpectationDescription","typeValue","stringValue","canWeiter","ticketBlocked","close","routes","props","route","CreateTicket","redirect","router","VueRouter","context","queryString","location","search","urlParams","URLSearchParams","signInUser","_url","substr","sessionStorage","setItem","encodeURIComponent","UserManager","instance","signoutRedirect","loginCode","events","addAccessTokenExpiring","getUser","expired","signinRedirect","setCustomerInfo","customerInfo","loadedUsers","sa","getArticleById","payload","replaceArticle","articleConstruct","oldArticleId","cartIndex","resetOrderAfterSuccess","setOfferDeliveryChoice","newType","defaultManufacturerId","currentCartFromServer","positionsToRemove","local","server","serverPos","localPos","loadSavedCartIntoCurrentCart","savedCartpositions","addArticleFromSavedCartToCurrentCart","updatedCartItems","newCartId","output","articleIndex","addressId","setSnackbarText","setSnackbarErrorText","setSnackbarArticleText","intervalId","calculatingArticleIds","join","setupSignalR","connection","signalR","withUrl","accessTokenFactory","configureLogging","Information","build","start","onclose","jsonObject","OfferDto","Post","storeOidcUser","storeOidcInstance","updateUserSettings","updateCustomerSettings","addOrUpdateCustomerDeliveryAddress","addressIndex","addOrUpdateCustomerInvoiceAddress","setOrderDeliveryAddress","oldDeliverytown","oldZip","setOrderInvoiceAddress","setAddressAsUserPreferred","addressInfo","setIsAdditionalEmailSelected","setAdditionalOrderConfirmationEmail","setUsers","setUnseenHintIds","removeUnseenHintId","setLoading","setShowSnackbar","show","color","adjustSnackbarTimeout","setBannerErrorMessage","setCatalogueSearchTerm","term","setActiveCatalogueSortTypeValue","enumValue","setCatalogueUserId","addOrUpdateArticles","stateArticle","setCatalogueArticles","newArticleids","stateId","concat","addCatalogueArticleOnTop","setImportingArticles","addImportingArticle","nextTemporaryImportId","updateImportingArticle","indexOldArticle","addOrRemoveSelectedArticleId","clearSelectedArticleIds","moveImportingToMain","updateArticle","catalogueIndex","importIndex","removedArticles","parentAssemblyArticle","indexOfSubArticle","setCalculatingMessage","updatePriceStateOfArticle","setThicknessOfArticle","importArticleIndex","setArticleStateToLocked","setArticleStateToUnlocked","setArticleStateToCalculating","setFileSizeLimits","setPowders","addOrUpdateTreatmentForArticle","treatment","deleteTreatmentForArticle","setHasMoreArticlesToLoad","setArticleCalculatingPollingTimerId","articleCalculatingPollingTimerId","initializeCart","userDelivery","userInvoice","newItem","itemAlreadyInCart","removeArticleFromCart","setAmountOfCartItem","setRefreshCardAddressesToggle","setSavedCarts","saveNewSavedCart","setAmountOfSavedCartItem","addArticleToSavedCart","positionNr","setCurrentSavedCartId","setWerkstoffe","setPowderCoatingAvailability","isAvailable","setOrders","orderIndex","setOrderSuccessful","setCurrentOfferCalculating","setOrderCancellations","cancellations","addOrUpdateCancellation","cancellationIndex","setCurrentOfferToNull","newOffer","newDeliveryDate","defaultManufacturer","newClientOffer","setOfferFailed","hasFailed","setOfferFailReason","setOfferDeliveryDate","newDate","setCustomKommissionsnummer","kommissionsNummer","setOfferInvalidForCartUpdate","restartOfferValidTimer","decrementOfferValidTimer","setOfferDecrementTimerId","changeSelectedManufacturer","_state$offer$manufact","setPendingOrders","setCurrentPriceModel","currentPriceModel","setAcceptedAGB","accepted","setAcceptedNachAufwand","setRampenabholungSelectionValid","totalOfItemInCart","currentCartItem","currentArticle","modelPrices","relevantPrices","correctPrice","totalPrice","selectedManufacturer","manufacturer","date","rateDate","givenDate","setHours","aDate","bDate","getTime","rate","toJSON","tokenAsString","it","self","articlesInCart","aIndex","bIndex","startsWith","hasCutoutForPowdercoating","hasPowderCoatingOverride","Vuex","authorityUrl","redirectUri","postLogoutRedirectUri","pagination","sortBy","descending","rowsPerPage","orderSorting","authenticated","userStore","Oidc","WebStorageStateStore","authority","client_id","redirect_uri","post_logout_redirect_uri","response_type","scope","silent_redirect_uri","accessTokenExpiringNotificationTime","automaticSilentRenew","filterProtocolClaims","loadUserInfo","Store","mutations","actions","Moment","toLocaleString","minimumIntegerDigits","productionTip","VueGtm","defer","enabled","debug","loadScript","vueRouter","trackOnNextTick","FloatingVue","urlHash","hash","isLogoutRedirect","store","vuetify","h","$mount"],"mappings":"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","file":"js/app.c24e3214.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTreatmentEditDialog.vue?vue&type=style&index=0&id=415311d0&prod&scoped=true&lang=css\"","// define a new console\r\nvar console = (function(oldCons){\r\n return {\r\n log: function(text){\r\n post(text, 'Debug');\r\n },\r\n info: function (text) {\r\n post(text, 'Information');\r\n },\r\n warn: function (text) {\r\n post(text, 'Warning');\r\n },\r\n error: function (text) {\r\n post(text, 'Error');\r\n }\r\n };\r\n}(window.console));\r\n\r\n//Then redefine the old console\r\n// Umleitung des logs geschieht nur auf den Servern\r\nif (process.env.VUE_APP_MODE !== 'DEV') {\r\n window.console = console;\r\n}\r\n\r\nwindow.onerror = function (message, file, line, col, error) {\r\n console.error(message);\r\n return false;\r\n};\r\nwindow.addEventListener(\"error\", function (e) {\r\n console.error(message);\r\n return false;\r\n});\r\nwindow.addEventListener('unhandledrejection', function (e) {\r\n console.error(message);\r\n});\r\n\r\nconst package = JSON.parse(unescape(process.env.PACKAGE_JSON || '%7B%7D'));\r\n\r\nconst post = (message, level) => {\r\n\r\n const item = localStorage.getItem(`oidc.user:${process.env.VUE_APP_authorityUrl}:BlexonKundenportalClient`);\r\n var user = undefined;\r\n if (item !== undefined) {\r\n var object = JSON.parse(item);\r\n if (object != null) {\r\n user = object.profile.name\r\n }\r\n }\r\n\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(\"POST\", `${process.env.VUE_APP_eventUrl}api/log/postClientLog`, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(JSON.stringify({\r\n message: message,\r\n user: user,\r\n level: level,\r\n system: 'Shop - V' + package.version\r\n }));\r\n}\r\n\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditTicketPositionComponent.vue?vue&type=style&index=0&id=4a432b21&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportAssembly.vue?vue&type=style&index=0&id=07e747e0&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressTile.vue?vue&type=style&index=0&id=424a7cea&prod&scoped=true&lang=css\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTile.vue?vue&type=style&index=0&id=0ebc6e04&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportArticle.vue?vue&type=style&index=0&id=40eed7dd&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=style&index=0&id=67378591&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestCancellation.vue?vue&type=style&index=0&id=0e085246&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=54707d68&prod&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=279397e6&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartTabMenu.vue?vue&type=style&index=0&id=9d2d4688&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssemblyTile.vue?vue&type=style&index=0&id=56178c52&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderDetail.vue?vue&type=style&index=0&id=b2d81a16&prod&scoped=true&lang=css\"","module.exports = \"data:image/png;base64,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\"","// importing vue class component\r\nimport Component from 'vue-class-component'\r\n\r\n// registering additional router hooks with their names\r\nComponent.registerHooks([\r\n 'beforeRouteEnter',\r\n 'beforeRouteUpdate',\r\n 'beforeRouteLeave',\r\n])","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib';\r\nimport { Ripple } from 'vuetify/lib/directives'\r\n\r\nVue.use(Vuetify, {\r\n directives: {\r\n Ripple\r\n }\r\n});\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n themes: {\r\n light: {\r\n accent: '#EFBB20', // rgba(239, 187, 32)\r\n highlight: '#AA6200' // for highlighting text on white background\r\n },\r\n },\r\n },\r\n});","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',[_c('v-app-bar',{staticStyle:{\"border-bottom\":\"1px solid #e7eaec\",\"z-index\":\"99\"},attrs:{\"app\":\"\",\"flat\":\"\",\"color\":\"white\",\"elevation\":\"0\",\"height\":\"50px\",\"collapse\":_vm.collapseAppBar}},[(_vm.collapseAppBar)?_c('v-app-bar-nav-icon',{on:{\"click\":function($event){_vm.drawer = true}}}):_vm._e(),_c('img',{staticStyle:{\"height\":\"50px\",\"padding-right\":\"50px\"},attrs:{\"src\":require(\"./assets/blexon_logo_portal.png\")}}),(!_vm.collapseAppBar && !_vm.maintenance)?_c('v-tabs',{attrs:{\"color\":\"accent\"}},[_c('v-tab',{attrs:{\"to\":\"/Catalogue\"}},[_vm._v(\" Artikel \")]),_c('v-tab',{attrs:{\"to\":\"/Orders\"}},[_vm._v(\" Bestellungen \")]),_c('cart-tab-menu')],1):_vm._e(),_c('v-spacer'),(_vm.customer != null && !_vm.collapseAppBar)?_c('div',{staticClass:\"text-body-2 pr-2\",staticStyle:{\"line-height\":\"0.9\",\"white-space\":\"nowrap\"}},[_vm._v(\" \"+_vm._s(_vm.customer.user.firstname)+\" \"+_vm._s(_vm.customer.user.lastname)),_c('br'),_c('span',{staticStyle:{\"font-size\":\"10px\"}},[_vm._v(_vm._s(_vm.username))])]):_vm._e(),(!_vm.collapseAppBar)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: menu, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"elevation-0\",attrs:{\"color\":\"white\"}},'v-btn',attrs,false),{ ...menu }),[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-cog\")]),_vm._v(\" Konto \")],1)]}}],null,false,2886138481)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('Settings')}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-cog\")])],1),_c('v-list-item-title',[_vm._v(\"Einstellungen\")])],1),(_vm.userCanManageUsers)?_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('UserManagement')}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-account-group\")])],1),_c('v-list-item-title',[_vm._v(\"Benutzer verwalten\")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.logout()}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-title',[_vm._v(\"Abmelden\")])],1)],1)],1):_vm._e()],1),_c('v-navigation-drawer',{staticStyle:{\"top\":\"50px\"},attrs:{\"fixed\":\"\",\"width\":\"350\",\"temporary\":\"\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"accent\"},model:{value:(_vm.dataGroup),callback:function ($$v) {_vm.dataGroup=$$v},expression:\"dataGroup\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('Catalogue')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-puzzle\")])],1),_c('v-list-item-title',[_vm._v(\"Artikel\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('Orders')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-truck\")])],1),_c('v-list-item-title',[_vm._v(\"Bestellungen\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('Checkout')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-cart\")])],1),_c('v-list-item-title',[_vm._v(\"Warenkorb\")])],1),_c('v-divider'),_c('v-list-item',{attrs:{\"disabled\":\"\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-account\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.username)+\" \"),(_vm.customerId !== '')?_c('span',[_vm._v(\"(\"+_vm._s(_vm.customerId)+\")\")]):_vm._e()])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('Settings')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-cog\")])],1),_c('v-list-item-title',[_vm._v(\"Einstellungen\")])],1),(_vm.userCanManageUsers)?_c('v-list-item',{on:{\"click\":function($event){return _vm.navigateTo('UserManagement')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-account-group\")])],1),_c('v-list-item-title',[_vm._v(\"Benutzer verwalten\")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.logout()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-title',[_vm._v(\"Abmelden\")])],1)],1)],1)],1),_c('v-progress-linear',{staticClass:\"ma-0\",staticStyle:{\"position\":\"fixed\",\"top\":\"50px\",\"z-index\":\"99\"},attrs:{\"active\":_vm.isLoading,\"indeterminate\":\"\",\"color\":\"accent\",\"height\":\"5px\"}}),(_vm.bannerErrorMessage.length > 0)?_c('v-banner',{staticStyle:{\"margin-top\":\"55px\",\"margin-bottom\":\"-50px\"},attrs:{\"color\":\"#EF9A9A\",\"icon\":\"mdi-alert-circle\",\"tile\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\",\"pa-0\":\"\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"pa-0\"},[(_vm.maintenance)?_c('span',[_vm._v(\"Wir führen im Moment Wartungsarbeiten durch. Der Shop steht leider nicht zur Verfügung. Wir bitten Sie um etwas Geduld. Das System ist bald wieder bereit zu neuen Taten.\")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.bannerErrorMessage)+\" \")])]),_c('v-col',{staticClass:\"pa-0 ma-0 text-right\",attrs:{\"xs\":\"4\",\"sm\":\"3\",\"md\":\"2\",\"xl\":\"1\"}},[(!_vm.maintenance)?_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.dismissErrorMessageBanner()}}},[_vm._v(\" Verbergen \")]):_vm._e()],1)],1)],1)],1):_vm._e(),_c('v-main',{staticStyle:{\"background-color\":\"#f3f3f4\"}},[(_vm.criticalDataReady && !_vm.maintenance)?_c('router-view'):_vm._e()],1),_c('v-snackbar',{attrs:{\"color\":_vm.snackbar.color,\"light\":\"\",\"timeout\":_vm.snackbarTimeout,\"transition\":\"slide-y-reverse-transition\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeSnackbar()}}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]}}]),model:{value:(_vm.showSnackbar),callback:function ($$v) {_vm.showSnackbar=$$v},expression:\"showSnackbar\"}},[(_vm.snackbar.articleId > 0)?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"45px\",\"height\":\"45px\",\"src\":_vm.getThumbnailUrl(_vm.snackbar.articleId)}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.snackbar.text))])],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.snackbar.text)+\" \")])],1),_c('v-footer',{attrs:{\"app\":\"\",\"padless\":\"\",\"elevation\":\"0\",\"height\":\"auto\",\"fixed\":\"\"}},[_c('v-row',{staticStyle:{\"border-top\":\"1px solid #e7eaec\",\"background-color\":\"white\",\"margin-left\":\"0px\"}},[_c('a',{staticClass:\"footerLink\",attrs:{\"href\":\"https://www.blexon.com/werkstoffe-online-blechteile/\",\"target\":\"_blank\",\"title\":\"Liste der verfügbaren Werkstoffe\"}},[_vm._v(\" Werkstoffe \")]),_c('a',{staticClass:\"footerLink\",attrs:{\"href\":\"https://www.blexon.com/datenschutzerklaerung/\",\"target\":\"_blank\",\"title\":\"Bestimmungen zum Datenschutz\"}},[_vm._v(\" Datenschutz \")]),_c('a',{staticClass:\"footerLink\",attrs:{\"href\":\"https://blexon.com/agb/\",\"target\":\"_blank\",\"title\":\"Allgemeine Geschäftsbedingungen von Blexon\"}},[_vm._v(\" AGB \")]),_c('a',{staticClass:\"footerLink\",attrs:{\"href\":\"https://blexon.com/impressum/\",\"target\":\"_blank\",\"title\":\"Impressum\"}},[_vm._v(\" Impressum \")]),(_vm.customer && _vm.customer.companyName === 'privat')?_c('span',{staticClass:\"footerText\"},[_vm._v(\"Privatkonto (\"+_vm._s(_vm.customerId)+\")\")]):(_vm.customer)?_c('span',{staticClass:\"footerText\"},[_vm._v(\" \"+_vm._s(_vm.customer.companyName)+\" (\"+_vm._s(_vm.customerId)+\") \")]):_vm._e(),(_vm.customer != undefined)?_c('span',{staticClass:\"footerText\"},[_vm._v(\" \"+_vm._s(_vm.customer.regionName)+\" \")]):_vm._e(),_c('span',{staticClass:\"footerLink fill\"},[_c('span',{staticStyle:{\"padding-left\":\"20px\"}},[_vm._v(\"V \"+_vm._s(_vm.appVersion))])])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\r\n\r\nexport default function() {\r\n const userString = window.localStorage.getItem(`oidc.user:${process.env.VUE_APP_authorityUrl}:BlexonKundenportalClient`);\r\n //@ts-ignore\r\n const user = JSON.parse(userString);\r\n let client = axios.create({\r\n baseURL: process.env.VUE_APP_SERVER_URL,\r\n headers: {\r\n Authorization: 'Bearer ' + user.access_token,\r\n },\r\n });\r\n\r\n client.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n console.error(error.request.responseURL);\r\n console.error(error.message);\r\n return Promise.reject(error);\r\n });\r\n\r\n return client;\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"max-height\":\"500\",\"nudge-top\":\"5\",\"open-on-hover\":\"\",\"allow-overflow\":false,\"close-on-click\":false,\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-tab',_vm._g(_vm._b({attrs:{\"to\":\"/Checkout\"}},'v-tab',attrs,false),on),[_c('v-badge',{attrs:{\"inline\":\"\",\"color\":\"accent\",\"content\":_vm.cartItems.length > 0 ? _vm.cartItems.length : '0'}},[_vm._v(\" Warenkorb \")])],1)]}}])},[(!_vm.hasValidOffer && _vm.cartItems.length > 0)?_c('v-container',{staticClass:\"whiteBackground pa-0\"},[_c('v-row',{staticClass:\"pa-0 ma-0\",staticStyle:{\"max-height\":\"450px\",\"overflow-y\":\"auto\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-list',{staticClass:\"pa-0\"},_vm._l((_vm.cartItems),function(item,index){return _c('v-list-item',{key:index},[_c('cart-tab-menu-item',{attrs:{\"cartItem\":item}})],1)}),1)],1)],1),_c('v-divider'),_c('v-row',{staticClass:\"ma-0 pa-0\"},[_c('v-spacer'),_c('v-col',{staticClass:\"py-2\",attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"title\":\"Entfernt alle Artikel aus dem Warenkorb.\"},on:{\"click\":function($event){return _vm.emptyCart()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-close\")]),_vm._v(\"Leeren \")],1)],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-row',{attrs:{\"align\":\"center\",\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"50px\",\"height\":\"50px\",\"src\":_vm.thumbnailUrl}})],1),_c('v-col',{staticClass:\"px-3 text-right\",staticStyle:{\"width\":\"75px\"},attrs:{\"cols\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.cartItem.quantity)+\" x \")]),_c('v-col',{staticClass:\"mr-2\"},[(_vm.article.customerArticleName.length > 40)?_c('span',[_vm._v(\" \"+_vm._s((_vm.article.customerArticleName.substring(0, 37) + '...'))+\" \")]):_c('span',[_vm._v(_vm._s(_vm.article.customerArticleName))])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"fab\":\"\",\"x-small\":\"\",\"title\":\"Entfernt den Artikel aus dem Warenkorb.\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeFromCart()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { CartItem } from '@/dtos/cartItem';\r\n\r\n@Component\r\nexport default class CartTabMenuItem extends Vue {\r\n @Prop()\r\n private cartItem!: CartItem;\r\n\r\n private get article() {\r\n return this.$store.getters.articleById(this.cartItem.articleId);\r\n }\r\n\r\n private get thumbnailUrl() {\r\n return this.$store.getters.getThumbnailUrl(this.cartItem.articleId, undefined);\r\n }\r\n\r\n private removeFromCart() { \r\n this.$store.dispatch('removeArticleFromCart', this.cartItem.articleId); \r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartTabMenuItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartTabMenuItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CartTabMenuItem.vue?vue&type=template&id=6814aeb9&scoped=true\"\nimport script from \"./CartTabMenuItem.vue?vue&type=script&lang=ts\"\nexport * from \"./CartTabMenuItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6814aeb9\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { CartItem } from '@/dtos/cartItem';\r\nimport CartTabMenuItem from '@/views/Cart/CartTabMenuItem.vue'\r\n\r\n@Component({\r\n components: {\r\n CartTabMenuItem,\r\n }\r\n})\r\nexport default class CartTabMenu extends Vue {\r\n private get cartItems() {\r\n if (this.$store.state.currentCart === null) {\r\n return new Array();\r\n }\r\n return this.$store.state.currentCart.cartItems;\r\n }\r\n\r\n private get hasValidOffer() {\r\n const result = this.$store.state.offer !== null && \r\n !this.$store.state.currentCart.hasChanged && \r\n !this.$store.state.offerInvalidForCartUpdate &&\r\n !this.$store.state.currentOfferCalculating;\r\n return result;\r\n }\r\n\r\n private emptyCart() {\r\n this.$store.dispatch('emptyCart');\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartTabMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartTabMenu.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CartTabMenu.vue?vue&type=template&id=9d2d4688&scoped=true\"\nimport script from \"./CartTabMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./CartTabMenu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CartTabMenu.vue?vue&type=style&index=0&id=9d2d4688&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9d2d4688\",\n null\n \n)\n\nexport default component.exports","\r\n\timport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\timport httpClient from \"./store/httpClient\";\r\n\timport CartTabMenu from \"./views/Cart/CartTabMenu.vue\";\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\tCartTabMenu,\r\n\t\t},\r\n\t})\r\n\texport default class App extends Vue {\r\n\t\t@Prop()\r\n\t\tprivate msg!: string;\r\n\t\tprivate drawer: boolean = false;\r\n\t\tprivate currentWindowWidth: number = 0;\r\n\t\tprivate dataGroup: any = null;\r\n\t\tprivate userGroup: any = null;\r\n\t\tprivate criticalDataReady: boolean = false;\r\n\t\tprivate impersonateUsername: string = \"\";\r\n\t\tprivate userCanManageUsers: boolean = false;\r\n\r\n\t\tprivate async created() {\r\n\t\t\tthis.$store.commit(\"setCurrentOfferToNull\");\r\n\t\t\tawait this.loadUserInfoAndFileSizeLimits()\r\n\t\t\t\t.then(this.setUserCanManageUsers)\r\n\t\t\t\t.then(this.setupShoppingCart)\r\n\t\t\t\t.then(this.loadAvailabilities)\r\n\t\t\t\t.then(this.loadHints)\r\n\t\t\t\t.then(() => (this.criticalDataReady = true))\r\n\t\t\t\t.then(this.checkForKundenportalErrorMessages);\r\n\t\t}\r\n\r\n\t\tprivate mounted() {\r\n\t\t\tthis.setupResizeEvent();\r\n\t\t\tthis.setupArticlePollingInterval();\r\n\t\t\tconsole.log(\"App started\");\r\n\t\t}\r\n\r\n\t\tprivate get isAdmin() {\r\n\t\t\treturn this.$store.state.customer.user.isAdmin;\r\n\t\t}\r\n\r\n\t\tprivate async setUserCanManageUsers() {\r\n\t\t\tconst response = await httpClient().get(\"Customer/CanUserManageUsers\");\r\n\t\t\tthis.userCanManageUsers = response.data;\r\n\t\t}\r\n\r\n\t\tprivate get maintenance() {\r\n\t\t\treturn this.$store.getters.isMaintenance && !this.isAdmin;\r\n\t\t}\r\n\r\n\t\tprivate get appVersion() {\r\n\t\t\treturn (this.$store.state.packageJson as any).version;\r\n\t\t}\r\n\r\n\t\tprivate get username() {\r\n\t\t\tif (this.$store.state.oidc !== undefined) {\r\n\t\t\t\tconsole.log(\"logged in as \" + this.$store.state.oidc.user.profile.name);\r\n\t\t\t\treturn this.$store.state.oidc.user.profile.name;\r\n\t\t\t}\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tprivate get customerId() {\r\n\t\t\treturn this.$store.getters.customerId;\r\n\t\t}\r\n\r\n\t\tprivate get customer() {\r\n\t\t\treturn this.$store.state.customer;\r\n\t\t}\r\n\r\n\t\tprivate get snackbar() {\r\n\t\t\treturn this.$store.state.snackbar;\r\n\t\t}\r\n\r\n\t\tprivate get isLoading() {\r\n\t\t\treturn this.$store.state.loading;\r\n\t\t}\r\n\r\n\t\tprivate get collapseAppBar() {\r\n\t\t\treturn this.currentWindowWidth < 1000;\r\n\t\t}\r\n\r\n\t\tprivate get bannerErrorMessage() {\r\n\t\t\treturn this.$store.state.bannerErrorMessage;\r\n\t\t}\r\n\r\n\t\tprivate getThumbnailUrl(articleId: number) {\r\n\t\t\treturn this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n\t\t}\r\n\r\n\t\tprivate get showSnackbar() {\r\n\t\t\treturn this.$store.state.showSnackbar;\r\n\t\t}\r\n\t\tprivate set showSnackbar(value: boolean) {\r\n\t\t\tthis.$store.commit(\"setShowSnackbar\", value);\r\n\t\t}\r\n\t\tprivate get snackbarTimeout() {\r\n\t\t\treturn this.$store.state.snackbarTimeout;\r\n\t\t}\r\n\t\tprivate closeSnackbar() {\r\n\t\t\tthis.$store.commit(\"setShowSnackbar\", false);\r\n\t\t}\r\n\r\n\t\tprivate navigateTo(to: string) {\r\n\t\t\tthis.$router.push({ name: to });\r\n\t\t}\r\n\r\n\t\tprivate logout() {\r\n\t\t\tthis.$store.dispatch(\"logout\");\r\n\t\t}\r\n\r\n\t\tprivate async loadUserInfoAndFileSizeLimits() {\r\n\t\t\tconst response = await httpClient().get(\"Customer/GetCustomer\");\r\n\t\t\tthis.$store.dispatch('setCustomerInfo', response.data);\r\n\t\t\tthis.$store.dispatch('loadFileSizeLimits');\r\n\t\t\tthis.$store.dispatch('loadUsers');\r\n\t\t}\r\n\r\n\t\tprivate async loadAvailabilities() {\r\n\t\t\tconst response = await httpClient().get(\r\n\t\t\t\t`material/GetAvailabilities?regionId=${this.$store.state.customer.regionId}`\r\n\t\t\t);\r\n\t\t\tlet availabilities = response.data;\r\n\t\t\tthis.$store.commit(\"setWerkstoffe\", availabilities.werkstoffe);\r\n\t\t\tthis.$store.commit(\"setPowderCoatingAvailability\", availabilities.isPulverbeschichtungAvailable);\r\n\t\t}\r\n\r\n\t\tprivate setupShoppingCart() {\r\n\t\t\tif (this.$store.state.currentCart === null) {\r\n\t\t\t\tconst userAddresses = {\r\n\t\t\t\t\tdelivery: this.$store.getters.userPreferredDeliveryAddress,\r\n\t\t\t\t\tinvoice: this.$store.getters.userPreferredInvoiceAddress,\r\n\t\t\t\t}\r\n\t\t\t\tthis.$store.dispatch(\"initializeCart\", userAddresses);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate setupResizeEvent() {\r\n\t\t\tthis.setWindowWidth();\r\n\t\t\twindow.addEventListener(\"resize\", (event) => {\r\n\t\t\t\tthis.setWindowWidth();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate setupArticlePollingInterval() {\r\n\t\t\tthis.$store.dispatch('startArticleCalculatingPollingTimer');\r\n\t\t}\r\n\r\n\t\tprivate setWindowWidth() {\r\n\t\t\tthis.currentWindowWidth = window.innerWidth;\r\n\t\t}\r\n\r\n\t\tprivate async loadHints() {\r\n\t\t\tconst response = await httpClient().get(\"Customer/GetNotShownUserHints\");\r\n\t\t\tthis.$store.commit('setUnseenHintIds', response.data);\r\n\t\t}\r\n\r\n\t\tprivate async checkForKundenportalErrorMessages() {\r\n\t\t\tconst response = await httpClient().get(\"Settings/GetLastBroadcastEvent?eventType=KundenportalError\");\r\n\t\t\tthis.$store.commit(\"setBannerErrorMessage\", response.data);\r\n\t\t}\r\n\t\tprivate dismissErrorMessageBanner() {\r\n\t\t\tthis.$store.commit(\"setBannerErrorMessage\", \"\");\r\n\t\t}\r\n\t}\r\n","/* State type for articles in the catalogue */\r\nexport enum ArticleState {\r\n OK = 0,\r\n Warning = 1,\r\n Error = 2,\r\n New = 4,\r\n Info = 6,\r\n Deleted = 9\r\n}\r\n","\r\nexport enum PriceState {\r\n NotCalculated = 0,\r\n Invalid = 1,\r\n Ok = 2,\r\n Failed = 3,\r\n Calculating = 4\r\n}","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=279397e6\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=279397e6&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.pendingOrders.length > 0)?_c('v-row',[_c('v-col',{staticClass:\"py-2\",attrs:{\"cols\":\"12\"}},[_c('h1',{staticClass:\"text-h5\"},[_vm._v(\"Offene Bestellungen\")]),_c('p',{staticClass:\"text-body-2\"},[_vm._v(\" Die folgenden Bestellungen wurden von den jeweiligen Benutzern beantragt, aber noch nicht freigegeben. \")])])],1):_vm._e(),_vm._l((_vm.pendingOrders),function(order){return _c('pending-order',{key:order.id,attrs:{\"pendingOrder\":order},on:{\"deleted\":function($event){return _vm.removePendingOrder($event)}}})}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"dragArea\",style:(_vm.dragAreaHeightStyle),on:{\"dragover\":_vm.dragover,\"dragleave\":_vm.dragleave,\"drop\":_vm.drop}},[_c('div',{class:_vm.dragAreaContentClass},[_c('input',{ref:\"upload\",attrs:{\"type\":\"file\",\"multiple\":\"\",\"accept\":\".step, .stp, .dxf\"},on:{\"change\":function($event){return _vm.uploadFiles($event, $event.target.files)}}}),_c('v-btn',{staticClass:\"mb-2 blexon-button\",attrs:{\"title\":\"Artikel auswählen und hochladen.\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$refs.upload.click()}}},[_c('v-icon',[_vm._v(\"mdi-upload\")])],1),_c('br'),(!_vm.showFullscreenImport)?_c('p',{staticClass:\"ma-0 pa-0 text-caption\"},[_c('span',{staticClass:\"text-overline\"},[_vm._v(\"Artikel Import\")]),_c('br'),_vm._v(\" Maximal 10 Dateien (.step / .stp / .dxf) in diesen Bereich ziehen oder den Knopf drücken \")]):_c('p',{staticClass:\"ma-0 pa-0\"},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\"Artikel Import\")]),_c('br'),_c('br'),_vm._v(\" Noch etwas leer hier...\"),_c('br'),_c('br'),_vm._v(\" Importieren Sie Ihre CAD Modelle im Format .step oder .dxf indem Sie die Dateien auf diese Fläche ziehen oder klicken Sie auf den Knopf oben, um die Dateien auszuwählen.\"),_c('br'),_c('br'),_vm._v(\" Blexon importiert anschliessend Ihre Teile, prüft sie auf Machbarkeit und berechnet automatisch die Preise.\"),_c('br'),_c('br'),_vm._v(\" Das Video zeigt die ersten Schritte mit Blexon \"),_c('iframe',{staticClass:\"video\",style:({visibility: _vm.dragging ? 'hidden' : 'visible'}),attrs:{\"src\":\"https://www.youtube.com/embed/ey5Rq8y70KU\",\"heigth\":\"720\",\"title\":\"So einfach laden Sie CAD Modelle zu Blexon hoch und bestellen direkt online lasergeschnittene Blechteile nach Maß\",\"frameborder\":\"0\",\"allowfullscreen\":\"\"}})])],1)])])],1),_vm._l((_vm.importingArticles),function(article){return _c('v-row',{key:article.articleId},[(!article.isAssembly && article.parentArticleId == null)?_c('import-article',{attrs:{\"articleId\":article.articleId}}):_vm._e(),(article.isAssembly)?_c('import-assembly',{attrs:{\"articleId\":article.articleId}}):_vm._e()],1)}),(_vm.hasArticles)?_c('v-row',{staticClass:\"mt-5 ustify-center align-start\",class:{floatingFilter: _vm.floatingFilter},attrs:{\"wrap\":\"\"}},[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":_vm.hasMultipleUsers ? 4 : 6}},[_c('v-text-field',{attrs:{\"label\":\"Artikel suchen:\",\"placeholder\":\"Artikelname oder -nummer eingeben...\",\"color\":\"accent\",\"prepend-icon\":\"mdi-magnify\"},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":_vm.hasMultipleUsers ? 4 : 6}},[_c('v-select',{attrs:{\"items\":_vm.sortTypes,\"return-object\":\"\",\"label\":\"Sortierung:\",\"color\":\"accent\"},model:{value:(_vm.activeSortType),callback:function ($$v) {_vm.activeSortType=$$v},expression:\"activeSortType\"}})],1),(_vm.hasMultipleUsers)?_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.users,\"item-text\":\"name\",\"item-value\":\"userId\",\"label\":\"Artikel anzeigen von:\",\"color\":\"accent\"},model:{value:(_vm.selectedUserId),callback:function ($$v) {_vm.selectedUserId=$$v},expression:\"selectedUserId\"}})],1):_vm._e(),_c('multi-edit')],1):_vm._e(),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-wrap\":\"wrap\",\"gap\":\"15px 15px\"},attrs:{\"id\":\"artikelListe\"}},_vm._l((_vm.catalogueArticles),function(article){return _c('div',{key:article.articleId,staticStyle:{\"min-width\":\"400px\",\"max-width\":\"600px\",\"flex\":\"1 1 0\"}},[(!article.isAssembly)?_c('article-tile',{attrs:{\"articleId\":article.articleId}}):_c('assembly-tile',{attrs:{\"articleId\":article.articleId}})],1)}),0),(_vm.hasMoreToLoad)?_c('v-row',[_c('v-col',{staticClass:\"text-center pa-0\",attrs:{\"cols\":\"12\"}},[(!_vm.articleLoading)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Lädt weitere Artikel mit den aktuellen Filtereinstellungen.\"},on:{\"click\":function($event){return _vm.manuallyLoadMoreArticles()}}},[_vm._v(\" Mehr laden \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-chevron-down\")])],1):_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1)],1):_vm._e(),_c('v-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.uploadWarningDialog),callback:function ($$v) {_vm.uploadWarningDialog=$$v},expression:\"uploadWarningDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Inkompatible Dateien\")]),_c('v-card-text',[(_vm.invalidFormatUploadFiles.length > 0)?_c('div',[_vm._v(\" Folgende Dateien haben ein ungültiges Format und können nicht hochgeladen werden: \"),_vm._l((_vm.invalidFormatUploadFiles),function(file,index){return _c('p',{key:index,staticClass:\"mb-0\"},[_c('span',{staticStyle:{\"margin-left\":\"1em\"}},[_vm._v(\"- \"+_vm._s(file))])])}),_c('br')],2):_vm._e(),(_vm.invalidFormatUploadFiles.length > 0 && (_vm.warningUploadFiles.length > 0 || _vm.errorUploadFiles.length > 0))?_c('div',[_c('v-divider'),_c('br')],1):_vm._e(),(_vm.errorUploadFiles.length > 0)?_c('div',[_vm._v(\" Folgende Dateien überschreiten die maximal erlaubte Dateigröße und können nicht hochgeladen werden: \"),_vm._l((_vm.errorUploadFiles),function(file,index){return _c('p',{key:index,staticClass:\"mb-0\"},[_c('span',{staticStyle:{\"margin-left\":\"1em\"}},[_vm._v(\"- \"+_vm._s(file))])])}),_c('br')],2):_vm._e(),(_vm.errorUploadFiles.length > 0 && _vm.warningUploadFiles.length > 0)?_c('div',[_c('v-divider'),_c('br')],1):_vm._e(),(_vm.warningUploadFiles.length > 0)?_c('div',[_vm._v(\" Folgende Dateien sind sehr groß und werden nicht automatisch weiterverarbeitet: \"),_vm._l((_vm.warningUploadFiles),function(file,index){return _c('p',{key:index,staticClass:\"mb-0\"},[_c('span',{staticStyle:{\"margin-left\":\"1em\"}},[_vm._v(\"- \"+_vm._s(file))])])}),_c('br'),_vm._v(\" Bitte definieren Sie für diese Artikel den passenden Werkstoff und die korrekte Dicke. Nach dem Blexonisieren werden die Artikel Ihrem Katalog hinzugefügt. Von dort können Sie die Artikel an unser Helpdesk zur Überprüfung senden. \"),_c('br'),_c('br')],2):_vm._e(),(_vm.errorUploadFiles.length > 0 || _vm.warningUploadFiles.length > 0)?_c('div',[_c('v-divider'),_c('br'),_vm._v(\" Weitere Informationen zu den erlaubten Dateigrößen und zu den Ursachen von großen CAD Modellen erhalten Sie in unserem \"),_c('a',{attrs:{\"href\":\"https://blexon.com/grosse-cad-modelle-hochladen/\",\"target\":\"_blank\"}},[_vm._v(\"Blog\")]),_vm._v(\". \")],1):_vm._e()]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.uploadWarningDialog = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-container',{staticClass:\"articleTile\",class:{'elevation-10' : hover},staticStyle:{\"position\":\"relative\"}},[_c('v-overlay',{attrs:{\"absolute\":true},model:{value:(_vm.deleteOverlay),callback:function ($$v) {_vm.deleteOverlay=$$v},expression:\"deleteOverlay\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1),_c('v-row',{staticClass:\"ma-0\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":_vm.isMultiSelectionMode || hover ? 10 : 11}},[_c('p',{staticClass:\"subtitle-1 ma-0 pa-0 truncate\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({staticClass:\"pointerElement\",on:{\"click\":_vm.openArticleEditDialog}},on),[_vm._v(\" \"+_vm._s(_vm.article.customerArticleName)+\" \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.article.customerArticleName)+\" \")])],1)]),(hover || _vm.isMultiSelectionMode)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.article.locked,\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.isArticleSelected),callback:function ($$v) {_vm.isArticleSelected=$$v},expression:\"isArticleSelected\"}})],1)]}}],null,true)},[_vm._v(\" Auswählen für Mehrfachaktion. Mögliche Aktionen werden oben angezeigt. \")])],1):_vm._e(),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\",\"title\":\"Öffnet das Kontextmenü zum Artikel.\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.isArticleLockedAndNotAdmin || _vm.isCalculating},on:{\"click\":_vm.openArticleEditDialog}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-pencil\")])],1),_c('v-list-item-title',[_vm._v(\" Bearbeiten \")])],1),_c('v-list-item',{attrs:{\"disabled\":_vm.isArticleLockedAndNotAdmin || _vm.isCalculating},on:{\"click\":function($event){return _vm.checkDeleteArticle()}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-delete\")])],1),_c('v-list-item-title',[_vm._v(\" Löschen \")])],1),(_vm.isArticleLockedAndAdmin)?_c('v-list-item',{attrs:{\"disabled\":_vm.isCalculating},on:{\"click\":function($event){return _vm.unlockArticle()}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-lock-open\")])],1),_c('v-list-item-title',[_vm._v(\" Unlock \")])],1):_vm._e(),(_vm.isArticleUnlockedAndAdmin)?_c('v-list-item',{attrs:{\"disabled\":_vm.isCalculating},on:{\"click\":function($event){return _vm.lockArticle()}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-lock\")])],1),_c('v-list-item-title',[_vm._v(\" Lock \")])],1):_vm._e()],1)],1)],1)],1),_c('v-row',{staticClass:\"ma-0\",staticStyle:{\"min-height\":\"200px\"}},[_c('v-col',{staticClass:\"pa-2\",attrs:{\"cols\":\"6\"}},[_c('v-img',{staticClass:\"previewImage\",style:({ cursor: _vm.article.calculating || _vm.article.migrated ? 'not-allowed' : 'pointer'}),attrs:{\"contain\":\"\",\"width\":\"160px\",\"height\":\"150px\",\"title\":\"Öffnet das CAD Modell im Browser. Im integrierten CAD Editor von Blexon können Die Gewinde, Senkungen, Gravuren, Schweissnähte usw. einfügen / bearbeiten. Ausserdem Maße kontrollieren, Meldungen anzeigen und Fehlerursachen beheben.\",\"src\":_vm.getThumbnailUrl(_vm.article.articleId)},on:{\"click\":function($event){return _vm.openCadDialog()}}}),(_vm.hasFeatures)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-cogs\")]),_c('span',{staticClass:\"ml-2\",staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\"Bearbeitungen\")])],1)]}}],null,true)},[_c('div',[(_vm.article.powderCoatingTreatment != null)?_c('div',{staticStyle:{\"display\":\"table-cell\"}},[_c('span',{style:({display: 'inline-block', width: '20px', height: '20px', background: _vm.article.powderCoatingTreatment.powder.surfaceColor.hexCode + 'ff'})}),_c('span',{staticStyle:{\"margin-left\":\"10px\",\"vertical-align\":\"top\"}},[_vm._v(\"RAL \"+_vm._s(_vm.article.powderCoatingTreatment.powder.surfaceColor.ralCode)+\" (\"+_vm._s(_vm.article.powderCoatingTreatment.powder.surfaceColor.name)+\") - \"+_vm._s(_vm.getStructureText(_vm.article.powderCoatingTreatment.powder.structure))+\" - \"+_vm._s(_vm.getFinishText(_vm.article.powderCoatingTreatment.powder.finish)))])]):_vm._e(),(_vm.article.featureDtos != null && _vm.article.featureDtos.length > 0)?_c('div',_vm._l((_vm.article.featureDtos),function(feature,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(feature.count)+\" x \"+_vm._s(feature.friendlyName)+\" \")])}),0):_vm._e(),(_vm.article.hasEngravings)?_c('div',[_vm._v(\" Gravur \")]):_vm._e(),(_vm.article.weldlines != null && _vm.article.weldlines.length > 0)?_c('div',[_vm._v(\" \"+_vm._s(_vm.getWeldlineString())+\" \")]):_vm._e()])]):_vm._e()],1),_c('v-col',{staticClass:\"text-caption pa-0\",attrs:{\"cols\":\"6\"}},[(_vm.article.customerArticleId !== '')?_c('p',{staticClass:\"ma-0 pa-0\"},[_c('span',{staticClass:\"pointerElement\",on:{\"click\":_vm.openArticleEditDialog}},[_c('strong',[_vm._v(\"Artikel Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.customerArticleId)+\" \")])]):_vm._e(),_c('p',{staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Blexon Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.articleId)+\" \")]),(_vm.article.materialId > 0)?_c('p',{staticClass:\"ma-0 pa-0\"},[_vm._v(\" \"+_vm._s(_vm.article.materialname)+\" \")]):_c('div',[(_vm.article.werkstoffId > 0)?_c('p',{staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Werkstoff:\")]),_vm._v(\" \"+_vm._s(_vm.article.werkstoffname)+\" \")]):_vm._e(),(_vm.article.thickness > 0)?_c('p',{staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Dicke:\")]),_vm._v(\" \"+_vm._s(_vm.article.thickness)+\"mm \")]):_vm._e()]),_c('span',{staticStyle:{\"display\":\"inline-block\",\"margin-right\":\"4px\",\"height\":\"10px\",\"width\":\"10px\",\"background-color\":\"rgb(69, 160, 205)\"}}),_vm._v(\" Oberseite\"+_vm._s(_vm.getZusatzbezeichnungOberseite())),_c('br'),_c('span',{staticStyle:{\"display\":\"inline-block\",\"margin-right\":\"4px\",\"height\":\"10px\",\"width\":\"10px\",\"background-color\":\"rgb(140, 160, 170)\"}}),_vm._v(\" Unterseite\"+_vm._s(_vm.getZusatzbezeichnungUnterseite())),_c('br'),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.article.length > 0),expression:\"article.length > 0\"}],staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"LxBxH:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.article.length))+\" x \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.article.width))+\" x \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.article.height))+\"mm \")]),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.article.length > 0),expression:\"article.length > 0\"}],staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Gewicht:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"round3Decimal\")(_vm.article.weight))+\"kg \")]),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0 pointerElement\",attrs:{\"cols\":\"auto\"},on:{\"click\":_vm.openArticleEditDialog}},[_c('strong',[_vm._v(\"Entgraten: \")]),_c('a',{staticClass:\"articleTileLink\"},[_vm._v(_vm._s(_vm.getEntgratartText(_vm.article.entgratart)))])])],1),(_vm.isPowderCoatingAvailable)?_c('v-row',{staticClass:\"ma-0\",class:_vm.canChangePowderCoating ? 'pointerElement' : '',style:(_vm.canChangePowderCoating ? '' : 'margin-top: -1px !important'),attrs:{\"align\":\"end\"},on:{\"click\":function($event){if(_vm.canChangePowderCoating) _vm.articleTreatmentEditDialog = true}}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":_vm.canChangePowderCoating ? 12 : 11}},[_c('strong',[_vm._v(\"Pulverbeschichten: \")]),(_vm.canChangePowderCoating)?_c('a',{staticClass:\"articleTileLink\"},[_vm._v(_vm._s(_vm.powderCoatingText))]):_c('span',[_vm._v(_vm._s(_vm.powderCoatingText))])]),(!_vm.canChangePowderCoating)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-btn',{staticClass:\"blexon-button\",staticStyle:{\"margin-bottom\":\"1px\"},attrs:{\"icon\":\"\",\"x-small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.powderCoatingNotEditableDialog = true}}},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"mdi-help\")])],1)],1):_vm._e()],1):_vm._e()],1)],1),(_vm.article.calculating)?_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-progress-circular',{attrs:{\"size\":\"26\",\"indeterminate\":\"\",\"color\":\"accent\"}}),_c('p',{staticClass:\"text-caption\"},[_vm._v(\" \"+_vm._s(_vm.article.calculatingMessage)+\" \")])],1)],1):_vm._e(),(!_vm.article.calculating)?_c('v-row',{staticClass:\"mx-0 mt-2 align-center\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.article.camMessages.filter((m) => m.state == 0).length <= 0},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [(_vm.isStatusChipLinkToCad)?_c('v-chip',_vm._g({staticClass:\"text-caption\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"color\":_vm.articleStateColor},on:{\"click\":function($event){return _vm.openCadDialog()}}},on),[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.articleStateIcon))])],1),_vm._v(\" \"+_vm._s(_vm.articleStateText)+\" \")],1):_c('v-chip',_vm._g({staticClass:\"text-caption\",attrs:{\"color\":_vm.articleStateColor}},on),[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.articleStateIcon))])],1),_vm._v(\" \"+_vm._s(_vm.articleStateText)+\" \")],1)]}}],null,true)},[_vm._l((_vm.article.camMessages.filter((m) => m.state == 0)),function(message,index){return _c('p',{key:index,staticClass:\"ma-0\"},[_c('span',[_vm._v(\"- \"+_vm._s(message.title))])])}),(_vm.article.state == 2)?_c('p',[_vm._v(\" Öffnen Sie den Artikel im CAD und überprüfen Sie den Fehler. Sie können den Artikel zur kostenlosen Abklärung an unser Helpdesk senden. \")]):_vm._e(),(_vm.article.state == 6)?_c('p',[_vm._v(\" Bitte öffnen Sie den Artikel im CAD und definieren Sie, was mit den erkannten Bearbeitungen gemacht werden soll. \")]):_vm._e()],2)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[(!_vm.article.calculating && (_vm.article.state == 0 || _vm.article.state == 1) && !_vm.article.migrated && !_vm.article.locked)?_c('div',[_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"pa-0 article-button\",attrs:{\"small\":\"\",\"color\":_vm.priceStateColor,\"block\":\"\",\"disabled\":_vm.article.priceState == 4,\"title\":\"Öffnet die Preisliste des Artikels.\"}},'v-btn',attrs,false),on),[(_vm.article.priceState == 4)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):(_vm.showPriceError)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-close\")]):_vm._e(),_vm._v(\" Preisliste \")],1)]}}],null,true)},[(_vm.article.priceState == 0)?_c('div',{staticStyle:{\"background-color\":\"white\",\"padding\":\"5px\",\"max-width\":\"200px\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Die Preise für diesen Artikel müssen noch berechnet werden.\"),_c('br'),_vm._v(\" Falls die Berechnung nicht automatisch startet, kontaktieren Sie unser Helpdesk. \")])]):_vm._e(),(_vm.article.priceState == 1)?_c('div',{staticStyle:{\"background-color\":\"white\",\"padding\":\"5px\",\"max-width\":\"200px\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Materialpreise unterliegen aktuell starken Marktschwankungen. Deswegen sind unsere Preise nur eine beschränkte Zeit gültig. Die Preise für diesen Artikel müssen neu berechnet werden.\")]),_c('v-btn',{staticClass:\"blexon-article-button\",attrs:{\"small\":\"\",\"block\":\"\",\"title\":\"Berechnet und aktualisiert die Preise für den Artikel.\"},on:{\"click\":function($event){return _vm.recalculatePrice()}}},[_vm._v(\" Neu Berechnen \")])],1):_vm._e(),_c('speech-bubble-float',{attrs:{\"hintId\":_vm.priceListHintId,\"message\":_vm.priceListHintText,\"title\":_vm.priceListHintTitle}},[(_vm.article.priceState == 2)?_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',{staticStyle:{\"cursor\":\"pointer\"}},[_c('td',{staticStyle:{\"vertical-align\":\"center\"},attrs:{\"colspan\":_vm.availablePriceModels.length + 2,\"title\":\"Erfahren Sie hier, wie Sie Ihre Artikel noch günstiger bekommen.\"}},[_c('v-btn',{staticClass:\"blexon-button mr-2\",attrs:{\"x-small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.preisInformationenDialog = true}}},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"mdi-help\")])],1),_vm._v(\" Preishinweis \")],1)]),(_vm.availablePriceModels.length > 1)?_c('tr',[_c('th'),_c('th',{staticClass:\"text-center\",attrs:{\"colspan\":_vm.availablePriceModels.length}},[_vm._v(\" Preis / Stk. [\"+_vm._s(_vm.waehrung)+\"] \")]),_c('th')]):_vm._e(),(_vm.availablePriceModels.length > 1)?_c('tr',[_c('th',[_vm._v(\" Menge \")]),_vm._l((_vm.availablePriceModels),function(model){return _c('th',{key:model.value,staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(model.name)+\" \")])}),_c('th')],2):_c('tr',[_c('th',[_vm._v(\" Menge \")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\" Preis/Stk. [\"+_vm._s(_vm.waehrung)+\"] \")]),_c('th')])]),_c('tbody',_vm._l((_vm.sortedPrices),function(price,index){return _c('tr',{key:index,staticClass:\"text-caption\"},[(price.quantity == 1000)?_c('td',[_vm._v(\"ab \"+_vm._s(price.quantity))]):_c('td',[_vm._v(_vm._s(price.quantity))]),_vm._l((_vm.availablePriceModels),function(model){return _c('td',{key:model.value,staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.getModelPrice(price.quantity, model.value))+\" \")])}),_c('td',{staticStyle:{\"padding-right\":\"5px\",\"padding-left\":\"3px\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"accent\",\"small\":\"\",\"disabled\":_vm.isCartButtonDisabled,\"title\":price.quantity + ' Stück in den Warenkorb'},on:{\"click\":function($event){_vm.amountToAddToCart = price.quantity; _vm.addToCart()}}},[_vm._v(\" mdi-cart-arrow-down \")])],1)],2)}),0)]):_vm._e()],1),(_vm.article.priceState == 3)?_c('div',{staticStyle:{\"background-color\":\"white\",\"padding\":\"5px\",\"max-width\":\"200px\"}},[_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Für diesen Artikel konnten die Preise nicht automatisch berechnet werden.\"),_c('br'),_vm._v(\" Bitte senden Sie den Artikel für eine kostenlose Abklärungen an unser Helpdesk.\")])]):_vm._e()],1)],1):_vm._e()])],1):_vm._e(),(_vm.isCartButtonRowVisible)?_c('v-row',{staticClass:\"mx-0 my-0 mt-2 align-center\"},[_c('v-col',{staticClass:\"pa-0 pr-2\",attrs:{\"cols\":\"6\"}},[_c('v-form',{model:{value:(_vm.isValidAmount),callback:function ($$v) {_vm.isValidAmount=$$v},expression:\"isValidAmount\"}},[_c('v-text-field',{attrs:{\"placeholder\":\"Menge\",\"type\":\"number\",\"rules\":_vm.allowedCartAmountRule,\"color\":\"accent\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.amountToAddToCart),callback:function ($$v) {_vm.amountToAddToCart=_vm._n($$v)},expression:\"amountToAddToCart\"}})],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-btn',{staticClass:\"pa-0 blexon-article-button\",attrs:{\"small\":\"\",\"block\":\"\",\"disabled\":_vm.isCartButtonDisabled},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToCart()}}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-cart-arrow-down\")]),_vm._v(\" In Warenkorb \")],1)],1)]}}],null,true)},[(_vm.isCartButtonDisabled && _vm.article.hasEngravings && _vm.article.powderCoatingTreatment != null)?_c('span',[_vm._v(\" Artikel mit Pulverbeschichtung und Gravur können nicht bestellt werden.\"),_c('br'),_vm._v(\" Die Gravur würde von der Pulverbeschichtung vollständig überdeckt.\"),_c('br'),_vm._v(\" Entfernen Sie entweder die Gravur oder die Pulverbeschichtung, um den Artikel bestellen zu können. \")]):(!_vm.article.canBeProduced)?_c('span',[_vm._v(\" Artikel kann aktuell in \"+_vm._s(_vm.region)+\" nicht bestellt werden. \")]):_c('span',[_vm._v(\" Fügt den Artikel zum Warenkorb hinzu. \")])])],1)],1):_vm._e(),_c('v-row',{staticClass:\"mx-0 my-0\"},[(_vm.isHelpdeskButtonVisible)?_c('v-col',{staticClass:\"pa-0 mt-2\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"blexon-article-button my-0\",attrs:{\"small\":\"\",\"block\":\"\",\"disabled\":_vm.isHelpdeskButtonDisabled},on:{\"click\":function($event){_vm.reasonToSendArticleToHelpdesk = 0; _vm.showHelpdeskDialogue = true}}},on),[_vm._v(\" An Helpdesk senden \")])]}}],null,true)},[_c('span',[_vm._v(\" Artikel wird an unser Helpdesk gesendet und kostenlos analysiert.\"),_c('br'),_vm._v(\" Sie werden informiert, sobald wir Ihren Artikel bearbeitet haben. \")])])],1):_vm._e(),(_vm.isCadButtonVisible && !_vm.article.migrated)?_c('v-col',{staticClass:\"pa-0 mt-2\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"blexon-article-button\",attrs:{\"small\":\"\",\"block\":\"\",\"disabled\":_vm.isCadButtonDisabled},on:{\"click\":function($event){return _vm.openCadDialog()}}},on),[_vm._v(\" CAD Modell anzeigen / bearbeiten \")])]}}],null,true)},[_c('span',[_vm._v(\" Öffnet das CAD Modell im Browser.\"),_c('br'),_vm._v(\" Im integrierten CAD Editor von Blexon können Sie Gewinde, Senkungen, Gravuren, Schweissnähte usw. einfügen / bearbeiten.\"),_c('br'),_vm._v(\" Ausserdem Maße kontrollieren, Meldungen anzeigen und Fehlerursachen beheben. \")])])],1):_vm._e(),(_vm.article.migrated)?_c('v-col',{staticClass:\"pa-0 mt-2\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"blexon-article-button\",attrs:{\"disabled\":_vm.article.calculating || _vm.blexonisierenRunning,\"small\":\"\",\"block\":\"\"},on:{\"click\":function($event){return _vm.revalidate()}}},on),[_vm._v(\" Artikel blexonisieren \")])]}}],null,true)},[_c('span',[_vm._v(\" Der Artikel wurde noch nicht mit der neuesten Version blexonisiert.\"),_c('br'),_vm._v(\" Um den Artikel zu bestellen, im CAD zu überprüfen oder zu ändern, klicken Sie bitte hier. \")])])],1):_vm._e()],1),_c('v-dialog',{attrs:{\"content-class\":\"specialSize\",\"persistent\":\"\"},model:{value:(_vm.cadDialog),callback:function ($$v) {_vm.cadDialog=$$v},expression:\"cadDialog\"}},[_c('div',{staticStyle:{\"background-color\":\"#f3f3f4\",\"padding\":\"0px\"}},[_c('v-btn',{staticClass:\"ma-5 blexon-article-button\",attrs:{\"fab\":\"\",\"small\":\"\",\"fixed\":\"\",\"right\":\"\",\"top\":\"\",\"title\":\"CAD Ansicht schliessen.\"},on:{\"click\":function($event){return _vm.closeCadDialog(true)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),(_vm.cadDialog)?_c('iframe',{staticStyle:{\"padding\":\"0px\",\"margin\":\"0px\",\"border\":\"0px\",\"width\":\"100%\"},attrs:{\"loading\":\"lazy\",\"height\":_vm.currentWindowHeight,\"src\":_vm.articleCadViewUrl}}):_vm._e()],1)]),_c('article-price-info-dialog',{attrs:{\"preisInformationenDialog\":_vm.preisInformationenDialog},on:{\"closeDialog\":function($event){_vm.preisInformationenDialog = false;}}}),_c('article-edit-dialog',{attrs:{\"article\":_vm.article,\"articleEditDialog\":_vm.articleEditDialog,\"isUpdatingArticleData\":_vm.isUpdatingArticleData},on:{\"isUpdating\":_vm.setUpdating,\"closeDialog\":function($event){_vm.articleEditDialog = false;}}}),_c('article-delete-warning-dialog',{attrs:{\"articleDeleteWarningDialog\":_vm.articleDeleteWarningDialog,\"articleCartNames\":_vm.articleCartNames,\"articleId\":_vm.articleId},on:{\"setDeleteOverlay\":_vm.setDeleteOverlay,\"closeDialog\":function($event){_vm.articleDeleteWarningDialog = false;}}}),_c('send-to-helpdesk-dialog',{attrs:{\"showHelpdeskDialogue\":_vm.showHelpdeskDialogue,\"articleId\":_vm.articleId,\"reason\":_vm.reasonToSendArticleToHelpdesk},on:{\"closeDialog\":function($event){_vm.showHelpdeskDialogue = false;}}}),_c('too-many-calculating-dialog',{attrs:{\"tooManyCalculatingDialog\":_vm.tooManyCalculatingDialog},on:{\"closeDialog\":function($event){_vm.tooManyCalculatingDialog = false;}}}),_c('article-treatment-edit-dialog',{attrs:{\"articleTreatmentEditDialog\":_vm.articleTreatmentEditDialog,\"articles\":[ _vm.article ],\"isUpdatingArticleData\":_vm.isUpdatingArticleData},on:{\"isUpdating\":_vm.setUpdating,\"closeDialog\":function($event){_vm.articleTreatmentEditDialog = false;}}}),_c('powder-coating-not-editable-dialog',{attrs:{\"powderCoatingNotEditableDialog\":_vm.powderCoatingNotEditableDialog,\"hasEngravings\":_vm.article.hasEngravings},on:{\"closeDialog\":function($event){_vm.powderCoatingNotEditableDialog = false;},\"helpdeskSendenClicked\":function($event){_vm.powderCoatingNotEditableDialog = false; _vm.reasonToSendArticleToHelpdesk = 1; _vm.showHelpdeskDialogue = true;}}})],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Muss in den jeweiligen Modulen importiert werden mit:\r\n// import rules from '@/store/rules'\r\n\r\nexport default {\r\n optionalStringMax35Rule: [\r\n (v: string) => v.length <= 35 || 'Maximal 35 Zeichen erlaubt.'\r\n ],\r\n requiredRule: [\r\n (v: string) => !!v || 'Angabe erforderlich. ',\r\n\t\t(v: string) => !v || v.replace(/\\s/g, '').length > 0 || 'Eingabe darf nicht nur Leerzeichen sein.',\r\n ],\r\n addressOptionalStringMax35Rule: [\r\n (v: string) => v.length <= 35 || 'Maximal 35 Zeichen erlaubt.',\r\n (v: string) => !/[\\*\\^\\\\\\{\\}\\[\\]\\=\\>\\<\\|]/.test(v) || 'Enthält unerlaubte Zeichen \\\"* ^ \\ { } [ ] = < > |\\\"'\r\n ],\r\n optionalStringMax50Rule: [\r\n (v: string) => v.length <= 50 || 'Maximal 50 Zeichen erlaubt.'\r\n ],\r\n requiredStringMax35Rule: [\r\n (v: string) => !!v || 'Angabe erforderlich',\r\n (v: string) => v.replace(/\\s/g, '').length > 0 || 'Eingabe darf nicht nur Leerzeichen sein.',\r\n (v: string) => !v || v.length <= 35 || 'Maximal 35 Zeichen erlaubt.'\r\n ],\r\n addressRequiredStringMax35Rule: [\r\n (v: string) => !!v || 'Angabe erforderlich',\r\n (v: string) => v.replace(/\\s/g, '').length > 0 || 'Eingabe darf nicht nur Leerzeichen sein.',\r\n (v: string) => !v || v.length <= 35 || 'Maximal 35 Zeichen erlaubt.',\r\n (v: string) => !/[\\*\\^\\\\\\{\\}\\[\\]\\=\\>\\<\\|]/.test(v) || 'Enthält unerlaubte Zeichen \\\"* ^ \\ { } [ ] = < > |\\\"'\r\n ],\r\n requiredStringMax50Rule: [\r\n (v: string) => !!v || 'Angabe erforderlich',\r\n (v: string) => v.replace(/\\s/g, '').length > 0 || 'Eingabe darf nicht nur Leerzeichen sein.',\r\n (v: string) => !v || v.length <= 50 || 'Maximal 50 Zeichen erlaubt.'\r\n ],\r\n allowedCartAmountRule: [\r\n (v: number) => !!v || 'Angabe erforderlich',\r\n (v: number) => !isNaN(v) || 'Muss eine Zahl sein.',\r\n (v: number) => v >= 1 || 'Muss positiv sein.',\r\n (v: number) => v % 1 === 0 || 'Keine Kommastellen erlaubt',\r\n ],\r\n requiredEmailRule: [\r\n (v: string) => !!v || 'Angabe erforderlich. ',\r\n (v: string) => v.length <= 50 || 'Maximal 50 Zeichen erlaubt. ',\r\n (v: string) => /^[^@\\s;]+@[^@\\s;]+\\.[^@\\s;]+$/.test(v) || 'Muss eine gültige E-Mail Adresse sein. ',\r\n ],\r\n optionalEmailRule: [\r\n (v: string) => !v || (/^[^@\\s;]+@[^@\\s;]+\\.[^@\\s;]+$/.test(v)) || 'Muss eine gültige E-Mail Adresse sein. '\r\n ],\r\n requiredIntegerRule: [\r\n (v: number) => !!v || 'Angabe erforderlich',\r\n (v: number) => !isNaN(v) || 'Muss eine Zahl sein.',\r\n (v: string) => parseInt(v) === parseFloat(v) || 'Muss eine ganze Zahl sein.'\r\n ],\r\n requiredInteger0To1000Rule: [\r\n (v: number) => !!v || 'Angabe erforderlich',\r\n (v: number) => !isNaN(v) || 'Muss eine Zahl sein.',\r\n (v: string) => parseInt(v) === parseFloat(v) || 'Muss eine ganze Zahl sein.',\r\n (v: number) => v > 0 && v <= 1000 || 'Muss zwischen 0 und 1000 sein',\r\n ],\r\n}","\r\nexport class CartItem {\r\n public articleId: number = 0;\r\n public quantity: number = 0;\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.preisInformationenDialog),callback:function ($$v) {_vm.preisInformationenDialog=$$v},expression:\"preisInformationenDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Den finalen Preis inkl. Mengenrabatt sehen Sie im Warenkorb.\")]),_c('v-card-text',[_vm._v(\" Die Preisliste dient Konstrukteuren zur schnellen Preisabschätzung und gilt für die Bestellung dieses einen Artikels (sortenrein).\"),_c('br'),_c('br'),_vm._v(\" Um den finalen Preis zu kalkulieren, stellen Sie bitte einen Warenkorb zusammen und lassen Sie sich innert Sekunden ein Angebot inkl. Liefertermin berechnen.\"),_c('br'),_c('br'),_vm._v(\" Bei der Angebotsberechnung werden alle enthaltenen Artikel berücksichtigt und ein auftragsspezifischer Rabatt (Auftragsrabatt) berechnet. \"),_c('b',{staticStyle:{\"color\":\"#AA6200\"}},[_vm._v(\"Mehrere Artikel mit gleichen Bearbeitungen oder gleichem Material führen zu einem Preisnachlass.\")]),_c('br'),_c('br'),_vm._v(\" Folgende Faktoren führen zu einer \"),_c('b',{staticStyle:{\"color\":\"#AA6200\"}},[_vm._v(\"Preisreduktion:\")]),_c('ul',[_c('li',[_vm._v(\"Mehrere Artikel aus dem gleichen Rohmaterial (gleicher Werkstoff und gleiche Blechdicke)\")]),_c('li',[_vm._v(\"Mehrere Artikel mit den gleichen Bearbeitungen (Gewinde, Senkungen und Durchzüge) in gleichem Rohmaterial\")]),_c('li',[_vm._v(\"Mehrere Artikel mit gleicher Pulverbeschichtung (gleiches Pulver)\")])]),_c('br'),_vm._v(\" Der Preis versteht sich exkl. Mehrwert- bzw. Umsatzsteuer, auftragsspezifischen Rabatten, Verpackung und Lieferung. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Schliessen \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class ArticlePriceInfoDialog extends Vue {\r\n\t@Prop()\r\n\tprivate preisInformationenDialog!: boolean;\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get hasPriceModels()\r\n\t{\r\n\t\treturn this.$store.getters.hasPriceModels;\r\n\t}\r\n}\r\n\r\n","export enum Entgratart {\r\n\tNone = 0,\r\n\tManually = 1,\r\n\tWebern = 2,\r\n\tTrowalisieren = 3,\r\n\tBothSides = 4\r\n}\r\n\r\nexport function getEntgratartText(value: Entgratart) : string {\r\n\tswitch (value) {\r\n\t\tcase Entgratart.None:\r\n\t\t\treturn \"Nicht\\u00A0entgraten\";\r\n\t\tcase Entgratart.Manually:\r\n\t\t\treturn \"Manuell\";\r\n\t\tcase Entgratart.Webern:\r\n\t\t\treturn \"Einseitig\\u00A0(Unterseite)\";\r\n\t\tcase Entgratart.Trowalisieren:\r\n\t\t\treturn \"Trowalisieren\";\r\n\t\tcase Entgratart.BothSides:\r\n\t\t\treturn \"Beidseitig\";\r\n\t\tdefault:\r\n\t\t\treturn \"Nicht\\u00A0verfügbar\";\r\n\t}\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticlePriceInfoDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticlePriceInfoDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticlePriceInfoDialog.vue?vue&type=template&id=09ace4e0\"\nimport script from \"./ArticlePriceInfoDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticlePriceInfoDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.articleEditDialog),callback:function ($$v) {_vm.articleEditDialog=$$v},expression:\"articleEditDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Artikel \"+_vm._s(_vm.article.articleId)+\" - Einstellungen\")]),_c('v-card-text',[_c('v-form',{model:{value:(_vm.articleDataValid),callback:function ($$v) {_vm.articleDataValid=$$v},expression:\"articleDataValid\"}},[_c('v-text-field',{attrs:{\"label\":\"Artikelname\",\"rules\":_vm.requiredStringMax50Rule,\"disabled\":_vm.article.calculating,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.articleName = _vm.articleName.trim();}},model:{value:(_vm.articleName),callback:function ($$v) {_vm.articleName=$$v},expression:\"articleName\"}}),_c('v-text-field',{attrs:{\"label\":\"Artikelnummer\",\"rules\":_vm.optionalStringMax50Rule,\"disabled\":_vm.article.calculating,\"placeholder\":\"Ihre Artikelnummer\",\"color\":\"accent\",\"hint\":\"Sie können jedem Artikel eine eigene Artikelnummer vergeben. Die Nummer erscheint auch auf dem Lieferschein und der Rechnung.\"},on:{\"blur\":function($event){_vm.articleNumber = _vm.articleNumber.trim();}},model:{value:(_vm.articleNumber),callback:function ($$v) {_vm.articleNumber=$$v},expression:\"articleNumber\"}}),(!_vm.article.isAssembly)?_c('v-select',{attrs:{\"items\":_vm.availableWerkstoffe,\"item-text\":\"bezeichnung\",\"item-value\":\"blexonId\",\"disabled\":_vm.article.calculating,\"label\":\"Material\",\"color\":\"accent\"},model:{value:(_vm.selectedWerkstoffId),callback:function ($$v) {_vm.selectedWerkstoffId=$$v},expression:\"selectedWerkstoffId\"}}):_vm._e(),(!_vm.article.isAssembly)?_c('div',[_c('p',{staticClass:\"ma-0 font-weight-bold\"},[_vm._v(\"Entgraten:\")]),_c('v-row',{staticClass:\"ma-0\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"11\"}},[(_vm.article.migrated)?_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Blexonisieren Sie den Artikel, um die Entgratung zu verändern. \")]):(!_vm.hasWerkstoffChanged)?_c('v-select',{attrs:{\"dense\":\"\",\"color\":\"accent\",\"hide-details\":\"\",\"placeholder\":\"Bitte Entgratart wählen...\",\"item-disabled\":\"disabled\",\"item-text\":\"name\",\"item-value\":\"value\",\"items\":_vm.availableEntgratarten},model:{value:(_vm.entgratart),callback:function ($$v) {_vm.entgratart=$$v},expression:\"entgratart\"}}):_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Wenn das Material geändert werden soll, muss der Artikel zuerst neu berechnet werden, bevor die Entgratart angepasst werden kann. Speichern Sie dazu die aktuellen Änderungen und warten Sie, bis der Artikel validiert ist. \")])],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('a',{staticStyle:{\"text-decoration\":\"none\"},attrs:{\"href\":\"https://blexon.com/blechteile-entgraten/\",\"target\":\"_blank\",\"title\":\"Informationen über das Entgraten von Metallteilen\"}},[_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-help-circle\")])],1)])],1)],1):_vm._e(),(_vm.saveFailedErrorMessage !== '')?_c('span',{staticClass:\"red--text\"},[_c('br'),_vm._v(_vm._s(_vm.saveFailedErrorMessage))]):_vm._e()],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"disabled\":_vm.isUpdatingArticleData},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Schliessen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.articleDataValid || _vm.isUpdatingArticleData,\"title\":\"Speichert den Artikel mit den angegebenen Daten.\"},on:{\"click\":function($event){return _vm.saveArticleData()}}},[(_vm.isUpdatingArticleData)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Speichern \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '@/store/httpClient';\r\nimport rules from '@/store/rules'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { WerkstoffDto } from '@/dtos/werkstoffDto';\r\nimport { ArticleDataDto } from '@/dtos/articleDataDto';\r\nimport { MaterialDto } from '@/dtos/materialDto';\r\nimport { Entgratart } from '@/dtos/entgratart';\r\nimport { getEntgratartText } from '@/dtos/entgratart';\r\nimport { EntgratParameterDto } from '@/dtos/entgratParameterDto';\r\n\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t}\r\n})\r\nexport default class ArticleEditDialog extends Vue {\r\n\t@Prop()\r\n\tprivate articleEditDialog!: boolean;\r\n\t@Prop()\r\n\tprivate article!: CustomerArticleDto;\r\n\t@Prop()\r\n\tprivate isUpdatingArticleData!: boolean;\r\n\tprivate articleDataValid: boolean = true;\r\n\tprivate articleName: string = '';\r\n private articleNumber: string = '';\r\n private selectedWerkstoffId: number = 0;\r\n private entgratart: Entgratart = Entgratart.None;\r\n private saveFailedErrorMessage: String = '';\r\n\tprivate requiredStringMax50Rule: any = rules.requiredStringMax50Rule;\r\n\tprivate optionalStringMax50Rule: any = rules.optionalStringMax50Rule;\r\n\r\n\t@Watch('articleEditDialog')\r\n private resetEditArticleData() {\r\n if (this.articleEditDialog) {\r\n this.articleName = this.article.customerArticleName;\r\n this.articleNumber = this.article.customerArticleId;\r\n this.selectedWerkstoffId = this.article.werkstoffId;\r\n this.entgratart = this.article.entgratart;\r\n }\r\n }\r\n\r\n\t@Watch('selectedWerkstoffId')\r\n\tprivate onSelectedWerkstoffIdChanged() {\r\n\t\tif (this.hasWerkstoffChanged) {\r\n\t\t\tconsole.log('resetting entgratart');\r\n\t\t\tthis.entgratart = this.article.entgratart;\r\n\t\t}\r\n\t}\r\n\r\n\t// Werkstoffe, die für den Artikel in Frage kommen.\r\n // Konnte die Dicke nicht berechnet werden --> Alle Werkstoffe anzeigen.\r\n // Konnte die Dicke berechnet werden --> Werkstoffe anzeigen, die in der Dicke verfügbar sind.\r\n private get availableWerkstoffe() {\r\n if (this.article.thickness <= 0) {\r\n return (this.$store.state.werkstoffe as WerkstoffDto[]);\r\n }\r\n return (this.$store.state.werkstoffe as WerkstoffDto[])\r\n .filter((w: WerkstoffDto) => w.materials.some((m:MaterialDto) => m.thickness === this.article.thickness));\r\n }\r\n\r\n\tprivate get availableEntgratarten() {\r\n\t\tlet entgratarten: any = [];\r\n\t\tlet werkstoff: WerkstoffDto = this.$store.state.werkstoffe.filter((w:WerkstoffDto) => w.blexonId === this.article.werkstoffId)[0];\r\n\t\tlet entgratSettings: EntgratParameterDto = werkstoff.materials.filter((m:MaterialDto) => m.id === this.article.materialId)[0].entgratSettings;\r\n\t\tconst enumValues = Object.values(Entgratart);\r\n\t\tenumValues.forEach((value:any) => {\r\n\t\t\tswitch (value) {\r\n\t\t\t\tcase Entgratart.None:\r\n\t\t\t\t\tconst isBiegeteil = this.article.numberOfBendLines && this.article.numberOfBendLines > 0;\r\n\t\t\t\t\tentgratarten.push({\r\n\t\t\t\t\t\tindex: 0,\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tname: getEntgratartText(value),\r\n\t\t\t\t\t\tdisabled: isBiegeteil,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Entgratart.Webern:\r\n\t\t\t\t\tentgratarten.push({\r\n\t\t\t\t\t\tindex: 1,\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tname: getEntgratartText(value),\r\n\t\t\t\t\t\tdisabled: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Entgratart.BothSides:\r\n\t\t\t\t\tentgratarten.push({\r\n\t\t\t\t\t\tindex: 2,\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tname: getEntgratartText(value),\r\n\t\t\t\t\t\tdisabled: !entgratSettings.isBothSidesEnabled,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Entgratart.Trowalisieren:\r\n\t\t\t\t\tlet sides: number[] = [ this.article.length, this.article.width, this.article.height ];\r\n\t\t\t\t\tsides.sort((a:number,b:number) => b - a);\r\n\t\t\t\t\tlet longestSide = sides[0];\r\n\t\t\t\t\tlet maximumOtherSides = Math.max(...sides.slice(1));\r\n\t\t\t\t\tlet trowalDisabled = this.article.thickness < 1\r\n\t\t\t\t\t\t|| this.article.weight >= 2\r\n\t\t\t\t\t\t|| Math.round(longestSide * 100) / 100 > 200\r\n\t\t\t\t\t\t|| Math.round(maximumOtherSides * 100) / 100 > 100\r\n\t\t\t\t\t\t|| !entgratSettings.isTrowalisierenEnabled;\r\n\t\t\t\t\tentgratarten.push({\r\n\t\t\t\t\t\tindex: 3,\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tname: getEntgratartText(value),\r\n\t\t\t\t\t\tdisabled: trowalDisabled,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Entgratart.Manually:\r\n\t\t\t\t\t// Don't add this to selection\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn entgratarten.sort((a:any,b:any) => a.index - b.index );\r\n\t}\r\n\r\n\tprivate get hasWerkstoffChanged() {\r\n\t\treturn this.selectedWerkstoffId !== this.article.werkstoffId;\r\n\t}\r\n\r\n\tprivate async saveArticleData() {\r\n const sanitisedName = this.articleName.trim();\r\n const sanitisedNumber = this.articleNumber.trim();\r\n try {\r\n if(this.articleDataValid \r\n && (this.article.customerArticleName !== sanitisedName \r\n || this.article.customerArticleId !== sanitisedNumber)) \r\n {\r\n this.setUpdating(true);\r\n let articleData: ArticleDataDto = {\r\n articleId: this.article.articleId,\r\n customerArticleId: sanitisedNumber,\r\n customerArticleName: sanitisedName,\r\n };\r\n\r\n await httpClient().post('article/UpdateArticleData', articleData);\r\n this.$store.commit('saveArticleData', articleData);\r\n }\r\n\r\n\t\t\tif (this.hasWerkstoffChanged) {\r\n\t\t\t\tthis.setUpdating(true);\r\n\t\t\t\tawait httpClient().post(\r\n\t\t\t\t\t'Article/ReplaceMaterialOfArticle?' +\r\n\t\t\t\t\t`articleId=${this.article.articleId}` +\r\n\t\t\t\t\t`&newWerkstoffId=${this.selectedWerkstoffId}`\r\n\t\t\t\t);\r\n\t\t\t} \r\n\t\t\t// Only update Entgratart if material wasn't changed\r\n\t\t\telse if (this.article.entgratart !== this.entgratart) \r\n\t\t\t{\r\n this.setUpdating(true);\r\n await httpClient().post(`article/SetEntgratart?articleId=${this.article.articleId}&entgratart=${this.entgratart}`)\r\n .then(() => {this.$store.dispatch('updateArticleById', this.article.articleId)});\r\n }\r\n \r\n this.saveFailedErrorMessage = ''; \r\n this.closeDialog();\r\n } catch(err) {\r\n console.log(`Failed to save article data of article ${this.article.articleId}. Error: ${err}`);\r\n this.saveFailedErrorMessage = `Die Daten konnten nicht gespeichert werden. ${err}`;\r\n } finally {\r\n this.setUpdating(false);\r\n }\r\n }\r\n\r\n\tprivate setUpdating(value: boolean) {\r\n\t\tthis.$emit('isUpdating', value);\r\n\t}\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleEditDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleEditDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticleEditDialog.vue?vue&type=template&id=21f0f210\"\nimport script from \"./ArticleEditDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticleEditDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.articleDeleteWarningDialog),callback:function ($$v) {_vm.articleDeleteWarningDialog=$$v},expression:\"articleDeleteWarningDialog\"}},[_c('v-card',[_c('v-card-title',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"color\":\"accent\",\"large\":\"\"}},[_vm._v(\"mdi-alert\")]),_vm._v(\" Achtung! \")],1),(_vm.articleCartNames.length > 0)?_c('v-card-text',[_vm._v(\" Der Artikel wird ebenfalls aus folgenden Stücklisten gelöscht:\"),_c('br'),_vm._l((_vm.articleCartNames),function(name,index){return _c('span',{key:index,staticStyle:{\"margin-left\":\"12px\"}},[_c('b',[_vm._v(\"- \"+_vm._s(name))]),_c('br')])}),_c('br'),_vm._v(\"Möchten Sie den Artikel wirklich löschen? \")],2):_c('v-card-text',[_vm._v(\" Möchten Sie den Artikel wirklich löschen? \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteArticle()}}},[_vm._v(\" Löschen \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\n\r\n@Component\r\nexport default class ArticleDeleteWarningDialog extends Vue {\r\n\t@Prop()\r\n\tprivate articleDeleteWarningDialog!: boolean;\r\n\t@Prop()\r\n\tprivate articleId!: number;\r\n\t@Prop()\r\n\tprivate articleCartNames!: string[];\r\n\r\n\tprivate async deleteArticle() {\r\n this.$emit('setDeleteOverlay', true);\r\n try {\r\n const response = await httpClient().post(`article/deleteArticle?articleId=${this.articleId}&force=true`);\r\n Vue.nextTick(() => { \r\n this.$emit('setDeleteOverlay', false);\r\n\t\t\t\tlet data = {\r\n\t\t\t\t\tarticleId: this.articleId,\r\n\t\t\t\t\trefreshCart: true,\r\n\t\t\t\t}\r\n this.$store.dispatch('deleteArticle', data);\r\n console.info(`Artikel ${this.articleId} wurde gelöscht`);\r\n });\r\n } catch(err) {\r\n console.error(`Fehler beim Löschen des Artikels. ${err}`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Artikel konnte nicht gelöscht werden.');\r\n } finally {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n }\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleDeleteWarningDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleDeleteWarningDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticleDeleteWarningDialog.vue?vue&type=template&id=a487b802\"\nimport script from \"./ArticleDeleteWarningDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticleDeleteWarningDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.showHelpdeskDialogue),callback:function ($$v) {_vm.showHelpdeskDialogue=$$v},expression:\"showHelpdeskDialogue\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Artikel an Blexon Helpdesk senden\")]),_c('v-card-text',[_vm._v(\" Sie senden diesen Artikel an das Blexon Helpdesk. Wir werden die Ursache der Fehlermeldungen prüfen und, falls möglich, beheben. Gerne geben wir Ihnen auch Hinweise, wie Sie die Konstruktion ändern können, damit der Artikel herstellbar wird.\"),_c('br'),_vm._v(\" Dieser Service ist kostenlos.\"),_c('br'),_c('br'),_vm._v(\" Sie werden per E-Mail informiert, sobald der Artikel bearbeitet wurde. Die Überprüfung erfolgt während der Geschäftszeiten in der Regel innert Stunden.\"),_c('br'),_c('br'),_vm._v(\" Bitte beachten Sie, dass der Artikel nach dem Senden nicht mehr verändert oder gelöscht werden kann, bis dieser von Blexon freigegeben wird. \"),_c('v-form',{model:{value:(_vm.isHelpdeskEmailValid),callback:function ($$v) {_vm.isHelpdeskEmailValid=$$v},expression:\"isHelpdeskEmailValid\"}},[_c('v-text-field',{staticClass:\"mt-3\",attrs:{\"label\":\"E-Mail für Benachrichtigungen bezüglich dieses Artikels\",\"rules\":_vm.requiredEmailRule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.helpdeskEmail = _vm.helpdeskEmail.trim();}},model:{value:(_vm.helpdeskEmail),callback:function ($$v) {_vm.helpdeskEmail=$$v},expression:\"helpdeskEmail\"}})],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.isHelpdeskEmailValid,\"title\":\"Sendet den Artikel zur Abklärung ans Helpdesk.\"},on:{\"click\":function($event){return _vm.sendArticleToHelpdesk()}}},[_vm._v(\" Senden \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, } from 'vue-property-decorator';\r\nimport { CheckArticleReason} from '../../dtos/checkArticleReason';\r\nimport httpClient from '../../store/httpClient';\r\nimport rules from '@/store/rules'\r\n\r\n@Component\r\nexport default class SendToHelpdeskDialog extends Vue {\r\n\t@Prop()\r\n\tprivate showHelpdeskDialogue!: boolean;\r\n\t@Prop()\r\n\tprivate articleId!: number;\r\n\t@Prop()\r\n\tprivate reason!: CheckArticleReason;\r\n private isHelpdeskEmailValid: boolean = true;\r\n private helpdeskEmail: string = '';\r\n private requiredEmailRule: any = rules.requiredEmailRule;\r\n\r\n\tprivate mounted() {\r\n this.helpdeskEmail = this.$store.state.customer.user.username;\r\n\t}\r\n\r\n\tprivate async sendArticleToHelpdesk() {\r\n try {\r\n await httpClient().post(`article/SendArticleToHelpdesk?articleId=${this.articleId}&eMail=${this.helpdeskEmail}&reason=${this.reason}`);\r\n this.$store.commit('setArticleStateToLocked', this.articleId);\r\n } catch(err) {\r\n console.log(`Der Artikel konnte nicht ans Helpdesk gesendet werden. Error: ${err}`);\r\n } finally {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n }\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendToHelpdeskDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendToHelpdeskDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SendToHelpdeskDialog.vue?vue&type=template&id=ddf3f9f0\"\nimport script from \"./SendToHelpdeskDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./SendToHelpdeskDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.tooManyCalculatingDialog),callback:function ($$v) {_vm.tooManyCalculatingDialog=$$v},expression:\"tooManyCalculatingDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Zu viele Berechnungen gleichzeitig\")]),_c('v-card-text',[_vm._v(\" Sie können bis zu 10 Artikel gleichzeitig blexonisieren.\"),_c('br'),_vm._v(\" Die Berechnungen sind sehr zeit- und resourcenintensiv. Deshalb limitieren wir die Anzahl der gleichzeitigen Berechnungen um unsere Server zu schützen und die Leistung gleichmässig auf alle Kunden zu verteilen.\"),_c('br'),_vm._v(\" Bitte warten Sie, bis einige Berechnungen abgeschlossen sind. Vielen Dank für Ihr Verständnis. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Schliessen \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class TooManyCalculatingDialog extends Vue {\r\n\t@Prop()\r\n\tprivate tooManyCalculatingDialog!: boolean;\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","export enum PowderFinish {\r\n\tMatt = 0,\r\n\tGlossy = 1\r\n}\r\n\r\nexport enum PowderStructure {\r\n\tFine = 0,\r\n\tRough = 1,\r\n\tSmooth = 2,\r\n}\r\n\r\nexport enum PowderApplication {\r\n\tInternal = 0,\r\n\tExternalIndustry = 10,\r\n\tExternalFassade = 20,\r\n}\r\n\r\nexport enum ArticleFaceType {\r\n\tVisible = 0,\r\n\tBack = 1,\r\n\tBoth = 2,\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooManyCalculatingDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooManyCalculatingDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TooManyCalculatingDialog.vue?vue&type=template&id=af60ec62\"\nimport script from \"./TooManyCalculatingDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./TooManyCalculatingDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"1200\",\"persistent\":\"\"},model:{value:(_vm.articleTreatmentEditDialog),callback:function ($$v) {_vm.articleTreatmentEditDialog=$$v},expression:\"articleTreatmentEditDialog\"}},[_c('v-btn',{staticClass:\"ma-5 blexon-button\",attrs:{\"fab\":\"\",\"small\":\"\",\"fixed\":\"\",\"right\":\"\",\"top\":\"\",\"title\":\"Dialog schliessen.\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),(!_vm.isPowderCoatingAvailable)?_c('v-card',[_c('v-card-title',[_vm._v(\" Pulverbeschichtung \")]),_c('v-card-text',[_vm._v(\" Das Pulverbeschichten von Artikeln ist in Ihrer Region leider noch nicht verfügbar. \")])],1):_c('v-card',[(_vm.isSingleArticle)?_c('v-card-title',[_vm._v(\" Pulverbeschichtung - Artikel '\"+_vm._s(_vm.singleArticle.customerArticleName)+\"' (\"+_vm._s(_vm.singleArticle.articleId)+\") \")]):_c('v-card-title',[_vm._v(\" Pulverbeschichtung - \"+_vm._s(_vm.articles.length)+\" Artikel \")]),_c('v-card-text',[_c('v-row',[_c('v-spacer'),(!_vm.showAllPowders)?_c('v-col',{staticClass:\"py-0\",staticStyle:{\"margin-bottom\":\"-13px\"},attrs:{\"cols\":\"9\"}},[_vm._v(\" Es werden nur Standardfarben ohne Aufpreis angezeigt. \")]):_vm._e()],1),_c('v-row',{attrs:{\"wrap\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":\"Alle Farben anzeigen\",\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.showAllPowders),callback:function ($$v) {_vm.showAllPowders=$$v},expression:\"showAllPowders\"}}),_c('v-text-field',{attrs:{\"label\":\"RAL Farbe suchen\",\"color\":\"accent\",\"prepend-icon\":\"mdi-magnify\"},on:{\"blur\":function($event){_vm.ralFilterTerm = _vm.ralFilterTerm.trim()}},model:{value:(_vm.ralFilterTerm),callback:function ($$v) {_vm.ralFilterTerm=$$v},expression:\"ralFilterTerm\"}}),_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"items\":_vm.powderCoatingStructureOptions,\"hint\":_vm.powderStructureHint,\"item-text\":\"name\",\"item-value\":\"value\",\"disabled\":_vm.anyArticleCalculating,\"label\":\"Struktur\",\"color\":\"accent\"},model:{value:(_vm.selectedPowderStructure),callback:function ($$v) {_vm.selectedPowderStructure=$$v},expression:\"selectedPowderStructure\"}}),_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"items\":_vm.powderCoatingFinishOptions,\"item-text\":\"name\",\"item-value\":\"value\",\"disabled\":_vm.anyArticleCalculating,\"label\":\"Finish\",\"color\":\"accent\"},model:{value:(_vm.selectedPowderFinish),callback:function ($$v) {_vm.selectedPowderFinish=$$v},expression:\"selectedPowderFinish\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('div',{staticStyle:{\"height\":\"190px\",\"overflow-y\":\"auto\",\"overflow-x\":\"hidden\",\"border\":\"2px solid DarkGray\",\"border-radius\":\"5px\",\"padding\":\"4px\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"wrap\":\"\",\"justify\":\"center\",\"align\":\"center\"}},_vm._l((_vm.filteredSurfaceColors),function(color){return _c('div',{key:color.id,staticStyle:{\"line-height\":\"0em\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"rgba(0, 0, 0, 1)\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({class:_vm.selectedPowderColorId == color.id ? 'selectedColorSquare' : 'surfaceColorSquare',style:(`background-color:${color.hexCode}`),on:{\"click\":function($event){_vm.selectedPowderColorId = color.id}}},on),[_c('div',{class:_vm.getColorClass(color.id)})])]}}],null,true)},[_vm._v(\" \"+_vm._s(color.name)),_c('br'),_vm._v(\" RAL \"+_vm._s(color.ralCode)+\" \")])],1)}),0)],1)])],1),_c('v-divider'),_c('h4',{staticStyle:{\"margin-top\":\"12px\"}},[_vm._v(\"Pulverauswahl:\")]),_c('v-row',{attrs:{\"wrap\":\"\",\"align\":\"start\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"7\"}},[(_vm.filteredPowders.length > 0 && _vm.selectedPowderColorId >= 0)?_c('v-radio-group',{staticClass:\"ma-0\",model:{value:(_vm.selectedPowderId),callback:function ($$v) {_vm.selectedPowderId=$$v},expression:\"selectedPowderId\"}},_vm._l((_vm.filteredPowders),function(powder){return _c('v-radio',{key:powder.id,attrs:{\"value\":powder.id,\"color\":\"accent\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{style:({\n\t\t\t\t\t\t\t\t\tdisplay: 'inline-block', \n\t\t\t\t\t\t\t\t\twidth: '20px', \n\t\t\t\t\t\t\t\t\theight: '20px', \n\t\t\t\t\t\t\t\t\tbackground: powder.surfaceColor.hexCode + 'ff'\n\t\t\t\t\t\t\t\t\t})}),_c('span',{staticStyle:{\"margin-left\":\"10px\",\"vertical-align\":\"top\"}},[_vm._v(\" RAL \"+_vm._s(powder.surfaceColor.ralCode)+\" (\"+_vm._s(powder.surfaceColor.name)+\") - \"+_vm._s(_vm.getStructureText(powder.structure))+\" - \"+_vm._s(_vm.getFinishText(powder.finish))+\" \"+_vm._s(_vm.isStandardPowder(powder.setupCost) ? ' (Standard ohne Aufpreis)' : '')+\" \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [(!_vm.isStandardPowder(powder.setupCost))?_c('v-icon',_vm._g({staticClass:\"pl-2\",attrs:{\"color\":\"accent\"}},on),[_vm._v(\" mdi-diamond-stone \")]):_vm._e()]}}],null,true)},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Dieses Pulver ist nicht Teil des Standard-Sortiments und muss bestellt werden.\"),_c('br'),_vm._v(\" Ein einmaliger Aufpreis von \"),_c('strong',[_vm._v(_vm._s(_vm._f(\"round2Decimal\")(powder.setupCost)))]),_vm._v(\" wird angewandt. Bei mehreren Positionen in dieser Farbe, wird der Aufpreis nur einmal berechnet, indem er beim Auftragsrabatt berücksichtigt wird.\"),_c('br'),_vm._v(\" Bitte beachten Sie, dass dies auch eine Verlängerung der Lieferzeiten zur Folge haben kann. \")])])]},proxy:true}],null,true)})}),1):_c('span',[_vm._v(\"Keine Pulver mit aktuellem Filter verfügbar\")])],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\"}},[_c('v-select',{attrs:{\"items\":_vm.articleFaceOptions,\"item-text\":\"name\",\"item-value\":\"value\",\"disabled\":_vm.anyArticleCalculating,\"label\":\"Fläche\",\"color\":\"accent\"},model:{value:(_vm.selectedPowderFace),callback:function ($$v) {_vm.selectedPowderFace=$$v},expression:\"selectedPowderFace\"}})],1)],1),_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"ma-0 pb-0 text-center\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{attrs:{\"color\":\"accent\",\"large\":\"\"}},[_vm._v(\"mdi-alert\")])],1),_c('v-col',{staticClass:\"ma-0 pb-0\",attrs:{\"cols\":\"11\"}},[_vm._v(\" Bei der Pulverbeschichtung muss mit einer \"),_c('b',[_vm._v(\"Schichtdicke von ca. 0.1mm\")]),_vm._v(\" gerechnet werden. Konstruieren Sie allfällige Bohrungen und Ausschnitte entsprechend grösser. \"),_c('b',[_vm._v(\"Gewinde\")]),_vm._v(\" werden vor dem Beschichten abgedeckt und müssen nicht angepasst werden. \"),_c('b',[_vm._v(\"Senkungen\")]),_vm._v(\" werden nicht abgedeckt, jedoch wird die Schichtdicke bei der Fertigung kompensiert. \"),(_vm.selectedPowderFace != 2)?_c('span',[_vm._v(\" Im Weiteren muss berücksichtigt werden, dass bei einseitiger Beschichtung die gegenüberliegende Seite nicht abgedeckt wird und somit mit einem \"),_c('b',[_vm._v(\"Sprühnebel\")]),_vm._v(\" auf dieser Seite gerechnet werden muss. \")]):_vm._e(),_c('br'),_c('b',[_vm._v(\"Achtung:\")]),_vm._v(\" Die Pulverbeschichtung allein ist \"),_c('b',[_vm._v(\"kein Korrosionsschutz\")]),_vm._v(\". Pulverbeschichtete \"),_c('b',[_vm._v(\"Stahlteile\")]),_vm._v(\" sind deshalb \"),_c('b',[_vm._v(\"nicht für Aussenanwendung oder Orte mit hoher Luftfeuchtigkeit\")]),_vm._v(\" geeignet. Pulverbeschichtete Teile aus Edelstahl oder Aluminium sind für Aussenanwendung oder Orte mit hoher Luftfeuchtigkeit geeignet, sofern keine extremen Umgebungsbedingungen herrschen. Bei Fragen und Unklarheiten können Sie sich gerne bei unserem Helpdesk melden. \")])],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"disabled\":_vm.isUpdatingArticleData},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Schliessen \")]),(_vm.anyArticlesPowdercoated)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":_vm.isUpdatingArticleData,\"title\":_vm.isSingleArticle ? 'Entfernt die Pulverbeschichtung vom Artikel.' : 'Entfernt die Pulverbeschichtung von allen Artikeln.'},on:{\"click\":function($event){return _vm.deleteTreatments()}}},[(_vm.isUpdatingArticleData)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Entfernen \")],1):_vm._e(),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.powderTreatmentValid || _vm.isUpdatingArticleData,\"title\":_vm.isSingleArticle ? 'Speichert die Pulverbeschichtung.' : 'Speichert die Pulverbeschichtung für alle Artikel.'},on:{\"click\":function($event){return _vm.saveTreatments()}}},[(_vm.isUpdatingArticleData)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Speichern \")],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport class SurfaceColorDto {\r\n\tpublic id: number = 0;\r\n\tpublic name: string = '';\r\n\tpublic ralCode: string = '';\r\n\tpublic hexCode: string = '';\r\n}","import { PowderStructure, PowderFinish, PowderApplication } from './treatmentTypes';\r\nimport { SurfaceColorDto } from './surfaceColorDto';\r\n\r\nexport class PowderDto {\r\n\tpublic id: number = 0;\r\n\tpublic surfaceColor: SurfaceColorDto = new SurfaceColorDto();\r\n\tpublic structure: PowderStructure = PowderStructure.Smooth;\r\n\tpublic finish: PowderFinish = PowderFinish.Glossy;\r\n\tpublic application: PowderApplication = PowderApplication.Internal;\r\n\tpublic layerThickness: number = 100;\r\n\tpublic available: boolean = false;\r\n\tpublic setupCost: number = 0.0;\r\n}","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { PowderCoatingTreatmentDto } from '@/dtos/powderCoatingTreatmentDto';\r\nimport { ArticleFaceType, PowderFinish, PowderStructure, PowderApplication } from '@/dtos/treatmentTypes';\r\nimport { SurfaceColorDto } from '@/dtos/surfaceColorDto';\r\nimport { PowderDto } from '@/dtos/powderDto';\r\n\r\n@Component\r\nexport default class ArticleTreatmentEditDialog extends Vue {\r\n\t@Prop()\r\n\tprivate articleTreatmentEditDialog!: boolean;\r\n\t@Prop()\r\n\tprivate articles!: CustomerArticleDto[];\r\n\t@Prop()\r\n\tprivate isUpdatingArticleData!: boolean;\r\n\tprivate selectedPowderFinish: PowderFinish = -1;\r\n\tprivate showAllPowders: boolean = true;\r\n private powderCoatingFinishOptions: any = [\r\n\t\t{\r\n\t\t\tname: 'Alle',\r\n\t\t\tvalue: -1\r\n\t\t},\r\n {\r\n name: 'Matt',\r\n value: PowderFinish.Matt\r\n },\r\n {\r\n name: 'Glanz',\r\n value: PowderFinish.Glossy\r\n },\r\n ];\r\n private selectedPowderStructure: PowderStructure = -1;\r\n\tprivate powderStructureHint: string = '';\r\n private powderCoatingStructureOptions: any = [\r\n\t\t{\r\n\t\t\tname: 'Alle',\r\n\t\t\tvalue: -1\r\n\t\t},\r\n\t\t{\r\n\t\t\tname: 'Glatt',\r\n\t\t\tvalue: PowderStructure.Smooth\r\n\t\t},\r\n {\r\n name: 'Fein',\r\n value: PowderStructure.Fine\r\n },\r\n {\r\n name: 'Grob',\r\n value: PowderStructure.Rough\r\n },\r\n ];\r\n private selectedPowderFace: ArticleFaceType = 2;\r\n private articleFaceOptions: any = [\r\n {\r\n name: 'Oberseite',\r\n value: ArticleFaceType.Visible\r\n },\r\n {\r\n name: 'Unterseite',\r\n value: ArticleFaceType.Back\r\n },\r\n {\r\n name: 'Beidseitig',\r\n value: ArticleFaceType.Both\r\n },\r\n ];\r\n\tprivate selectedPowderId: number = -1;\r\n private selectedPowderColorId: number = -1;\r\n private ralFilterTerm: string = '';\r\n\r\n\tprivate get isSingleArticle() {\r\n\t\treturn this.articles.length === 1;\r\n\t}\r\n\r\n\tprivate get singleArticle() {\r\n\t\treturn this.articles[0];\r\n\t}\r\n\r\n\tprivate get anyArticlesPowdercoated() {\r\n\t\treturn this.articles.some((a:CustomerArticleDto) => a.powderCoatingTreatment != null);\r\n\t}\r\n\r\n\tprivate get anyArticleCalculating() {\r\n\t\treturn this.articles.some((a:CustomerArticleDto) => a.calculating);\r\n\t}\r\n\r\n\tprivate get powders() {\r\n return this.$store.state.powders;\r\n }\r\n\r\n\tprivate get filteredPowders() {\r\n\t\tif (!this.powders || this.powders.length <= 0) return [];\r\n\t\t// We're only showing powders for external use.\r\n\t\t// There is an external use powder for every color we have.\r\n\t\t// This prevents duplicates showing up in the selector.\r\n\t\tlet filtered = this.powders.filter((p:PowderDto) => \r\n\t\t\t(p.available) &&\r\n\t\t\t(p.application == PowderApplication.ExternalFassade || (p.structure == PowderStructure.Rough && p.application == PowderApplication.ExternalIndustry)) &&\r\n\t\t\t(this.selectedPowderColorId < 0 || p.surfaceColor.id === this.selectedPowderColorId) &&\r\n\t\t\t(this.selectedPowderStructure < 0 || p.structure == this.selectedPowderStructure) &&\r\n\t\t\t(this.selectedPowderFinish < 0 || p.finish == this.selectedPowderFinish) &&\r\n\t\t\t(this.showAllPowders === true || this.isStandardPowder(p.setupCost))\r\n\t\t);\r\n\r\n\t\tlet cleaned = new Array();\r\n\t\tfiltered.forEach((p:PowderDto) => {\r\n\t\t\tif (!cleaned.some((c:any) => p.surfaceColor.id == c.surfaceColor.id &&\r\n\t\t\t\tp.structure == c.structure &&\r\n\t\t\t\tp.finish == c.finish)) \r\n\t\t\t{\r\n\t\t\t\tcleaned.push(p);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tcleaned = cleaned.sort((c1:PowderDto, c2:PowderDto) => {\r\n\t\t\tif (this.isStandardPowder(c1.setupCost) == this.isStandardPowder(c2.setupCost)) {\r\n\t\t\t\tif (c1.structure === c2.structure) {\r\n\t\t\t\t\treturn c1.finish - c2.finish;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn c1.structure - c2.structure;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn this.isStandardPowder(c1.setupCost) ? -1 : 1\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (cleaned.length <= 0) {\r\n\t\t\t// Deselect a chosen powder if it's not in the current filter anymore\r\n\t\t\tthis.selectedPowderId = -1;\r\n\t\t}\r\n\t\tif (cleaned.length === 1) {\r\n\t\t\t// If there is only one powder in the current selection, select it\r\n\t\t\tthis.selectedPowderId = cleaned[0].id;\r\n\t\t}\r\n\t\treturn cleaned;\r\n\t}\r\n\r\n\tprivate get selectedPowder(): PowderDto | null {\r\n\t\tif (this.selectedPowderId < 0) return null;\r\n\t\treturn this.powders.filter((p: PowderDto) => p.id == this.selectedPowderId)[0];\r\n\t}\r\n\r\n\tprivate get colors() {\r\n\t\treturn this.$store.getters.getAllSurfaceColors;\r\n\t}\r\n\r\n\tprivate get filteredSurfaceColors() {\r\n\t\tlet filtered = this.colors;\r\n\t\tif (!this.showAllPowders) {\r\n\t\t\tfiltered = filtered\r\n\t\t\t\t.filter((c: SurfaceColorDto) => this.powders.some((p:PowderDto) => \r\n\t\t\t\t\tp.surfaceColor.id == c.id && this.isStandardPowder(p.setupCost)));\r\n\t\t}\r\n\t\tif (this.ralFilterTerm.length > 0) {\r\n\t\t\tfiltered = filtered\r\n\t\t\t\t.filter((c: SurfaceColorDto) => c.ralCode.includes(this.ralFilterTerm));\r\n\t\t}\r\n\t\treturn filtered;\r\n\t}\r\n\r\n\tprivate isStandardPowder(setupCost: number) {\r\n\t\treturn setupCost <= 0;\r\n\t}\r\n\r\n\tprivate isColorAvailable(colorId: number) {\r\n\t\treturn this.powders.some((p:PowderDto) => \r\n\t\t\tp.available &&\r\n\t\t\tp.surfaceColor.id === colorId &&\r\n\t\t\t(p.application == PowderApplication.ExternalFassade || (p.structure == PowderStructure.Rough && p.application == PowderApplication.ExternalIndustry)) &&\r\n\t\t\t(this.selectedPowderStructure < 0 || p.structure == this.selectedPowderStructure) &&\r\n\t\t\t(this.selectedPowderFinish < 0 || p.finish == this.selectedPowderFinish) &&\r\n\t\t\t(this.showAllPowders === true || this.isStandardPowder(p.setupCost))\r\n\t\t);\r\n\t}\r\n\r\n\tprivate get isPowderCoatingAvailable() {\r\n return this.$store.state.isPowderCoatingAvailable;\r\n }\r\n\r\n\tprivate get powderTreatmentValid() {\r\n\t\treturn this.selectedPowderId > 0 && \r\n\t\t\tthis.selectedPowderFace >= 0 &&\r\n\t\t\tthis.selectedPowder?.available;\r\n\t}\r\n\r\n\tprivate getStructureText(value: number) {\r\n\t\treturn this.powderCoatingStructureOptions.filter((p:any) => p.value === value)[0].name;\r\n\t}\r\n\r\n\tprivate getFinishText(value: number) {\r\n\t\treturn this.powderCoatingFinishOptions.filter((p:any) => p.value === value)[0].name;\r\n\t}\r\n\r\n\tprivate getColorClass(colorId: number) {\r\n\t\tif (this.isColorAvailable(colorId)) return ''\r\n\t\tif (this.selectedPowderColorId == colorId) {\r\n\t\t\treturn 'selectedUnavailableColor'\r\n\t\t} else {\r\n\t\t\treturn 'unavailableColor'\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch('articleTreatmentEditDialog')\r\n\tprivate async openTreatmentDialog() {\r\n\t\tif (this.articleTreatmentEditDialog === true) {\r\n\t\t\tif (this.powders.length === 0) {\r\n\t\t\t\tawait this.getPowders();\r\n\t\t\t}\r\n\t\t\tthis.showAllPowders = true;\r\n\t\t\tif (this.isSingleArticle && this.singleArticle.powderCoatingTreatment != null) {\r\n\t\t\t\t// this.selectedPowderFinish = this.singleArticle.powderCoatingTreatment.powder.finish;\r\n\t\t\t\t// this.selectedPowderStructure = this.singleArticle.powderCoatingTreatment.powder.structure;\r\n\t\t\t\tthis.selectedPowderFinish = -1;\r\n\t\t\t\tthis.selectedPowderStructure = -1;\r\n\t\t\t\tthis.selectedPowderFace = this.singleArticle.powderCoatingTreatment.treatmentFace;\r\n\t\t\t\tthis.selectedPowderColorId = this.singleArticle.powderCoatingTreatment.powder.surfaceColor.id;\r\n\t\t\t\tthis.selectedPowderId = this.singleArticle.powderCoatingTreatment.powder.id;\r\n\t\t\t} else {\r\n\t\t\t\tthis.selectedPowderId = -1;\r\n\t\t\t\tthis.selectedPowderColorId = -1;\r\n\t\t\t\tthis.selectedPowderFinish = -1;\r\n\t\t\t\tthis.selectedPowderStructure = -1;\r\n\t\t\t\tthis.selectedPowderFace = 2;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n private async getPowders() {\r\n try {\r\n const response = await httpClient().get('Article/GetPowders');\r\n this.$store.commit('setPowders', response.data)\r\n } catch(err) {\r\n this.$store.dispatch('setSnackbarErrorText', 'Pulver konnten nicht geladen werden.');\r\n }\r\n }\r\n\r\n\tprivate async saveTreatments() {\r\n\t\tif (!this.isUpdatingArticleData && this.powderTreatmentValid && this.isPowderCoatingAvailable) {\r\n\t\t\tthis.setUpdating(true);\r\n\t\t\tthis.articles.forEach((article:CustomerArticleDto, index, array) => {\r\n\t\t\t\tlet treatmentDto: PowderCoatingTreatmentDto = {\r\n\t\t\t\t\tarticleId: article.articleId,\r\n\t\t\t\t\tpowder: this.selectedPowder ?? new PowderDto(),\r\n\t\t\t\t\ttreatmentFace: this.selectedPowderFace,\r\n\t\t\t\t\thasValue: true,\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\thttpClient().post(`article/AddOrUpdateTreatmentOfArticle`, treatmentDto)\r\n\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\tthis.$store.commit('addOrUpdateTreatmentForArticle', treatmentDto);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(() => this.$store.dispatch(\r\n\t\t\t\t\t\t'setSnackbarErrorText', \r\n\t\t\t\t\t\t'Die Oberflächenbehandlung von Artikel ' + article.articleId + ' konnte nicht gespeichert werden.'))\r\n\t\r\n\t\t\t\tthis.$store.commit('setArticleStateToCalculating', treatmentDto.articleId);\r\n\t\t\t})\r\n\t\t\tthis.$store.dispatch('setSnackbarText', 'Die Oberflächenbehandlung wurde gespeichert.');\r\n\t\t\tthis.setUpdating(false);\r\n\t\t\tthis.closeDialog();\r\n }\r\n }\r\n\r\n private async deleteTreatments() {\r\n\t\tif (!this.isUpdatingArticleData) {\r\n\t\t\tthis.setUpdating(true);\r\n\r\n\t\t\tthis.articles.forEach((article:CustomerArticleDto, index, array) => {\r\n\t\t\t\t// Don't do anything if article already has no powder coating.\r\n\t\t\t\tif (article.powderCoatingTreatment == null) return;\r\n\t\t\t\tlet data = {\r\n\t\t\t\t\tvalue: article.articleId\r\n\t\t\t\t}\r\n\r\n\t\t\t\thttpClient().post(`article/DeleteTreatmentOfArticle`, data)\r\n\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\tthis.$store.commit('deleteTreatmentForArticle', article.articleId);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(() => this.$store.dispatch(\r\n\t\t\t\t\t\t'setSnackbarErrorText', \r\n\t\t\t\t\t\t'Die Oberflächenbehandlung von Artikel ' + article.articleId + ' konnte nicht gelöscht werden.'))\r\n\t\t\t\t\r\n\t\t\t\tthis.$store.commit('setArticleStateToCalculating', article.articleId);\r\n\t\t\t})\r\n\t\t\tthis.$store.dispatch('setSnackbarText', 'Die Oberflächenbehandlung wurde gelöscht.');\r\n\t\t\tthis.setUpdating(false);\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n }\r\n\r\n\tprivate setUpdating(value: boolean) {\r\n\t\tthis.$emit('isUpdating', value);\r\n\t}\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTreatmentEditDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTreatmentEditDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticleTreatmentEditDialog.vue?vue&type=template&id=415311d0&scoped=true\"\nimport script from \"./ArticleTreatmentEditDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticleTreatmentEditDialog.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ArticleTreatmentEditDialog.vue?vue&type=style&index=0&id=415311d0&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"415311d0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.powderCoatingNotEditableDialog),callback:function ($$v) {_vm.powderCoatingNotEditableDialog=$$v},expression:\"powderCoatingNotEditableDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Pulverbeschichtung nicht wählbar\")]),(_vm.hasEngravings)?_c('v-card-text',[_vm._v(\" Der Artikel enthält Gravuren. Da diese bei Blexon nicht vertieft sind, würden Gravuren von der Pulverbeschichtung vollständig überdeckt.\"),_c('br'),_vm._v(\" Entfernen Sie die Gravur, um eine Pulverbeschichtung auswählen zu können.\"),_c('br'),_vm._v(\" Bei Fragen wenden Sie sich bitte an unser Helpdesk. \")]):_c('v-card-text',[_vm._v(\" Um eine Pulverbeschichtung anzubringen, werden die Teile an dünnen Drähten aufgehängt.\"),_c('br'),_vm._v(\" Unser Algorithmus hat keine Löcher oder Ausschnitte erkannt, an denen das Teil aufgehängt werden könnte.\"),_c('br'),_vm._v(\" Falls möglich, bearbeiten Sie Ihr Modell und bringen Sie ein kleines Loch (mindestens 4mm Durchmesser) an. Ohne eine solche Aufhängung verteuert sich die Pulverbeschichtung. Dieser Mehrpreis kann nicht automatisch berechnet werden.\"),_c('br'),_vm._v(\" Bitte senden Sie den Artikel an unser Helpdesk, wenn Sie keinen Ausschnitt anbringen können und trotzdem eine Pulverbeschichtung wünschen. \")]),_c('v-divider'),_c('v-card-actions',[(!_vm.hasEngravings)?_c('v-btn',{staticClass:\"blexon-button ml-3\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('helpdeskSendenClicked')}}},[_vm._v(\" An Helpdesk senden \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Schliessen \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class PowderCoatingNotEditableDialog extends Vue {\r\n\t@Prop()\r\n\tprivate powderCoatingNotEditableDialog!: boolean;\r\n\t@Prop()\r\n\tprivate hasEngravings!: boolean;\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","\r\nexport enum PriceModel {\r\n Standard = 0,\r\n Slow = 1,\r\n Express = 2\r\n}\r\n\r\nexport default {\r\n allPriceModels: [\r\n\t\t{\r\n\t\t\tvalue: PriceModel.Standard,\r\n\t\t\tname: 'Schnell',\r\n\t\t},\r\n\t\t{\r\n\t\t\tvalue: PriceModel.Slow,\r\n\t\t\tname: 'Preiswert',\r\n\t\t},\r\n\t\t{\r\n\t\t\tvalue: PriceModel.Express,\r\n\t\t\tname: 'Express',\r\n\t\t}\r\n ]\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowderCoatingNotEditableDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowderCoatingNotEditableDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PowderCoatingNotEditableDialog.vue?vue&type=template&id=4cc5e8d2\"\nimport script from \"./PowderCoatingNotEditableDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./PowderCoatingNotEditableDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\r\n * Defines the reason why an article is sent to helpdesk to be checked.\r\n */\r\nexport enum CheckArticleReason {\r\n ModelError = 0,\r\n PowderCoating = 1,\r\n}","export enum HintId {\r\n ShopPriceList = 0,\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('VDropdown',{attrs:{\"placement\":\"auto\",\"theme\":\"tooltip\",\"distance\":6,\"delay\":0,\"autoHide\":true,\"triggers\":[],\"shown\":_vm.showBubble},scopedSlots:_vm._u([{key:\"popper\",fn:function(){return [_c('div',{on:{\"click\":function($event){_vm.showBubble = false}}},[_c('h4',{staticStyle:{\"margin-bottom\":\"4px\"}},[_vm._v(_vm._s(_vm.title))]),_c('span',{staticStyle:{\"display\":\"block\",\"margin-bottom\":\"8px\"}},[_vm._v(_vm._s(_vm.message))]),_c('v-checkbox',{attrs:{\"label\":\"Meldung nicht mehr anzeigen\",\"hide-details\":\"\"},model:{value:(_vm.dontShowAgain),callback:function ($$v) {_vm.dontShowAgain=$$v},expression:\"dontShowAgain\"}})],1)]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport httpClient from '../../store/httpClient';\r\n\r\n@Component\r\nexport default class SpeechBubbleFloat extends Vue {\r\n\t@Prop()\r\n\tprivate hintId!: number;\r\n\t@Prop()\r\n\tprivate title!: \"\";\r\n\t@Prop()\r\n\tprivate message!: \"\";\r\n\r\n\tprivate showBubble = false;\r\n\tprivate dontShowAgain = false;\r\n\r\n\tprivate mounted() {\r\n\t\t// Don't show if hint id is invalid\r\n\t\tif (this.hintId >= 0) {\r\n\t\t\tthis.toggleTooltip();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate beforeUnmount() {\r\n\t\tthis.showBubble = false;\r\n\t}\r\n\r\n\tprivate get hasNotSeen() {\r\n\t\treturn (this.$store.state.unseenHintIds as Array).includes(this.hintId);\r\n\t}\r\n\r\n\t@Watch('dontShowAgain')\r\n\tprivate ondontShowAgainChanged() {\r\n\t\tif (this.dontShowAgain) {\r\n\t\t\tthis.setHintAsShown();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate toggleTooltip() {\r\n\t\tif (!this.showBubble) {\r\n\t\t\t// Only show if the hint has not been seen by the user\r\n\t\t\tif (!this.hasNotSeen) return;\r\n\t\t\tthis.setHintAsShownLocally();\r\n\t\t}\r\n\t\tthis.showBubble = !this.showBubble;\r\n\t}\r\n\r\n\tprivate async setHintAsShown() {\r\n\t\tawait httpClient().post(`customer/SetUserHintShown?hintId=${this.hintId}`, null);\r\n\t}\r\n\r\n\tprivate setHintAsShownLocally() {\r\n\t\t// Set hint as shown locally so that it doesn't pop up again in the current session\r\n\t\tthis.$store.commit('removeUnseenHintId', this.hintId);\r\n\t}\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeechBubbleFloat.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeechBubbleFloat.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SpeechBubbleFloat.vue?vue&type=template&id=3d5d60c6\"\nimport script from \"./SpeechBubbleFloat.vue?vue&type=script&lang=ts\"\nexport * from \"./SpeechBubbleFloat.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport rules from '@/store/rules'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { ArticleState } from '@/dtos/articleState';\r\nimport { CartItem } from '@/dtos/cartItem';\r\nimport { PriceDto } from '@/dtos/priceDto';\r\nimport { PriceState } from '@/dtos/priceState';\r\nimport { TokenResponseDto } from '@/dtos/tokenResponseDto';\r\nimport ArticlePriceInfoDialog from '@/views/Dialogs/ArticlePriceInfoDialog.vue'\r\nimport ArticleEditDialog from '@/views/Dialogs/ArticleEditDialog.vue'\r\nimport ArticleDeleteWarningDialog from '@/views/Dialogs/ArticleDeleteWarningDialog.vue'\r\nimport SendToHelpdeskDialog from '@/views/Dialogs/SendToHelpdeskDialog.vue'\r\nimport TooManyCalculatingDialog from '@/views/Dialogs/TooManyCalculatingDialog.vue'\r\nimport ArticleTreatmentEditDialog from '@/views/Dialogs/ArticleTreatmentEditDialog.vue'\r\nimport PowderCoatingNotEditableDialog from '@/views/Dialogs/PowderCoatingNotEditableDialog.vue'\r\nimport { PowderFinish, PowderStructure, ArticleFaceType } from '@/dtos/treatmentTypes';\r\nimport { PriceListDto } from '@/dtos/priceListDto';\r\nimport PriceModelDefault, { PriceModel } from \"@/dtos/priceModel\"\r\nimport { getEntgratartText } from '@/dtos/entgratart';\r\nimport { CheckArticleReason } from '@/dtos/checkArticleReason';\r\nimport { HintId } from '@/dtos/hintId';\r\nimport SpeechBubbleFloat from '../Dialogs/SpeechBubbleFloat.vue';\r\n\r\n@Component({\r\n components: {\r\n\t\tArticlePriceInfoDialog,\r\n ArticleEditDialog,\r\n ArticleDeleteWarningDialog,\r\n SendToHelpdeskDialog,\r\n TooManyCalculatingDialog,\r\n ArticleTreatmentEditDialog,\r\n PowderCoatingNotEditableDialog,\r\n SpeechBubbleFloat\r\n }\r\n})\r\nexport default class ArticleTile extends Vue {\r\n @Prop()\r\n private articleId!: number;\r\n private cadDialog: boolean = false;\r\n private currentWindowHeight: string = '100px';\r\n private amountToAddToCart: number = 1;\r\n private preisInformationenDialog: boolean = false;\r\n private articleEditDialog: boolean = false;\r\n private articleDeleteWarningDialog: boolean = false;\r\n private blexonisierenRunning: boolean = false;\r\n private tooManyCalculatingDialog: boolean = false;\r\n private showHelpdeskDialogue: boolean = false;\r\n private isValidAmount: boolean = true;\r\n private deleteOverlay: boolean = false;\r\n private isUpdatingArticleData: boolean = false;\r\n private allowedCartAmountRule = rules.allowedCartAmountRule;\r\n private articleToken: TokenResponseDto | null = null;\r\n private articleHasUnsavedChanges: boolean = false;\r\n private articleCartNames: string[] = [];\r\n private articleTreatmentEditDialog: boolean = false;\r\n private powderCoatingNotEditableDialog: boolean = false;\r\n\tprivate priceModels = PriceModelDefault.allPriceModels;\r\n private getEntgratartText = getEntgratartText;\r\n private reasonToSendArticleToHelpdesk: CheckArticleReason = CheckArticleReason.ModelError;\r\n private priceListHintTitle = 'Den finalen Preis inkl. Mengenrabatt sehen Sie im Warenkorb.';\r\n private priceListHintText = 'Mehrere Artikel mit gleichen Bearbeitungen oder gleichem Material führen zu einem Preisnachlass. Um den definitiven Preis zu kalkulieren, stellen Sie bitte einen Warenkorb zusammen und lassen Sie sich innert Sekunden ein Angebot inkl. Liefertermin berechnen.';\r\n\r\n private mounted() { \r\n this.setWindowHeight();\r\n window.addEventListener('resize', event => {\r\n this.setWindowHeight();\r\n });\r\n if (this.article.quantityInAssembly != null) {\r\n this.amountToAddToCart = this.article.quantityInAssembly;\r\n }\r\n }\r\n\r\n /**\r\n * Gets a value if the user can change the settings for powder coating.\r\n * This does NOT define if he can see it or not.\r\n */\r\n private get canChangePowderCoating() : boolean {\r\n return this.$store.getters.canArticleChangePowderCoating(this.article);\r\n }\r\n\r\n private get hasFeatures() {\r\n return this.article.powderCoatingTreatment != null || \r\n this.article.featureDtos.length > 0 || \r\n this.article.hasEngravings ||\r\n this.article.weldlines.length > 0;\r\n }\r\n\r\n private get article() : CustomerArticleDto{\r\n return this.$store.state.articles\r\n .find((a: CustomerArticleDto) => a.articleId == this.articleId);\r\n }\r\n\r\n private get region(){\r\n return this.$store.getters.customerDefaultDeliveryAddress.country;\r\n }\r\n \r\n private get articleCadViewUrl() {\r\n const email = encodeURI(this.$store.state.customer.user.username);\r\n const url = process.env.VUE_APP_cadClientUrl + `artikel?id=${this.article.articleId}` +\r\n `&token=${this.articleToken?.token}&readonly=${this.articleToken?.readonly}` +\r\n `&defaultEMail=${email}&locked=${this.article.locked}`;\r\n return url;\r\n }\r\n\r\n private get isCalculating() {\r\n return this.article.calculating;\r\n }\r\n\r\n private get isCartButtonRowVisible() {\r\n if (this.article.calculating) return false;\r\n if (this.article.migrated) return false;\r\n if (this.article.locked) return false;\r\n if (this.article.state === ArticleState.OK \r\n || this.article.state === ArticleState.Warning) {\r\n if (this.article.priceState !== PriceState.Failed) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n private get isCartButtonDisabled() {\r\n if (!this.isValidAmount || !this.article.canBeProduced ||\r\n (this.article.state !== ArticleState.OK && this.article.state !== ArticleState.Warning) ||\r\n this.article.priceState !== PriceState.Ok) {\r\n return true;\r\n }\r\n // Bei Gravuren und Pulverbeschichtung ist der Button disabled. Die Unterseite wäre aber möglich. Dort ist keine Gravur.\r\n if (this.article.hasEngravings && this.article.powderCoatingTreatment != null && this.article.powderCoatingTreatment.treatmentFace != ArticleFaceType.Back) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n private get isCadButtonVisible() {\r\n if (this.article.calculating || this.article.migrated) {\r\n return false;\r\n } \r\n return true;\r\n }\r\n private get isCadButtonDisabled() {\r\n return false; // Wenn er sichtbar ist, ist er auch enabled.\r\n // Mehrere Benutzer können aufmachen.\r\n }\r\n private get isHelpdeskButtonVisible() {\r\n if (this.article.migrated) {\r\n return false;\r\n }\r\n if (this.article.calculating) {\r\n return false;\r\n }\r\n if (this.article.state === ArticleState.Error\r\n || this.article.locked){\r\n if (this.article.priceState !== PriceState.Calculating){\r\n return true;\r\n }\r\n }\r\n if (this.article.state === ArticleState.OK\r\n || this.article.state === ArticleState.Warning){\r\n if (this.article.priceState === PriceState.Failed){\r\n return true;\r\n }\r\n } \r\n return false;\r\n }\r\n private get isHelpdeskButtonDisabled() {\r\n if (this.article.calculating) return false;\r\n if (this.article.locked){\r\n if (this.article.priceState !== PriceState.Calculating){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private get isArticleLockedAndNotAdmin() {\r\n return this.article.locked\r\n && (!this.$store.state.customer.user.isAdmin\r\n || !this.isImpersonated);\r\n }\r\n\r\n private get isArticleLockedAndAdmin() {\r\n return this.article.locked\r\n && (this.$store.state.customer.user.isAdmin\r\n || this.isImpersonated);\r\n }\r\n\r\n private get isArticleUnlockedAndAdmin() {\r\n return this.article.locked == false\r\n && (this.$store.state.customer.user.isAdmin\r\n || this.isImpersonated);\r\n }\r\n\r\n private get isStatusChipLinkToCad() {\r\n return (this.article.state === ArticleState.Warning\r\n || this.article.state === ArticleState.Error\r\n || this.article.state === ArticleState.Info)\r\n && !this.article.migrated\r\n }\r\n\r\n private get isImpersonated() {\r\n var oldToken = window.localStorage.getItem(`oidc.user:${process.env.VUE_APP_authorityUrl}:BlexonKundenportalClient_`);\r\n if (oldToken != null) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private get showPriceError() {\r\n return this.article.priceState == PriceState.NotCalculated\r\n || this.article.priceState == PriceState.Invalid\r\n || this.article.priceState == PriceState.Failed;\r\n }\r\n\r\n private get waehrung() {\r\n return this.$store.getters.waehrung;\r\n }\r\n\r\n private get articleHasPowderCoating() {\r\n return this.article.powderCoatingTreatment != null;\r\n }\r\n\r\n private get powderCoatingText() {\r\n if (!this.articleHasPowderCoating) return \"Nein\";\r\n return `RAL\\u00A0${this.article.powderCoatingTreatment?.powder.surfaceColor.ralCode}`;\r\n }\r\n\r\n private get isPowderCoatingAvailable() {\r\n return this.$store.state.isPowderCoatingAvailable;\r\n }\r\n\r\n private setUpdating(value: boolean) {\r\n this.isUpdatingArticleData = value;\r\n }\r\n\r\n private setDeleteOverlay(value: boolean) {\r\n this.deleteOverlay = value;\r\n }\r\n\r\n private getThumbnailUrl(id: string) {\r\n return this.$store.getters.getThumbnailUrl(this.article.articleId, this.article.lastChange);\r\n }\r\n\r\n private get sortedPrices() {\r\n if (this.article.priceLists.length <= 0) {\r\n return [];\r\n } else {\r\n let sortedPrices: PriceDto[] = Array.from(this.article.priceLists[0].prices);\r\n return sortedPrices.sort((a:any, b:any) => a.quantity - b.quantity);\r\n }\r\n }\r\n\r\n private getModelPrice(quantity: number, model: PriceModel): string {\r\n let list = this.article.priceLists.filter((pl:PriceListDto) => pl.priceModel == model)[0];\r\n return list.prices.filter((p:PriceDto) => p.quantity === quantity)[0].price.toFixed(2);\r\n }\r\n\r\n private get isArticleSelected() {\r\n return this.$store.state.selectedArticleIds.includes(this.articleId);\r\n }\r\n private set isArticleSelected(newValue: boolean) {\r\n // the new value is irrelevant. We just toggle the checkbox.\r\n this.$store.commit('addOrRemoveSelectedArticleId', this.articleId);\r\n }\r\n\r\n private get availablePriceModels() {\r\n\t\tlet availablePriceModels = this.priceModels.filter((p:any) => \r\n\t\t\tthis.article.priceLists.some((pl:PriceListDto) => pl.priceModel == p.value));\r\n\t\treturn availablePriceModels;\r\n\t}\r\n\r\n private get isMultiSelectionMode() {\r\n return this.$store.state.selectedArticleIds.length > 0;\r\n }\r\n\r\n private async openCadDialog() {\r\n try {\r\n if (this.article.calculating || this.article.migrated) {\r\n return;\r\n }\r\n const response = await httpClient().post(`article/GetArticleToken?articleId=${this.articleId}`);\r\n this.articleToken = response.data;\r\n if (this.articleToken != null) {\r\n window.addEventListener('message', this.handleArticleChangedInCad);\r\n this.cadDialog = true;\r\n }\r\n } catch(err) {\r\n console.log(`Für den Artikel konnte kein Token geladen werden. Error: ${err}`);\r\n }\r\n }\r\n\r\n private openArticleEditDialog() {\r\n if (!this.isArticleLockedAndNotAdmin && !this.isCalculating) {\r\n this.articleEditDialog = true;\r\n }\r\n }\r\n\r\n /**\r\n * This event handler is called, when the cad article in the iframe has changed.\r\n */\r\n private handleArticleChangedInCad (event: any) {\r\n if (event.origin == 'https://cad.test.blexon.com' || event.origin == 'https://cad.blexon.com') {\r\n if (event.data == `article-${this.articleId}-changed`) {\r\n this.articleHasUnsavedChanges = true;\r\n } else if (event.data == `article-${this.articleId}-saved`) {\r\n this.articleHasUnsavedChanges = false;\r\n this.closeCadDialog(false);\r\n }\r\n }\r\n }\r\n\r\n private async closeCadDialog(deleteToken: boolean) {\r\n if (this.articleHasUnsavedChanges) {\r\n const verwerfen = window.confirm('Der Artikel wurde im CAD geändert. Änderungen verwerfen?');\r\n if (!verwerfen) {\r\n return;\r\n }\r\n }\r\n this.cadDialog = false;\r\n window.removeEventListener('message', this.handleArticleChangedInCad);\r\n // delete token only when the article was not saved.\r\n // Wenn der Artikel gespeichert wurde, wird das Token nach der Validierung gelöscht.\r\n if (deleteToken) {\r\n await httpClient().post(`article/DeleteToken?token=${this.articleToken?.token}`);\r\n }\r\n this.articleToken = null;\r\n }\r\n\r\n private async recalculatePrice(){\r\n try{\r\n this.$store.commit('updatePriceStateOfArticle', { articleId: this.articleId, priceState: PriceState.Calculating });\r\n await httpClient().get(`article/UpdatePriceOfArticle?articleId=${this.articleId}`);\r\n // Article will be updated via SignalR\r\n } catch(err) {\r\n console.error(`Failed to update prices of article ${this.articleId}. Error: ${err}`);\r\n this.$store.commit('updatePriceStateOfArticle', { articleId: this.articleId, priceState: PriceState.Failed });\r\n }\r\n }\r\n\r\n private addToCart() {\r\n let newCartItem = new CartItem();\r\n newCartItem.articleId = this.articleId;\r\n newCartItem.quantity = parseInt(this.amountToAddToCart as any);\r\n this.$store.dispatch(\"addToCart\", newCartItem);\r\n this.$store.dispatch(\r\n 'setSnackbarArticleText', \r\n { \r\n text: `${this.amountToAddToCart} Stück in den Warenkorb gelegt.`, \r\n articleId: this.articleId \r\n }\r\n );\r\n this.amountToAddToCart = 1;\r\n }\r\n\r\n private async checkDeleteArticle() { \r\n try {\r\n this.articleCartNames = [];\r\n const response = await httpClient().get(`Cart/GetCartsOfArticle?articleId=${this.articleId}`);\r\n if (response.data.length > 0) {\r\n this.articleCartNames = response.data.sort();\r\n }\r\n this.articleDeleteWarningDialog = true;\r\n } catch(err) {\r\n console.error(`Could not retrieve carts of article ${this.articleId}.`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Aktuell kann nicht überprüft werden, ob der Artikel in einer Stückliste verwendet wird.');\r\n }\r\n }\r\n\r\n private async lockArticle() {\r\n try {\r\n await httpClient().post(`article/LockArticle?articleId=${this.articleId}`);\r\n this.$store.commit('setArticleStateToLocked', this.articleId);\r\n } catch(err) {\r\n console.log(`Der Artikel konnte nicht gesperrt werden. Error: ${err}`);\r\n }\r\n }\r\n\r\n private async unlockArticle() {\r\n try {\r\n await httpClient().post(`article/UnlockArticle?articleId=${this.articleId}`);\r\n this.$store.commit('setArticleStateToUnlocked', this.articleId);\r\n } catch(err) {\r\n console.log(`Der Artikel konnte nicht entsperrt werden. Error: ${err}`);\r\n }\r\n }\r\n\r\n private async revalidate() {\r\n try {\r\n this.blexonisierenRunning = true;\r\n const response = await httpClient().post(`article/revalidate?articleId=${this.articleId}`);\r\n if (response.data === false) {\r\n // zu viele von diesem Kunden sind am blexonisieren.\r\n this.tooManyCalculatingDialog = true;\r\n }\r\n } catch(err) {\r\n console.log(`Fehler beim erneuten Validieren des Artikels. Error: ${err}`);\r\n } finally {\r\n this.blexonisierenRunning = false;\r\n }\r\n }\r\n\r\n private setWindowHeight () {\r\n // 165 besteht aus...\r\n // - Margins der Dialogbox (variieren etwas je nach Aspect Ratio)\r\n // - Buttons für Speichern / Schliessen im Dialogfenster\r\n // - Sicherheitsmarge, sodass sicher keine Scrollbar im Dialog erscheint\r\n const currentHeight = window.innerHeight - 65\r\n this.currentWindowHeight = `${currentHeight}px`\r\n }\r\n\r\n private getFinishText(value: number) {\r\n switch (value) {\r\n case PowderFinish.Matt: {\r\n return \"Matt\";\r\n }\r\n case PowderFinish.Glossy: {\r\n return \"Glanz\";\r\n }\r\n default: {\r\n return \"Nicht verfügbar\";\r\n }\r\n }\r\n }\r\n\r\n private getStructureText(value: number) {\r\n switch (value) {\r\n case PowderStructure.Smooth: {\r\n return \"Glatt\";\r\n }\r\n case PowderStructure.Fine: {\r\n return \"Fein\";\r\n }\r\n case PowderStructure.Rough: {\r\n return \"Grob\";\r\n }\r\n default: {\r\n return \"Nicht verfügbar\";\r\n }\r\n }\r\n }\r\n\r\n private get articleStateText() {\r\n if(this.article.locked) {\r\n return 'In Überprüfung';\r\n }\r\n switch(this.article.state) { \r\n case ArticleState.OK: { \r\n return 'OK';\r\n }\r\n case ArticleState.Warning: { \r\n return 'Warnung';\r\n }\r\n case ArticleState.Error: { \r\n return 'Fehler';\r\n }\r\n case ArticleState.New: { \r\n return 'Neu';\r\n }\r\n case ArticleState.Info: { \r\n return 'Aktion erforderlich';\r\n } \r\n default: { \r\n return 'Unklar';\r\n } \r\n } \r\n }\r\n private get articleStateIcon() {\r\n if(this.article.locked) {\r\n return 'mdi-lock';\r\n }\r\n switch(this.article.state) { \r\n case ArticleState.OK: { \r\n return 'mdi-check';\r\n } \r\n case ArticleState.Warning: { \r\n return 'mdi-exclamation';\r\n } \r\n case ArticleState.Error: { \r\n return 'mdi-close';\r\n } \r\n case ArticleState.New: { \r\n return 'mdi-new-box';\r\n }\r\n default: { \r\n return 'mdi-help';\r\n } \r\n } \r\n }\r\n private get articleStateColor() {\r\n if(this.article.locked) {\r\n return '#CFD8DC';\r\n }\r\n switch(this.article.state) { \r\n case ArticleState.OK: { \r\n return '#C8E6C9';\r\n }\r\n case ArticleState.Warning: { \r\n return '#FFF9C4';\r\n }\r\n case ArticleState.Error: { \r\n return '#FFCDD2';\r\n }\r\n case ArticleState.Info: { \r\n return '#efbb20';\r\n }\r\n default: {\r\n return 'blue';\r\n }\r\n }\r\n } \r\n private get priceStateColor() {\r\n return this.showPriceError ? '#FFCDD2' : 'white';\r\n }\r\n\r\n private getZusatzbezeichnungOberseite() {\r\n if (this.article.materialname != null) {\r\n if (this.article.materialname.includes('geschliffen')) {\r\n return ' / Schliff / Folie'\r\n }\r\n if (this.article.materialname.includes('eloxiert')) {\r\n return ' / Folie'\r\n }\r\n }\r\n return ''\r\n }\r\n\r\n private getZusatzbezeichnungUnterseite() {\r\n if (this.article.materialname != null) {\r\n if (this.article.materialname.includes('Riffel')) {\r\n return ' / Riffeln'\r\n }\r\n }\r\n return ''\r\n }\r\n\r\n private get priceListHintId(): number {\r\n return HintId.ShopPriceList;\r\n }\r\n\r\n /**\r\n * Creates a text to show at the user interface to inform the user\r\n * about the weldline features.\r\n */\r\n private getWeldlineString() : string {\r\n var text = '';\r\n if (this.article.weldlines.length === 1) {\r\n text = '1 Schweißnaht';\r\n } else if (this.article.weldlines.length > 1) {\r\n text = `${this.article.weldlines.length} Schweißnähte`\r\n }\r\n const numberOfCorners = this.article.weldlines.reduce( (a, b) => {\r\n return a + b.corners.length;\r\n }, 0);\r\n if (numberOfCorners === 1) {\r\n text += ` | 1 Ecke`\r\n } else if (numberOfCorners > 1) {\r\n text += ` | ${numberOfCorners} Ecken`\r\n }\r\n if (this.article.weldlines.some(w => w.clean)) {\r\n text += ` | verputzt`\r\n } else {\r\n text += ` | unverputzt`\r\n }\r\n return text;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTile.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleTile.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticleTile.vue?vue&type=template&id=0ebc6e04\"\nimport script from \"./ArticleTile.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticleTile.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ArticleTile.vue?vue&type=style&index=0&id=0ebc6e04&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-container',{staticClass:\"assemblyTile\",class:{'elevation-10' : hover},staticStyle:{\"position\":\"relative\"}},[_c('v-overlay',{attrs:{\"absolute\":true},model:{value:(_vm.deleteOverlay),callback:function ($$v) {_vm.deleteOverlay=$$v},expression:\"deleteOverlay\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1),_c('v-row',{staticClass:\"ma-0\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":_vm.isMultiSelectionMode || hover ? 10 : 11}},[_c('p',{staticClass:\"subtitle-1 ma-0 pa-0 truncate\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({staticClass:\"pointerElement\",on:{\"click\":_vm.openArticleEditDialog}},on),[_vm._v(\" \"+_vm._s(_vm.article.customerArticleName)+\" \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.article.customerArticleName)+\" \")])],1)]),(hover || _vm.isMultiSelectionMode)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"50\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.state.locked,\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.isArticleSelected),callback:function ($$v) {_vm.isArticleSelected=$$v},expression:\"isArticleSelected\"}})],1)]}}],null,true)},[_vm._v(\" Auswählen für Mehrfachaktion. Mögliche Aktionen werden oben angezeigt. \")])],1):_vm._e(),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\",\"title\":\"Öffnet das Kontextmenü zum Artikel.\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":_vm.openArticleEditDialog}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-pencil\")])],1),_c('v-list-item-title',[_vm._v(\" Bearbeiten \")])],1),_c('v-list-item',{attrs:{\"disabled\":_vm.state.calculating || _vm.state.locked},on:{\"click\":function($event){return _vm.checkDeleteArticle()}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-delete\")])],1),_c('v-list-item-title',[_vm._v(\" Löschen \")])],1)],1)],1)],1)],1),_c('v-row',{staticClass:\"ma-0\",staticStyle:{\"min-height\":\"200px\"}},[_c('v-col',{staticClass:\"pa-2\",attrs:{\"cols\":\"6\"}},[_c('v-img',{staticClass:\"previewImage\",style:({ cursor: 'pointer'}),attrs:{\"contain\":\"\",\"width\":\"160px\",\"height\":\"150px\",\"title\":\"Öffnet das CAD Modell im Browser.\",\"src\":_vm.getThumbnailUrl(_vm.article.articleId)},on:{\"click\":function($event){return _vm.openCadDialog()}}})],1),_c('v-col',{staticClass:\"text-caption pa-0\",attrs:{\"cols\":\"6\"}},[(_vm.article.customerArticleId !== '')?_c('p',{staticClass:\"ma-0 pa-0\"},[_c('span',{staticClass:\"pointerElement\",on:{\"click\":_vm.openArticleEditDialog}},[_c('strong',[_vm._v(\"Artikel Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.customerArticleId)+\" \")])]):_vm._e(),_c('p',{staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Blexon Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.articleId)+\" \")]),_c('p',{staticClass:\"ma-0 pa-0\"},[_c('strong',[_vm._v(\"Gewicht: \")]),_vm._v(\" \"+_vm._s(_vm._f(\"round3Decimal\")(_vm.gewicht))+\"kg \")]),_c('div',{staticStyle:{\"margin-top\":\"5px\",\"display\":\"flex\",\"flex-wrap\":\"wrap\",\"gap\":\"5px 5px\"}},[_vm._l((_vm.article.subArticleIds.slice(0,6)),function(subarticleId){return _c('v-img',{key:subarticleId,attrs:{\"height\":\"60px\",\"width\":\"60px\",\"contain\":\"\",\"src\":_vm.getThumbnailUrl(subarticleId)}})}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.article.subArticleIds.length > 6),expression:\"article.subArticleIds.length > 6\"}]},[_vm._v(\"mehr...\")])],2)])],1),_c('v-row',{staticClass:\"mx-0 mt-2 align-center\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[(!_vm.state.calculating)?_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-chip',_vm._g({staticClass:\"text-caption\",attrs:{\"color\":_vm.articleStateColor}},on),[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.articleStateIcon))])],1),_vm._v(\" \"+_vm._s(_vm.articleStateText)+\" \")],1)]}}],null,true)},[(_vm.article.subArticleIds.length <= 0 && _vm.article.camMessages.length <= 0)?_c('span',[_vm._v(\"Baugruppe enthält keine gültigen Volumenkörper. Evtl. sind die Körper offen oder nur als Oberfläche definiert.\")]):(_vm.article.subArticleIds.length <= 0 && _vm.article.camMessages.length > 0)?_c('span',_vm._l((_vm.article.camMessages),function(message,index){return _c('span',{key:index},[_vm._v(\" \"+_vm._s(message.shortDescription)),_c('br')])}),0):_c('span',[_vm._v(\"Klicken Sie auf 'Baugruppe anzeigen' um die Status der einzelnen Artikel zu sehen.\")])]):_c('v-progress-circular',{attrs:{\"small\":\"\",\"indeterminate\":\"\",\"color\":\"accent\"}})],1),(_vm.article.subArticleIds.length > 0)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"blexon-article-button\",attrs:{\"small\":\"\",\"block\":\"\"},on:{\"click\":function($event){return _vm.navigateTo(`catalogue/assembly/${_vm.article.articleId}`)}}},on),[_vm._v(\" Baugruppe anzeigen \")])]}}],null,true)},[_c('span',[_vm._v(\" Zeigt alle Artikel dieser Baugruppe an. \")])])],1):_vm._e()],1),_c('v-row',{staticClass:\"mx-0 my-0 mt-2 align-center\"},[_c('v-col',{staticClass:\"pa-0 pr-2\",attrs:{\"cols\":\"6\"}},[_c('v-form',{model:{value:(_vm.isValidAmount),callback:function ($$v) {_vm.isValidAmount=$$v},expression:\"isValidAmount\"}},[_c('v-text-field',{attrs:{\"placeholder\":\"Menge\",\"type\":\"number\",\"rules\":_vm.allowedCartAmountRule,\"color\":\"accent\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.amountToAddToCart),callback:function ($$v) {_vm.amountToAddToCart=_vm._n($$v)},expression:\"amountToAddToCart\"}})],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-btn',{staticClass:\"pa-0 blexon-article-button\",attrs:{\"small\":\"\",\"block\":\"\",\"disabled\":_vm.isCartButtonDisabled},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToCart()}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-cart-arrow-down\")]),_vm._v(\" In Warenkorb \")],1)],1)]}}],null,true)},[(_vm.article.canBeProduced)?_c('span',[_vm._v(\" Fügt den Artikel zum Warenkorb hinzu. \")]):_c('span',[_vm._v(\" Artikel kann aktuell in \"+_vm._s(_vm.region)+\" nicht bestellt werden. \")])])],1)],1),_c('v-dialog',{attrs:{\"content-class\":\"specialSize\",\"persistent\":\"\"},model:{value:(_vm.cadDialog),callback:function ($$v) {_vm.cadDialog=$$v},expression:\"cadDialog\"}},[_c('div',{staticStyle:{\"background-color\":\"#f3f3f4\",\"padding\":\"0px\"}},[_c('v-btn',{staticClass:\"ma-5 blexon-article-button\",attrs:{\"fab\":\"\",\"small\":\"\",\"fixed\":\"\",\"right\":\"\",\"top\":\"\",\"title\":\"CAD Ansicht schliessen.\"},on:{\"click\":function($event){return _vm.closeCadDialog(true)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),(_vm.cadDialog)?_c('iframe',{staticStyle:{\"padding\":\"0px\",\"margin\":\"0px\",\"border\":\"0px\",\"width\":\"100%\"},attrs:{\"loading\":\"lazy\",\"height\":_vm.currentWindowHeight,\"src\":_vm.articleCadViewUrl}}):_vm._e()],1)]),_c('article-edit-dialog',{attrs:{\"article\":_vm.article,\"articleEditDialog\":_vm.articleEditDialog,\"isUpdatingArticleData\":_vm.isUpdatingArticleData},on:{\"isUpdating\":_vm.setUpdating,\"closeDialog\":function($event){_vm.articleEditDialog = false;}}}),_c('article-delete-warning-dialog',{attrs:{\"articleDeleteWarningDialog\":_vm.articleDeleteWarningDialog,\"articleCartNames\":_vm.articleCartNames,\"articleId\":_vm.articleId},on:{\"setDeleteOverlay\":_vm.setDeleteOverlay,\"closeDialog\":function($event){_vm.articleDeleteWarningDialog = false;}}})],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport rules from '@/store/rules'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { ArticleState } from '@/dtos/articleState';\r\nimport { CartItem } from '@/dtos/cartItem';\r\nimport { PriceState } from '@/dtos/priceState';\r\nimport { TokenResponseDto } from '@/dtos/tokenResponseDto';\r\nimport ArticlePriceInfoDialog from '@/views/Dialogs/ArticlePriceInfoDialog.vue'\r\nimport ArticleEditDialog from '@/views/Dialogs/ArticleEditDialog.vue'\r\nimport ArticleDeleteWarningDialog from '@/views/Dialogs/ArticleDeleteWarningDialog.vue'\r\n\r\n@Component({\r\n components: {\r\n\t\tArticlePriceInfoDialog,\r\n ArticleEditDialog,\r\n ArticleDeleteWarningDialog,\r\n }\r\n})\r\nexport default class AssemblyTile extends Vue {\r\n @Prop()\r\n private articleId!: number;\r\n private cadDialog: boolean = false;\r\n private currentWindowHeight: string = '100px';\r\n private amountToAddToCart: number = 1;\r\n private articleEditDialog: boolean = false;\r\n private articleDeleteWarningDialog: boolean = false;\r\n private blexonisierenRunning: boolean = false;\r\n private isValidAmount: boolean = true;\r\n private deleteOverlay: boolean = false;\r\n private isUpdatingArticleData: boolean = false;\r\n private allowedCartAmountRule = rules.allowedCartAmountRule;\r\n private articleToken: TokenResponseDto | null = null;\r\n private articleHasUnsavedChanges: boolean = false;\r\n private articleCartNames: string[] = [];\r\n\r\n private mounted() {\r\n this.$store.dispatch('loadMissingArticles', this.article.subArticleIds);\r\n this.setWindowHeight();\r\n window.addEventListener('resize', event => {\r\n this.setWindowHeight();\r\n });\r\n }\r\n\r\n private get article() : CustomerArticleDto{\r\n return this.$store.state.articles\r\n .find((a: CustomerArticleDto) => a.articleId == this.articleId);\r\n }\r\n\r\n private get region() {\r\n return this.$store.getters.customerDefaultDeliveryAddress.country;\r\n }\r\n\r\n private get gewicht() {\r\n return this.subArticles.reduce((previousValue, a) => {\r\n return previousValue + a.weight * a.quantityInAssembly;\r\n }, 0);\r\n }\r\n\r\n private get isMultiSelectionMode() {\r\n return this.$store.state.selectedArticleIds.length > 0;\r\n }\r\n\r\n private navigateTo(link:string) {\r\n this.$router.push({ path: link });\r\n }\r\n private get articleCadViewUrl() {\r\n const email = encodeURI(this.$store.state.customer.user.username);\r\n const url = process.env.VUE_APP_cadClientUrl + `artikel?id=${this.article.articleId}` +\r\n `&token=${this.articleToken?.token}&readonly=${this.articleToken?.readonly}` +\r\n `&defaultEMail=${email}&locked=${this.article.locked}&weld=${this.isWeldingAvailable}`;\r\n return url;\r\n }\r\n\r\n private get isWeldingAvailable() {\r\n return this.$store.state.isWeldingAvailable;\r\n }\r\n \r\n private get isCartButtonDisabled() {\r\n if (!this.isValidAmount || !this.state.canBeProduced || this.state.calculating ||\r\n (this.state.state !== ArticleState.OK && this.state.state !== ArticleState.Warning) ||\r\n this.state.priceState !== PriceState.Ok) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private setUpdating(value: boolean) {\r\n this.isUpdatingArticleData = value;\r\n }\r\n\r\n private setDeleteOverlay(value: boolean) {\r\n this.deleteOverlay = value;\r\n }\r\n\r\n private getThumbnailUrl(id: string) {\r\n return this.$store.getters.getThumbnailUrl(id, this.article.lastChange);\r\n }\r\n\r\n private get isArticleSelected() {\r\n return this.$store.state.selectedArticleIds.includes(this.articleId);\r\n }\r\n private set isArticleSelected(newValue: boolean) {\r\n // the new value is irrelevant. We just toggle the checkbox.\r\n this.$store.commit('addOrRemoveSelectedArticleId', this.articleId);\r\n }\r\n\r\n private async openCadDialog() {\r\n try {\r\n const response = await httpClient().post(`article/GetArticleToken?articleId=${this.articleId}`);\r\n this.articleToken = response.data;\r\n if (this.articleToken != null) {\r\n window.addEventListener('message', this.handleArticleChangedInCad);\r\n this.cadDialog = true;\r\n }\r\n } catch(err) {\r\n console.error(`Für den Artikel ${this.articleId} konnte kein Token geladen werden. Error: ${err}`);\r\n }\r\n }\r\n\r\n private openArticleEditDialog() {\r\n this.articleEditDialog = true;\r\n }\r\n\r\n /**\r\n * This event handler is called, when the cad article in the iframe has changed.\r\n */\r\n private handleArticleChangedInCad (event: any) {\r\n if (event.origin == 'https://cad.test.blexon.com' || event.origin == 'https://cad.blexon.com') {\r\n if (event.data == `article-${this.articleId}-changed`) {\r\n this.articleHasUnsavedChanges = true;\r\n } else if (event.data == `article-${this.articleId}-saved`) {\r\n this.articleHasUnsavedChanges = false;\r\n this.closeCadDialog(false);\r\n }\r\n }\r\n }\r\n\r\n private async closeCadDialog(deleteToken: boolean) {\r\n if (this.articleHasUnsavedChanges) {\r\n const verwerfen = window.confirm('Der Artikel wurde im CAD geändert. Änderungen verwerfen?');\r\n if (!verwerfen) {\r\n return;\r\n }\r\n }\r\n this.cadDialog = false;\r\n window.removeEventListener('message', this.handleArticleChangedInCad);\r\n // delete token only when the article was not saved.\r\n // Wenn der Artikel gespeichert wurde, wird das Token nach der Validierung gelöscht.\r\n if (deleteToken) {\r\n await httpClient().post(`article/DeleteToken?token=${this.articleToken?.token}`);\r\n }\r\n this.articleToken = null;\r\n }\r\n\r\n private addToCart() {\r\n for (const subarticle of this.subArticles) {\r\n let newCartItem = new CartItem();\r\n newCartItem.articleId = subarticle.articleId;\r\n newCartItem.quantity = subarticle.quantityInAssembly * this.amountToAddToCart;\r\n this.$store.dispatch(\"addToCart\", newCartItem);\r\n }\r\n this.$store.dispatch(\r\n 'setSnackbarArticleText', \r\n { \r\n text: `${this.amountToAddToCart} Stück in den Warenkorb gelegt.`, \r\n articleId: this.articleId \r\n }\r\n );\r\n }\r\n\r\n private async checkDeleteArticle() { \r\n try {\r\n this.articleCartNames = [];\r\n const response = await httpClient().get(`Cart/GetCartsOfArticle?articleId=${this.articleId}`);\r\n if (response.data.length > 0) {\r\n this.articleCartNames = response.data.sort();\r\n }\r\n } catch(err) {\r\n console.error(`Could not retrieve carts of article ${this.articleId}.`);\r\n } finally {\r\n this.articleDeleteWarningDialog = true;\r\n }\r\n }\r\n\r\n private setWindowHeight () {\r\n // 165 besteht aus...\r\n // - Margins der Dialogbox (variieren etwas je nach Aspect Ratio)\r\n // - Buttons für Speichern / Schliessen im Dialogfenster\r\n // - Sicherheitsmarge, sodass sicher keine Scrollbar im Dialog erscheint\r\n const currentHeight = window.innerHeight - 65\r\n this.currentWindowHeight = `${currentHeight}px`\r\n }\r\n\r\n private get subArticles() : CustomerArticleDto[] {\r\n const subArticles = this.$store.state.articles.filter((a:CustomerArticleDto) => a.parentArticleId == this.articleId);\r\n return subArticles;\r\n }\r\n\r\n private get state() {\r\n const locked : boolean = this.subArticles.some((a: CustomerArticleDto) => a.locked);\r\n let state = ArticleState.OK;\r\n if (this.subArticles.length <= 0 || this.subArticles.some((a: CustomerArticleDto) => a.state == ArticleState.Error)) {\r\n state = ArticleState.Error;\r\n } else if (this.subArticles.some((a: CustomerArticleDto) => a.state == ArticleState.Info)) {\r\n state = ArticleState.Info;\r\n } else if (this.subArticles.some((a: CustomerArticleDto) => a.state == ArticleState.Warning)) {\r\n state = ArticleState.Warning;\r\n }\r\n const calculating = this.subArticles.some((a: CustomerArticleDto) => a.calculating || a.priceState == PriceState.Calculating);\r\n let priceState = PriceState.Ok;\r\n if (this.subArticles.some((a: CustomerArticleDto) => a.priceState == PriceState.NotCalculated || a.priceState == PriceState.Invalid || a.priceState == PriceState.Failed)) {\r\n priceState = PriceState.Invalid;\r\n } else if (this.subArticles.some((a: CustomerArticleDto) => a.priceState == PriceState.Calculating)) {\r\n priceState = PriceState.Calculating;\r\n }\r\n const canBeProduced = this.subArticles.every((a: CustomerArticleDto) => a.canBeProduced);\r\n return {\r\n locked: locked,\r\n state: state,\r\n priceState: priceState,\r\n calculating: calculating,\r\n canBeProduced: canBeProduced,\r\n }\r\n }\r\n\r\n private get articleStateText() {\r\n if(this.state.locked) {\r\n return 'In Überprüfung';\r\n }\r\n switch(this.state.state) { \r\n case ArticleState.OK: { \r\n return 'OK';\r\n }\r\n case ArticleState.Warning: { \r\n return 'Warnung';\r\n }\r\n case ArticleState.Error: { \r\n return 'Fehler';\r\n }\r\n case ArticleState.Info: { \r\n return 'Aktion erforderlich';\r\n } \r\n default: { \r\n return 'Unklar';\r\n } \r\n } \r\n }\r\n private get articleStateIcon() {\r\n if(this.state.locked) {\r\n return 'mdi-lock';\r\n }\r\n switch(this.state.state) { \r\n case ArticleState.OK: { \r\n return 'mdi-check';\r\n } \r\n case ArticleState.Warning: { \r\n return 'mdi-exclamation';\r\n } \r\n case ArticleState.Error: { \r\n return 'mdi-close';\r\n } \r\n default: { \r\n return 'mdi-help';\r\n } \r\n } \r\n }\r\n private get articleStateColor() {\r\n if(this.state.locked) {\r\n return '#CFD8DC';\r\n }\r\n switch(this.state.state) { \r\n case ArticleState.OK: { \r\n return '#C8E6C9';\r\n }\r\n case ArticleState.Warning: { \r\n return '#FFF9C4';\r\n }\r\n case ArticleState.Error: { \r\n return '#FFCDD2';\r\n }\r\n case ArticleState.Info: { \r\n return '#efbb20';\r\n }\r\n default: {\r\n return 'blue';\r\n }\r\n }\r\n } \r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssemblyTile.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssemblyTile.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AssemblyTile.vue?vue&type=template&id=56178c52\"\nimport script from \"./AssemblyTile.vue?vue&type=script&lang=ts\"\nexport * from \"./AssemblyTile.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AssemblyTile.vue?vue&type=style&index=0&id=56178c52&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"importArticleTile\",attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',{staticClass:\"pa-0\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('span',{staticStyle:{\"display\":\"block\"}},[_c('strong',[_vm._v(\"Blexon Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.articleId))]),_c('v-form',{model:{value:(_vm.articleDataValid),callback:function ($$v) {_vm.articleDataValid=$$v},expression:\"articleDataValid\"}},[_c('v-text-field',{attrs:{\"label\":\"Artikelname\",\"rules\":_vm.requiredStringMax50Rule,\"disabled\":!_vm.articleInitialized,\"color\":\"accent\"},on:{\"blur\":() => {\n _vm.articleName = _vm.articleName.trim();\n _vm.saveArticleData();\n }},model:{value:(_vm.articleName),callback:function ($$v) {_vm.articleName=$$v},expression:\"articleName\"}}),_c('v-text-field',{attrs:{\"label\":\"Artikelnummer (optional)\",\"placeholder\":\"Ihre Artikelnummer\",\"disabled\":!_vm.articleInitialized,\"rules\":_vm.optionalStringMax50Rule,\"color\":\"accent\"},on:{\"blur\":() => {\n _vm.articleNumber = _vm.articleNumber.trim();\n _vm.saveArticleData();\n }},model:{value:(_vm.articleNumber),callback:function ($$v) {_vm.articleNumber=$$v},expression:\"articleNumber\"}})],1)],1),_c('v-col',{attrs:{\"cols\":\"6\",\"align-self\":\"center\"}},[(!_vm.articleInitialized)?_c('div',[_c('div',{staticClass:\"text-center text-caption\"},[_vm._v(\" Wird hochgeladen... \")]),_c('div',{staticClass:\"text-center\"},[_c('v-progress-linear',{attrs:{\"color\":\"accent\"},model:{value:(_vm.article.uploadProgress),callback:function ($$v) {_vm.$set(_vm.article, \"uploadProgress\", $$v)},expression:\"article.uploadProgress\"}})],1)]):(_vm.article.calculating)?_c('div',[_c('div',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"accent\",\"size\":\"32\",\"indeterminate\":\"\"}})],1),_c('div',{staticClass:\"text-center text-caption\"},[_vm._v(\" \"+_vm._s(_vm.article.calculatingMessage)+\" \")])]):_c('v-img',{attrs:{\"contain\":\"\",\"max-height\":\"130\",\"src\":_vm.getThumbnailUrl(_vm.article.articleId)}})],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[(!_vm.article.calculating)?_c('div',[(_vm.article.quantityInAssembly > 0)?_c('span',{staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.article.quantityInAssembly)+\" Stück \")]):_vm._e(),(_vm.article.thickness > 0)?_c('span',[_vm._v(\" Dicke: \"+_vm._s(_vm.article.thickness)+\"mm \")]):_vm._e(),(_vm.article.thickness > 0 && _vm.availableWerkstoffe.length <= 0)?_c('span',[_c('br'),_c('small',[_vm._v(\"Wir haben keine Werkstoffe mit der erkannten Dicke gefunden. Bitte wählen Sie den gewünschten Werkstoff aus der Liste und berechnen sie den Artikel. Sollte dabei ein Fehler resultieren, können Sie den Artikel ans Helpdesk zur Abklärung senden.\")])]):_vm._e(),_c('v-select',{attrs:{\"dense\":\"\",\"color\":\"accent\",\"disabled\":_vm.article.calculating,\"placeholder\":\"Bitte Werkstoff wählen...\",\"item-text\":\"bezeichnung\",\"item-value\":\"blexonId\",\"items\":_vm.selectableWerkstoffe},model:{value:(_vm.article.werkstoffId),callback:function ($$v) {_vm.$set(_vm.article, \"werkstoffId\", $$v)},expression:\"article.werkstoffId\"}}),(_vm.article.thickness <= 0 && _vm.article.werkstoffId > 0)?_c('v-select',{attrs:{\"dense\":\"\",\"color\":\"accent\",\"placeholder\":\"Bitte Dicke wählen...\",\"items\":_vm.availableThicknesses},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.item)+\" mm \")]}},{key:\"selection\",fn:function(data){return [_vm._v(\" \"+_vm._s(data.item)+\" mm \")]}}],null,false,2031382940),model:{value:(_vm.selectedThickness),callback:function ($$v) {_vm.selectedThickness=$$v},expression:\"selectedThickness\"}}):_vm._e()],1):_vm._e()]),_c('v-col',{attrs:{\"cols\":\"6\",\"align-self\":\"end\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"loading\":_vm.deleting,\"disabled\":_vm.deleting,\"title\":\"Bricht den Import-Prozess ab und löscht den Artikel aus der Liste.\"},on:{\"click\":function($event){return _vm.deleteImportingArticle()}}},[(!_vm.article.calculating)?_c('v-icon',[_vm._v(\"mdi-delete\")]):_c('span',[_vm._v(\"Abbrechen\")])],1)],1),_c('div',{staticClass:\"text-right mt-2\"},[(!_vm.deleting && !_vm.isSubArticle)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":_vm.article.werkstoffId <= 0\n || (_vm.article.thickness <= 0 && _vm.selectedThickness <= 0)\n || _vm.article.calculating \n || !_vm.articleDataValid,\"title\":\"Analysiert den Artikel und erkennt Bearbeitungen automatisch. Preisberechnung wird gestartet.\"},on:{\"click\":function($event){return _vm.assignWerkstoffAndStartDesign()}}},[_vm._v(\" Blexonisieren \")]):_vm._e()],1)])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch} from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport rules from '@/store/rules'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { WerkstoffDto } from '@/dtos/werkstoffDto';\r\nimport { ArticleDataDto } from '@/dtos/articleDataDto';\r\nimport { MaterialDto } from '@/dtos/materialDto';\r\n\r\n@Component\r\nexport default class ImportArticle extends Vue {\r\n @Prop()\r\n private articleId!: number;\r\n @Prop()\r\n private isSubArticle!: boolean; // Article of an assembly\r\n private articleName: string = '';\r\n private articleNumber: string = '';\r\n private deleting: boolean = false;\r\n private selectedThickness: number = 0;\r\n private articleDataValid: boolean = true;\r\n private requiredStringMax50Rule: any = rules.requiredStringMax50Rule;\r\n private optionalStringMax50Rule: any = rules.optionalStringMax50Rule;\r\n\r\n private mounted() {\r\n this.articleName = this.article.customerArticleName;\r\n }\r\n\r\n private get article() : CustomerArticleDto {\r\n return this.$store.state.importingArticles\r\n .find((a: CustomerArticleDto) => a.articleId == this.articleId);\r\n }\r\n\r\n @Watch('isCalculating')\r\n private resetCalculatingMessage() {\r\n if(!this.isCalculating) {\r\n this.article.calculatingMessage = '';\r\n }\r\n }\r\n\r\n @Watch('article.customerArticleName')\r\n private updateArticleName() {\r\n this.articleName = this.article.customerArticleName;\r\n }\r\n\r\n private get isCalculating() {\r\n return this.article.calculating;\r\n }\r\n\r\n private get articleInitialized() {\r\n return this.article.articleId >= 0;\r\n }\r\n\r\n // Werkstoffe, die für den Artikel in Frage kommen.\r\n // Konnte die Dicke nicht berechnet werden --> Alle Werkstoffe anzeigen.\r\n // Konnte die Dicke berechnet werden --> Werkstoffe anzeigen, die in der Dicke verfügbar sind.\r\n private get availableWerkstoffe() {\r\n if (this.article.thickness <= 0) {\r\n return (this.$store.state.werkstoffe as WerkstoffDto[]);\r\n }\r\n return (this.$store.state.werkstoffe as WerkstoffDto[])\r\n .filter((w: WerkstoffDto) => w.materials.some((m:MaterialDto) => m.thickness === this.article.thickness));\r\n }\r\n\r\n // Datenquelle für Werkstoff-DropDown.\r\n // Sind keine Werkstoffe vorhanden --> Alle Werkstoffe und Warnmeldung anzeigen.\r\n // Werkstoffe werden im Backend sortiert.\r\n private get selectableWerkstoffe() {\r\n if (this.availableWerkstoffe.length > 0) {\r\n return this.availableWerkstoffe;\r\n }\r\n return (this.$store.state.werkstoffe as WerkstoffDto[]);\r\n }\r\n\r\n // Datenquelle für Dicke-DropDown.\r\n // Ist kein Werkstoff ausgewählt --> Leere Liste.\r\n // Ist ein Werkstoff ausgewählt --> Vorhandene Dicken des Werkstoffs anzeigen.\r\n // Dicken sind im Backend vorsortiert.\r\n private get availableThicknesses() {\r\n if (this.article.werkstoffId <= 0) {\r\n return [];\r\n }\r\n return ((this.$store.state.werkstoffe as WerkstoffDto[])\r\n .find((w:WerkstoffDto) => w.blexonId === this.article.werkstoffId) as any)\r\n .materials.map((m:MaterialDto) => m.thickness);\r\n }\r\n\r\n private async assignWerkstoffAndStartDesign() {\r\n try {\r\n if (this.article.thickness <= 0 && \r\n this.selectedThickness != undefined && this.selectedThickness > 0) {\r\n this.article.thickness = this.selectedThickness;\r\n }\r\n\r\n this.$store.dispatch('blexonisieren', {article: this.article, validate: true});\r\n } catch(err) {\r\n console.log(`Fehler beim hinzufügen des Werkstoffs zum Artikel ${err}`);\r\n }\r\n }\r\n\r\n private getThumbnailUrl(articleId: number) {\r\n return this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n }\r\n\r\n private async deleteImportingArticle() {\r\n try {\r\n this.deleting = true;\r\n const response = await httpClient().post(`article/deleteArticle?articleId=${this.article.articleId}`);\r\n Vue.nextTick(() => { \r\n console.log(`Artikel ${this.article.articleId} wurde gelöscht`);\r\n this.$store.commit('deleteArticle', this.article.articleId);\r\n });\r\n } catch(err) {\r\n console.log(`Fehler beim Löschen des Artikels. ${err}`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Artikel konnte nicht gelöscht werden.');\r\n } finally {\r\n this.deleting = false;\r\n }\r\n }\r\n\r\n private async saveArticleData() {\r\n if(!this.articleDataValid \r\n || (this.article.customerArticleName === this.articleName && this.article.customerArticleId === this.articleNumber))\r\n {\r\n return;\r\n }\r\n let articleData: ArticleDataDto = {\r\n articleId: this.article.articleId,\r\n customerArticleId: this.articleNumber,\r\n customerArticleName: this.articleName,\r\n };\r\n try {\r\n await httpClient().post('article/UpdateArticleData', articleData);\r\n this.$store.commit('saveArticleData', articleData);\r\n } catch(err) {\r\n console.log(`Failed to save article data of article ${this.article.articleId}. Error: ${err}`);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportArticle.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportArticle.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ImportArticle.vue?vue&type=template&id=40eed7dd&scoped=true\"\nimport script from \"./ImportArticle.vue?vue&type=script&lang=ts\"\nexport * from \"./ImportArticle.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ImportArticle.vue?vue&type=style&index=0&id=40eed7dd&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40eed7dd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"importArticleTile\",attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',{staticClass:\"pa-0\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"6\"}},[_c('span',{staticStyle:{\"display\":\"block\"}},[_c('strong',[_vm._v(\"Blexon Nr:\")]),_vm._v(\" \"+_vm._s(_vm.article.articleId))]),_c('v-form',{model:{value:(_vm.articleDataValid),callback:function ($$v) {_vm.articleDataValid=$$v},expression:\"articleDataValid\"}},[_c('v-text-field',{attrs:{\"label\":\"Artikelname\",\"rules\":_vm.requiredStringMax50Rule,\"disabled\":!_vm.articleInitialized,\"color\":\"accent\"},on:{\"blur\":() => {\n _vm.articleName = _vm.articleName.trim();\n _vm.saveArticleData();\n }},model:{value:(_vm.articleName),callback:function ($$v) {_vm.articleName=$$v},expression:\"articleName\"}}),_c('v-text-field',{attrs:{\"label\":\"Artikelnummer (optional)\",\"placeholder\":\"Ihre Artikelnummer\",\"disabled\":!_vm.articleInitialized,\"rules\":_vm.optionalStringMax50Rule,\"color\":\"accent\"},on:{\"blur\":() => {\n _vm.articleNumber = _vm.articleNumber.trim();\n _vm.saveArticleData();\n }},model:{value:(_vm.articleNumber),callback:function ($$v) {_vm.articleNumber=$$v},expression:\"articleNumber\"}})],1)],1),_c('v-col',{staticStyle:{\"position\":\"relative\",\"text-align\":\"center\"},attrs:{\"cols\":\"6\"}},[_c('v-img',{attrs:{\"contain\":\"\",\"max-height\":\"130\",\"src\":_vm.getThumbnailUrl(_vm.article.articleId)}}),(_vm.article.calculating)?_c('div',[_c('v-progress-circular',{staticStyle:{\"position\":\"absolute\",\"top\":\"49px\"},attrs:{\"color\":\"accent\",\"size\":\"32\",\"indeterminate\":\"\"}})],1):_vm._e(),(_vm.article.calculating)?_c('span',{staticClass:\"text-caption\"},[_vm._v(\" Oh, eine Baugruppe. Dann zerlegen wir die mal... \")]):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[(!_vm.article.calculating)?_c('v-select',{attrs:{\"dense\":\"\",\"color\":\"accent\",\"disabled\":_vm.article.calculating || _vm.selectableWerkstoffe.length <= 0,\"placeholder\":_vm.selectableWerkstoffe.length > 0 ? 'Bitte Werkstoff wählen...' : 'Kein gemeinsamer Werkstoff für alle Teile verfügbar',\"item-text\":\"bezeichnung\",\"item-value\":\"blexonId\",\"items\":_vm.selectableWerkstoffe},model:{value:(_vm.selectedWerkstoffId),callback:function ($$v) {_vm.selectedWerkstoffId=$$v},expression:\"selectedWerkstoffId\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"loading\":_vm.deleting,\"disabled\":_vm.deleting,\"title\":\"Bricht den Import-Prozess ab und löscht den Artikel aus der Liste.\"},on:{\"click\":function($event){return _vm.deleteImportingArticle()}}},[(!_vm.article.calculating)?_c('v-icon',[_vm._v(\"mdi-delete\")]):_c('span',[_vm._v(\"Abbrechen\")])],1)],1),_c('div',{staticClass:\"text-right mt-2\"},[(!_vm.deleting)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":!_vm.subArticlesValid\n || _vm.article.calculating \n || !_vm.articleDataValid,\"title\":\"Analysiert die Baugruppe und erkennt Bearbeitungen automatisch. Preisberechnung wird gestartet.\"},on:{\"click\":function($event){return _vm.blexonisieren()}}},[_vm._v(\" Blexonisieren \")]):_vm._e()],1)])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},_vm._l((_vm.subArticles),function(subArticle){return _c('v-row',{key:subArticle.articleId},[_c('import-article',{staticStyle:{\"margin-left\":\"3em\"},attrs:{\"articleId\":subArticle.articleId,\"isSubArticle\":true}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch} from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport rules from '@/store/rules'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { WerkstoffDto } from '@/dtos/werkstoffDto';\r\nimport { ArticleDataDto } from '@/dtos/articleDataDto';\r\nimport { MaterialDto } from '@/dtos/materialDto';\r\nimport ImportArticle from './ImportArticle.vue';\r\n\r\n@Component({\r\n components: {\r\n ImportArticle,\r\n }\r\n})\r\nexport default class ImportAssembly extends Vue {\r\n @Prop()\r\n private articleId!: number;\r\n private articleName: string = '';\r\n private articleNumber: string = '';\r\n private deleting: boolean = false;\r\n private articleDataValid: boolean = true;\r\n private requiredStringMax50Rule: any = rules.requiredStringMax50Rule;\r\n private optionalStringMax50Rule: any = rules.optionalStringMax50Rule;\r\n private selectedWerkstoffId: number = 0;\r\n\r\n private mounted() {\r\n this.articleName = this.article.customerArticleName;\r\n }\r\n\r\n private get article() : CustomerArticleDto {\r\n return this.$store.state.importingArticles\r\n .find((a: CustomerArticleDto) => a.articleId == this.articleId);\r\n }\r\n\r\n private get subArticles() : CustomerArticleDto[] {\r\n return this.$store.state.importingArticles\r\n .filter((a: CustomerArticleDto) => a.parentArticleId == this.articleId);\r\n }\r\n\r\n private get subArticlesValid() : boolean {\r\n return this.subArticles.every(a => a.werkstoffId > 0);\r\n }\r\n\r\n @Watch('selectedWerkstoffId')\r\n private selectedWerkstoffIdChanged() {\r\n if (this.selectedWerkstoffId > 0) {\r\n for (const article of this.subArticles) {\r\n article.werkstoffId = this.selectedWerkstoffId;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the raw materials that are available for ALL subarticles\r\n */\r\n private get selectableWerkstoffe() {\r\n var availableWerkstoffe: WerkstoffDto[] = [];\r\n for (const article of this.subArticles) {\r\n var werkstoffeForArticle = (this.$store.state.werkstoffe as WerkstoffDto[])\r\n .filter((w: WerkstoffDto) => w.materials.some((m:MaterialDto) => m.thickness === article.thickness));\r\n if (werkstoffeForArticle.length == 0) {\r\n werkstoffeForArticle = this.$store.state.werkstoffe as WerkstoffDto[];\r\n }\r\n if (availableWerkstoffe.length > 0) {\r\n for (const [index, werkstoff] of availableWerkstoffe.entries()) {\r\n if (!werkstoffeForArticle.some(w => w.blexonId == werkstoff.blexonId)) {\r\n // The current article does not allow the raw material.\r\n // We need to remove the material from the list.\r\n availableWerkstoffe.splice(index, 1);\r\n }\r\n }\r\n } else {\r\n // Initial value\r\n availableWerkstoffe = werkstoffeForArticle;\r\n }\r\n }\r\n return availableWerkstoffe;\r\n }\r\n\r\n @Watch('isCalculating')\r\n private resetCalculatingMessage() {\r\n if(!this.isCalculating) {\r\n this.article.calculatingMessage = '';\r\n }\r\n }\r\n\r\n @Watch('article.customerArticleName')\r\n private updateArticleName() {\r\n this.articleName = this.article.customerArticleName;\r\n }\r\n\r\n private get isCalculating() {\r\n return this.article.calculating;\r\n }\r\n\r\n private get articleInitialized() {\r\n return this.article.articleId >= 0;\r\n }\r\n\r\n private async blexonisieren() {\r\n var werkstoffId = 3; // This is AlMg3\r\n for (const article of this.subArticles) {\r\n this.$store.dispatch('blexonisieren', {article: article, validate: true});\r\n werkstoffId = article.werkstoffId;\r\n }\r\n // The assembly needs a raw material to disappear from the importing articles\r\n // but it does not matter what raw material it is.\r\n this.article.werkstoffId = werkstoffId;\r\n this.$store.dispatch('blexonisieren', {article: this.article, validate: false});\r\n }\r\n\r\n private getThumbnailUrl(articleId: number) {\r\n return this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n }\r\n\r\n private async deleteImportingArticle() {\r\n try {\r\n this.deleting = true;\r\n const response = await httpClient().post(`article/deleteArticle?articleId=${this.article.articleId}`);\r\n Vue.nextTick(() => { \r\n console.log(`Artikel ${this.article.articleId} wurde gelöscht`);\r\n this.$store.commit('deleteArticle', this.article.articleId);\r\n });\r\n } catch(err) {\r\n console.log(`Fehler beim Löschen des Artikels. ${err}`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Artikel konnte nicht gelöscht werden.');\r\n } finally {\r\n this.deleting = false;\r\n }\r\n }\r\n\r\n private async saveArticleData() {\r\n if(!this.articleDataValid \r\n || (this.article.customerArticleName === this.articleName && this.article.customerArticleId === this.articleNumber))\r\n {\r\n return;\r\n }\r\n let articleData: ArticleDataDto = {\r\n articleId: this.article.articleId,\r\n customerArticleId: this.articleNumber,\r\n customerArticleName: this.articleName,\r\n };\r\n try {\r\n await httpClient().post('article/UpdateArticleData', articleData);\r\n this.$store.commit('saveArticleData', articleData);\r\n } catch(err) {\r\n console.log(`Failed to save article data of article ${this.article.articleId}. Error: ${err}`);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportAssembly.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportAssembly.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ImportAssembly.vue?vue&type=template&id=07e747e0&scoped=true\"\nimport script from \"./ImportAssembly.vue?vue&type=script&lang=ts\"\nexport * from \"./ImportAssembly.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ImportAssembly.vue?vue&type=style&index=0&id=07e747e0&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07e747e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"9\",\"sm\":\"7\"}},[_c('span',[_vm._v(\"Offene Bestellung vom \"+_vm._s(_vm._f(\"formatDate\")(_vm.pendingOrder.requestedAt))+\" von \"+_vm._s(_vm.pendingOrder.requestedByFirstname)+\" \"+_vm._s(_vm.pendingOrder.requestedByLastname)+\" (\"+_vm._s(_vm.pendingOrder.positions.length)+\" Positionen) \")])]),_c('v-col',{attrs:{\"cols\":\"2\",\"sm\":\"4\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"block\":\"\",\"title\":\"Fügt die Bestellung dem Warenkorb hinzu.\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToCart()}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-cart-arrow-down\")]),_vm._v(\" In Warenkorb \")],1)],1),_c('v-col',{attrs:{\"cols\":\"1\",\"sm\":\"1\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"title\":\"Löscht die Bestellung.\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteOrderDialog = true}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.deleteOrderDialog),callback:function ($$v) {_vm.deleteOrderDialog=$$v},expression:\"deleteOrderDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Sind Sie sicher?\")]),_c('v-card-text',[_vm._v(\" Die Bestellung von \"+_vm._s(_vm.pendingOrder.requestedByFirstname)+\" \"+_vm._s(_vm.pendingOrder.requestedByLastname)+\" mit \"+_vm._s(_vm.pendingOrder.positions.length)+\" Positionen soll gelöscht werden? Dieser Vorgang kann nicht mehr rückgängig gemacht werden. \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.deleteOrderDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.deletePendingOrder()}}},[_vm._v(\" Löschen \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch} from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport { PendingOrderDto } from '../../dtos/pendingOrderDto';\r\n\r\n@Component\r\nexport default class PendingOrder extends Vue {\r\n @Prop()\r\n private pendingOrder!: PendingOrderDto;\r\n private deleteOrderDialog: boolean = false;\r\n\r\n private async deletePendingOrder() {\r\n try {\r\n await httpClient().delete(`order/DeletePendingOrder?cartId=${this.pendingOrder.id}`);\r\n this.$emit('deleted', this.pendingOrder.id)\r\n this.deleteOrderDialog = false;\r\n } catch(e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private async addToCart() {\r\n this.pendingOrder.isInCart = true;\r\n const articleIds = this.pendingOrder.positions.map((p) => p.articleId);\r\n await this.$store.dispatch('loadMissingArticles', articleIds);\r\n this.$store.dispatch('loadSavedCartIntoCurrentCart', this.pendingOrder.positions);\r\n this.$router.push({ name: 'Checkout' });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PendingOrder.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PendingOrder.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PendingOrder.vue?vue&type=template&id=81366ff4\"\nimport script from \"./PendingOrder.vue?vue&type=script&lang=ts\"\nexport * from \"./PendingOrder.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.multiSelectionMode)?_c('div',{staticStyle:{\"display\":\"flex\",\"margin\":\"10px\",\"gap\":\"10px\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"wrap\":\"\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"block\":\"\"},on:{\"click\":_vm.clearSelection}},[_vm._v(\" Auswahl aufheben \")])],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"block\":\"\"},on:{\"click\":function($event){_vm.articleMultiDeleteDialog = true}}},[_vm._v(\" \"+_vm._s(_vm.selectedArticlesCount)+\" Artikel löschen \")])],1),(_vm.isPowderCoatingAvailable)?_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"rgba(0, 0, 0, 1)\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_c('v-btn',{attrs:{\"block\":\"\",\"disabled\":!_vm.allSelectedCanBePowdercoated},on:{\"click\":function($event){_vm.articleTreatmentEditDialog = true}}},[_vm._v(\" \"+_vm._s(_vm.selectedArticlesCount)+\" Artikel pulverbeschichten \")])],1)]}}],null,false,4218428527)},[_vm._v(\" \"+_vm._s(_vm.powdercoatingTooltipText)+\" \")])],1):_vm._e()],1),_c('article-multi-delete-dialog',{attrs:{\"articleMultiDeleteDialog\":_vm.articleMultiDeleteDialog},on:{\"closeDialog\":function($event){_vm.articleMultiDeleteDialog = false;}}}),_c('article-treatment-edit-dialog',{attrs:{\"articleTreatmentEditDialog\":_vm.articleTreatmentEditDialog,\"articles\":_vm.selectedArticles,\"isUpdatingArticleData\":_vm.isUpdatingArticleData},on:{\"isUpdating\":_vm.setUpdating,\"closeDialog\":function($event){_vm.articleTreatmentEditDialog = false;}}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){return _vm.closeDialog()},\"keydown\":_vm.checkEsc},model:{value:(_vm.articleMultiDeleteDialog),callback:function ($$v) {_vm.articleMultiDeleteDialog=$$v},expression:\"articleMultiDeleteDialog\"}},[_c('v-card',[_c('v-card-title',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"color\":\"accent\",\"large\":\"\"}},[_vm._v(\"mdi-alert\")]),_vm._v(\" Mehrere Artikel löschen \")],1),(_vm.isLoading || _vm.isDeleting)?_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-progress-circular',{attrs:{\"size\":\"26\",\"indeterminate\":\"\",\"color\":\"accent\"}}),_c('br'),_c('br'),(_vm.isDeleting)?_c('span',[_vm._v(_vm._s(_vm.deleteCount)+\" von \"+_vm._s(_vm.validStateArticles.length)+\" gelöscht\")]):_vm._e()],1)],1):_c('v-card-text',[(this.invalidStateArticles.length > 0)?_c('div',[_vm._v(\" Folgende Artikel sind entweder gesperrt oder werden derzeit berechnet und können deshalb \"),_c('b',[_vm._v(\"nicht\")]),_vm._v(\" gelöscht werden:\"),_c('br'),_vm._l((_vm.invalidStateArticles),function(article){return _c('span',{key:article.articleId,staticStyle:{\"margin-left\":\"12px\"}},[_vm._v(\" - \"+_vm._s(article.articleId)+\" | \"+_vm._s(article.customerArticleName)),_c('br')])}),_c('br')],2):_vm._e(),(this.articlesInPartLists.length > 0)?_c('div',[_vm._v(\" Folgende Artikel sind Teil mindestens einer Stückliste:\"),_c('br'),_c('v-expansion-panels',{attrs:{\"accordion\":\"\"}},_vm._l((this.articlesInPartLists),function(article){return _c('v-expansion-panel',{key:article.id},[_c('v-expansion-panel-header',[_vm._v(_vm._s(article.id)+\" | \"+_vm._s(article.name))]),_c('v-expansion-panel-content',[_vm._v(\" Enthalten in...\"),_c('br'),_vm._l((article.carts),function(cart,i){return _c('span',{key:i},[_vm._v(\" - \"+_vm._s(cart)),_c('br')])})],2)],1)}),1),_c('br')],1):_vm._e(),(_vm.validStateArticles.length > 0)?_c('span',[_vm._v(\"Möchten Sie \"+_vm._s(_vm.validStateArticles.length)+\" Artikel wirklich löschen?\")]):_c('span',[_vm._v(\"Keiner der ausgewählten Artikel kann gelöscht werden.\")])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.closeDialog()}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":_vm.validStateArticles.length <= 0},on:{\"click\":function($event){return _vm.deleteArticles()}}},[_vm._v(\" Löschen \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\n\r\n@Component\r\nexport default class ArticleMultiDeleteDialog extends Vue {\r\n\t@Prop()\r\n\tprivate articleMultiDeleteDialog!: boolean;\r\n\tprivate selectedArticles: CustomerArticleDto[] = new Array();\r\n\tprivate articlesInPartLists: any[] = [];\r\n\tprivate isLoading: boolean = false;\r\n\tprivate isDeleting: boolean = false;\r\n\tprivate deleteCount: number = 0;\r\n\r\n\t@Watch('articleMultiDeleteDialog')\r\n\tprivate async load() {\t\t\r\n\t\tif (this.articleMultiDeleteDialog) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tawait this.loadArticles().then(this.checkArticleCarts);\r\n\t\t\t} catch(err) {\r\n\t\t\t\tconsole.log('Error while loading data for multi delete.');\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get selectedArticleIds() {\r\n\t\treturn this.$store.state.selectedArticleIds;\r\n\t}\r\n\tprivate get invalidStateArticles(): CustomerArticleDto[] {\r\n\t\treturn this.selectedArticles.filter((a:CustomerArticleDto) => a.locked || a.calculating)\r\n\t}\r\n\tprivate get validStateArticles(): CustomerArticleDto[] {\r\n\t\treturn this.selectedArticles.filter((a:CustomerArticleDto) => !a.locked && !a.calculating);\r\n\t}\r\n\r\n\tprivate async loadArticles() {\r\n\t\tif (this.selectedArticleIds.length > 0) {\r\n\t\t\ttry {\r\n\t\t\t\tlet response = await httpClient().post('article/GetArticlesById', this.selectedArticleIds);\r\n\t\t\t\tthis.selectedArticles = response.data;\r\n\t\t\t} catch(err) {\r\n\t\t\t\tconsole.log(`Could not get articles from article ids. ${err}`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate checkArticleCarts() {\r\n try {\r\n this.articlesInPartLists = [];\r\n\t\t\tthis.validStateArticles.forEach(async (a:CustomerArticleDto) => {\r\n\t\t\t\tconst response = await httpClient().get(`Cart/GetCartsOfArticle?articleId=${a.articleId}`);\r\n\t\t\t\tif (response.data.length > 0) {\r\n\t\t\t\t\tlet newEntry = {\r\n\t\t\t\t\t\tid: a.articleId,\r\n\t\t\t\t\t\tname: a.customerArticleName,\r\n\t\t\t\t\t\tcarts: response.data.sort()\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.articlesInPartLists.push(newEntry);\r\n\t\t\t\t}\r\n\t\t\t})\r\n } catch(err) {\r\n console.log(`Could not retrieve carts of one of the articles. ${err}`);\r\n }\r\n }\r\n\r\n\tprivate async deleteArticles() {\r\n\t\tconsole.log('deleting selected articles...');\r\n try {\r\n\t\t\tthis.isDeleting = true;\r\n\t\t\tthis.deleteCount = 0;\r\n\t\t\tlet index = 1;\r\n\t\t\tfor (const a of this.validStateArticles) {\r\n\t\t\t\tconst response = await httpClient().post(`article/deleteArticle?articleId=${a.articleId}&force=true`);\r\n\t\t\t\tlet data = {\r\n\t\t\t\t\tarticleId: a.articleId,\r\n\t\t\t\t\trefreshCart: index >= this.validStateArticles.length,\r\n\t\t\t\t}\r\n\t\t\t\tthis.$store.dispatch('deleteArticle', data);\r\n\t\t\t\tindex++;\r\n\t\t\t\tthis.deleteCount++;\r\n\t\t\t}\r\n \tthis.$store.commit('clearSelectedArticleIds');\r\n\t\t\tconsole.log('cleared selected');\r\n } catch(err) {\r\n console.log(`Fehler beim Löschen der Artikel. ${err}`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Fehler beim Löschen eines Artikels.');\r\n } finally {\r\n\t\t\tthis.isDeleting = false;\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate closeDialog() {\r\n\t\tthis.$emit('closeDialog');\r\n\t}\r\n\r\n\tprivate checkEsc(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.closeDialog();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleMultiDeleteDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleMultiDeleteDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ArticleMultiDeleteDialog.vue?vue&type=template&id=3c569a91\"\nimport script from \"./ArticleMultiDeleteDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./ArticleMultiDeleteDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport ArticleMultiDeleteDialog from '@/views/Dialogs/ArticleMultiDeleteDialog.vue'\r\nimport ArticleTreatmentEditDialog from '@/views/Dialogs/ArticleTreatmentEditDialog.vue'\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\n@Component({\r\n components: {\r\n ArticleMultiDeleteDialog,\r\n ArticleTreatmentEditDialog,\r\n }\r\n})\r\nexport default class Multiedit extends Vue {\r\n\r\n private articleMultiDeleteDialog: boolean = false;\r\n private articleTreatmentEditDialog: boolean = false;\r\n private isUpdatingArticleData: boolean = false;\r\n\r\n private get selectedArticlesCount() {\r\n return this.$store.state.selectedArticleIds.length;\r\n }\r\n private get multiSelectionMode() {\r\n return this.selectedArticlesCount > 0;\r\n }\r\n\r\n private get selectedArticles() {\r\n return this.$store.state.articles\r\n .filter((a:CustomerArticleDto) => this.$store.state.selectedArticleIds.includes(a.articleId));\r\n }\r\n\r\n private get allSelectedCanBePowdercoated() {\r\n return this.selectedArticles.every((a:any) => this.$store.getters.canArticleChangePowderCoating(a));\r\n }\r\n\r\n private get powdercoatingTooltipText() {\r\n if (this.allSelectedCanBePowdercoated) {\r\n return \"Für alle ausgewählten Artikel eine Pulverbeschichtung hinzufügen, bearbeiten oder entfernen.\";\r\n } else {\r\n return \"Mindestens 1 ausgewählter Artikel kann nicht pulverbeschichtet werden.\";\r\n }\r\n }\r\n\r\n private get isPowderCoatingAvailable() {\r\n return this.$store.state.isPowderCoatingAvailable;\r\n }\r\n\r\n private clearSelection() {\r\n this.$store.commit('clearSelectedArticleIds');\r\n }\r\n\r\n private setUpdating(value: boolean) {\r\n this.isUpdatingArticleData = value;\r\n }\r\n\r\n}\r\n\r\n","/* Sorting type for articles in the catalogue */\r\nexport enum CatalogueSortingType {\r\n CreatedAtAscending = 0,\r\n //\r\n // Summary:\r\n // When was the article created\r\n CreatedAtDescending = 1,\r\n LastChangeAscending = 2,\r\n LastChangeDescending = 3,\r\n //\r\n // Summary:\r\n // Thickness of material ascending. Example: All 1mm first. Than all 2mm\r\n MaterialThicknessAscending = 4,\r\n MaterialThicknessDescending = 5,\r\n //\r\n // Summary:\r\n // Name of material ascending Example: All Aluminium first, than all stahl. The\r\n // parts with aluminium will be sorted by thickness within the group.\r\n MaterialNameAscending = 6,\r\n MaterialNameDescending = 7,\r\n //\r\n // Summary:\r\n // Name of article ascending and descending\r\n ArticleNameAscending = 8,\r\n ArticleNameDescending = 9,\r\n}","/* Type of article file for upload */\r\nexport enum ImportFileExtension {\r\n Dxf = 0,\r\n Step = 1,\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiedit.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiedit.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Multiedit.vue?vue&type=template&id=1c333800\"\nimport script from \"./Multiedit.vue?vue&type=script&lang=ts\"\nexport * from \"./Multiedit.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport { debounce } from 'typescript-debounce-decorator';\r\nimport * as path from 'path';\r\nimport httpClient from '../../store/httpClient';\r\nimport ArticleTile from './ArticleTile.vue';\r\nimport AssemblyTile from './AssemblyTile.vue';\r\nimport ImportArticle from './ImportArticle.vue';\r\nimport ImportAssembly from './ImportAssembly.vue';\r\nimport PendingOrder from './PendingOrder.vue';\r\nimport MultiEdit from './Multiedit.vue';\r\nimport { CatalogueSortingType } from '../../dtos/catalogueSortingType';\r\nimport { CatalogueSortingDto } from '../../dtos/catalogueSortingDto';\r\nimport { FileSizeLimit } from '@/dtos/fileSizeLimit';\r\nimport { ImportFileExtension } from '@/dtos/importFileExtension';\r\nimport { PendingOrderDto } from '@/dtos/pendingOrderDto';\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\n\r\n@Component({\r\n components: {\r\n ArticleTile,\r\n AssemblyTile,\r\n ImportArticle,\r\n ImportAssembly,\r\n PendingOrder,\r\n MultiEdit,\r\n }\r\n})\r\nexport default class Catalogue extends Vue {\r\n private lastSearchTerm: string = '';\r\n private loadBatchSize: number = 22;\r\n private articleLoading: boolean = false;\r\n private floatingFilter: boolean = false;\r\n private initialLoadIsRunning: boolean = false;\r\n private uploadWarningDialog: boolean = false;\r\n private errorUploadFiles: string[] = [];\r\n private warningUploadFiles: string[] = [];\r\n private invalidFormatUploadFiles: string[] = [];\r\n private dragging: boolean = false;\r\n private validFileFormats: Array = new Array();\r\n \r\n private sortTypes: CatalogueSortingDto[] = [\r\n {\r\n text: 'Neu Erstellte zuerst',\r\n value: CatalogueSortingType.CreatedAtDescending\r\n },\r\n {\r\n text: 'Neu Erstellte zuletzt',\r\n value: CatalogueSortingType.CreatedAtAscending\r\n },\r\n {\r\n text: 'Zuletzt Geänderte zuerst',\r\n value: CatalogueSortingType.LastChangeDescending\r\n },\r\n {\r\n text: 'Zuletzt Geänderte zuletzt',\r\n value: CatalogueSortingType.LastChangeAscending\r\n },\r\n {\r\n text: 'Nach Artikelname A - Z',\r\n value: CatalogueSortingType.ArticleNameAscending\r\n },\r\n {\r\n text: 'Nach Artikelname Z - A',\r\n value: CatalogueSortingType.ArticleNameDescending\r\n },\r\n {\r\n text: 'Nach Materialbezeichnung A - Z',\r\n value: CatalogueSortingType.MaterialNameAscending\r\n },\r\n {\r\n text: 'Nach Materialbezeichnung Z - A',\r\n value: CatalogueSortingType.MaterialNameDescending\r\n },\r\n {\r\n text: 'Nach Materialdicke (dünne zuerst)',\r\n value: CatalogueSortingType.MaterialThicknessAscending\r\n },\r\n {\r\n text: 'Nach Materialdicke (dicke zuerst)',\r\n value: CatalogueSortingType.MaterialThicknessDescending\r\n }\r\n ]\r\n\r\n beforeRouteEnter(to: any, from: any, next: any) {\r\n next((vm: any) => {\r\n window.addEventListener('scroll', vm.checkCatalogueBottom);\r\n });\r\n }\r\n\r\n beforeRouteLeave(to: any, from: any, next: any) {\r\n window.removeEventListener('scroll', this.checkCatalogueBottom);\r\n next();\r\n }\r\n\r\n private async mounted() {\r\n this.$store.commit('clearSelectedArticleIds');\r\n this.initialLoading();\r\n }\r\n\r\n private get searchTerm() : string {\r\n return this.$store.state.catalogueSearchTerm;\r\n }\r\n private set searchTerm(value: string) {\r\n this.$store.commit('setCatalogueSearchTerm', value);\r\n }\r\n\r\n private get selectedUserId() : string {\r\n return this.$store.state.catalogueUserId;\r\n }\r\n private set selectedUserId(value: string) {\r\n this.$store.commit('setCatalogueUserId', value);\r\n }\r\n\r\n private get catalogueArticleIds() : number[] {\r\n return (this.$store.state.catalogueArticles as number[]);\r\n }\r\n\r\n private get catalogueArticles() : CustomerArticleDto[] {\r\n const allArticlesInCatalog = this.catalogueArticleIds.map(c => this.$store.state.articles\r\n .find((a: CustomerArticleDto) => a.articleId == c)) as CustomerArticleDto[];\r\n return allArticlesInCatalog.filter(a => a.parentArticleId == null)\r\n }\r\n\r\n private get importingArticles() {\r\n return this.$store.getters.importingArticles;\r\n }\r\n\r\n private get isLoading() {\r\n return this.$store.state.loading;\r\n }\r\n\r\n private get hasMoreToLoad() {\r\n return this.$store.state.hasMoreArticlesToLoad;\r\n }\r\n private set hasMoreToLoad(hasMoreToLoad: boolean) {\r\n this.$store.commit('setHasMoreArticlesToLoad', hasMoreToLoad);\r\n }\r\n\r\n private get showFullscreenImport() {\r\n return (\r\n !this.isLoading\r\n && this.$store.state.articles.length <= 0\r\n && this.importingArticles.length <= 0\r\n && (this.searchTerm === undefined || this.searchTerm === '' || this.searchTerm.length < 3)\r\n )\r\n }\r\n private get hasArticles() {\r\n return this.$store.state.articles.length > 0\r\n || (this.searchTerm !== undefined && this.searchTerm.length >= 3)\r\n }\r\n\r\n private get activeSortType() {\r\n var type = this.sortTypes.find(s => s.value == this.$store.state.activeCatalogueSortTypeValue);\r\n if (type === undefined) {\r\n return this.sortTypes[2];\r\n } else {\r\n return type;\r\n }\r\n }\r\n private set activeSortType(sortType: CatalogueSortingDto) {\r\n this.$store.commit('setActiveCatalogueSortTypeValue', sortType.value);\r\n }\r\n\r\n private get dragAreaHeightStyle() {\r\n return this.showFullscreenImport ? 'height: calc(100vh - 128px);min-height:300px' : ''\r\n }\r\n private get dragAreaContentClass() {\r\n return this.showFullscreenImport? 'verticalInDragArea' : ''\r\n }\r\n private get pendingOrders() {\r\n return this.$store.state.pendingOrders.filter((o: PendingOrderDto) => o.isInCart == false);\r\n }\r\n private get hasMultipleUsers() {\r\n // Greater than 2 because of the \"Alle Benutzer\" user that is always created\r\n return this.users !== undefined && this.users.length > 2;\r\n }\r\n private get users() {\r\n return this.$store.state.users;\r\n }\r\n\r\n private async initialLoading() {\r\n this.$store.commit('setLoading', true);\r\n this.initialLoadIsRunning = true;\r\n await this.getImportingArticlesOfCustomer();\r\n if (this.$store.state.catalogueArticles.length <= 0) {\r\n await this.getArticlesOfCustomer(true);\r\n }\r\n this.$store.commit('setLoading', false);\r\n this.initialLoadIsRunning = false;\r\n if (this.$store.state.customer.user.canOrderDirectly) {\r\n this.loadPendingOrders();\r\n }\r\n }\r\n\r\n private async loadPendingOrders() {\r\n try {\r\n const response = await httpClient().get(`order/GetPendingOrders`);\r\n this.$store.commit('setPendingOrders', response.data);\r\n } catch(e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private async getArticlesOfCustomer(reload: boolean) {\r\n try {\r\n this.articleLoading = true;\r\n this.$store.commit('setLoading', true);\r\n // Only send searchTerm if it has more than 2 characters. Otherwise loading won't work.\r\n var relevantSearchTerm = this.searchTerm.length >= 3 ? this.searchTerm : '';\r\n var from = this.catalogueArticleIds.length;\r\n if (reload) {\r\n from = 0;\r\n }\r\n const response = await httpClient().get(`article/getArticlesOfCustomer?` +\r\n `searchTerm=${encodeURI(relevantSearchTerm)}` +\r\n `&from=${from}` +\r\n `&to=${from + this.loadBatchSize}` +\r\n `&sorting=${this.activeSortType.value}` +\r\n `&userId=${this.selectedUserId === '-1' ? '' : this.selectedUserId}`);\r\n response.data.forEach((article: any) => {\r\n article.calculatingMessage = '';\r\n });\r\n this.$store.commit('addOrUpdateArticles', response.data);\r\n if (!reload && from > 0) {\r\n this.$store.commit('setCatalogueArticles', {\r\n articles: response.data,\r\n reload: false,\r\n });\r\n } else {\r\n this.$store.commit('setCatalogueArticles', {\r\n articles: response.data,\r\n reload: true,\r\n });\r\n }\r\n if (response.data.length === this.loadBatchSize) {\r\n // wenn alle geladen wurden, gibt es wahrscheinlich noch mehr\r\n this.hasMoreToLoad = true;\r\n } else {\r\n this.hasMoreToLoad = false;\r\n }\r\n } catch(err) {\r\n console.log(`Fehler beim Laden der Artikel: ${err}`);\r\n } finally {\r\n this.articleLoading = false;\r\n if (!this.initialLoadIsRunning) {\r\n this.$store.commit('setLoading', false);\r\n }\r\n }\r\n }\r\n\r\n private async getImportingArticlesOfCustomer() {\r\n try {\r\n const response = await httpClient().get(`article/getImportingArticlesOfCustomer`);\r\n response.data.forEach((article: any) => article.calculatingMessage = '');\r\n this.$store.commit('setImportingArticles', response.data);\r\n } catch(err) {\r\n console.log(`Fehler beim Laden der Artikel mit Import Status: ${err}`);\r\n }\r\n }\r\n\r\n @debounce(700, { leading: false })\r\n @Watch('searchTerm')\r\n private reloadOnSearchTermChange() {\r\n if (!this.articleLoading && !this.initialLoadIsRunning\r\n && this.lastSearchTerm !== this.searchTerm\r\n && (this.searchTerm.length >= 3 || this.searchTerm.length === 0)) { \r\n this.lastSearchTerm = this.searchTerm; \r\n this.getArticlesOfCustomer(true);\r\n }\r\n }\r\n @Watch('activeSortType')\r\n private reloadOnSortingChange() {\r\n if (!this.articleLoading && !this.initialLoadIsRunning) {\r\n this.getArticlesOfCustomer(true);\r\n }\r\n }\r\n @Watch('selectedUserId')\r\n private reloadOnUserChange() {\r\n if (!this.articleLoading && !this.initialLoadIsRunning) {\r\n this.getArticlesOfCustomer(true);\r\n }\r\n }\r\n\r\n private checkCatalogueBottom () {\r\n let bottomOfWindow = (window.innerHeight + window.pageYOffset) >= document.body.offsetHeight - 2\r\n if (bottomOfWindow && this.hasMoreToLoad && !this.isLoading) {\r\n this.getArticlesOfCustomer(false);\r\n }\r\n var element = document.getElementById('artikelListe') as any;\r\n var elementPosition = element.getBoundingClientRect();\r\n if (elementPosition.y - 144 < 0) {\r\n this.floatingFilter = true;\r\n } else {\r\n this.floatingFilter = false;\r\n }\r\n }\r\n\r\n private manuallyLoadMoreArticles() {\r\n if (this.hasMoreToLoad && !this.isLoading) {\r\n this.getArticlesOfCustomer(false);\r\n }\r\n }\r\n\r\n private get fileSizeLimits() {\r\n return this.$store.state.fileSizeLimits;\r\n }\r\n\r\n dragover(event: any) {\r\n event.preventDefault();\r\n this.dragging = true;\r\n (this.$refs.upload as any).parentNode.parentNode.className = 'dragArea dragging';\r\n }\r\n dragleave(event: any) {\r\n this.dragging = false;\r\n (this.$refs.upload as any).parentNode.parentNode.className = 'dragArea';\r\n }\r\n drop(event: any) {\r\n event.preventDefault();\r\n this.uploadFiles(null, event.dataTransfer.files);\r\n (this.$refs.upload as any).parentNode.parentNode.className = 'dragArea';\r\n }\r\n\r\n private async uploadFiles(event: any, files: FileList) {\r\n console.log('uploading files...'); \r\n this.errorUploadFiles = [];\r\n this.warningUploadFiles = [];\r\n this.invalidFormatUploadFiles = [];\r\n if (this.validFileFormats.length === 0) {\r\n // Load valid file formats if not present yet\r\n await this.loadValidFileFormats();\r\n } \r\n if (files.length === 0) {\r\n return;\r\n }\r\n if (files.length > 10) {\r\n this.$store.dispatch('setSnackbarText', 'Sie können maximal 10 CAD Modelle gleichzeitig hochladen.');\r\n return;\r\n }\r\n for (const file of files) {\r\n // Skip invalid file extensions\r\n let extension = path.extname(file.name).slice(1).toLowerCase();\r\n if (!this.validFileFormats.map((format:string) => format.toLocaleLowerCase()).includes(extension)) {\r\n this.invalidFormatUploadFiles.push(file.name);\r\n continue;\r\n }\r\n // Skip very large files or warn for large files\r\n if (this.fileExceedesLimit(file.name, file.size, 'error')) {\r\n this.errorUploadFiles.push(file.name);\r\n continue;\r\n } else if (this.fileExceedesLimit(file.name, file.size, 'warning')) {\r\n this.warningUploadFiles.push(file.name);\r\n }\r\n const artikel = {\r\n articleId: this.$store.getters.temporaryImportId,\r\n state: 4,\r\n uploadProgress: 0,\r\n customerArticleId: '',\r\n customerArticleName: '',\r\n thickness: 0,\r\n calculatingMessage: '',\r\n materialId: 0,\r\n calculating: true,\r\n deleteOverlay: false,\r\n deleting: false,\r\n };\r\n this.$store.commit('nextTemporaryImportId');\r\n\r\n this.$store.commit('addImportingArticle', artikel);\r\n\r\n // Sicherstellen, dass DOM gerendet ist, bevor die Hintergrundprozesse starten\r\n Vue.nextTick(() => {\r\n\r\n const data = new FormData();\r\n data.append('file', file);\r\n const config = {\r\n header : {\r\n 'Content-Type' : 'multipart/form-data',\r\n },\r\n onUploadProgress: (progressEvent: any) => {\r\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\r\n artikel.uploadProgress = percentCompleted;\r\n },\r\n };\r\n\r\n httpClient().post(\r\n 'Article/UploadCadModel',\r\n data,\r\n config,\r\n ).then((response: any) => {\r\n response.data.calculatingMessage = '';\r\n this.$store.commit('updateImportingArticle', {\r\n articleToReplace: artikel,\r\n newArticle: response.data, \r\n });\r\n }).catch((error: any) => {\r\n console.log('Fehler beim Upload');\r\n });\r\n\r\n });\r\n }\r\n if (this.errorUploadFiles.length > 0 || this.warningUploadFiles.length > 0 || this.invalidFormatUploadFiles.length > 0) {\r\n this.uploadWarningDialog = true;\r\n }\r\n if (event != null) {\r\n event.target.value = '';\r\n }\r\n }\r\n\r\n private fileExceedesLimit(name: string, size: number, limitType: string) {\r\n // If the file is bigger than the highest error limit, return true directly regardless of file extension.\r\n if (size > this.fileSizeLimits.filter((f: FileSizeLimit) => f.extension === ImportFileExtension.Step)[0].errorLimit) {\r\n return true;\r\n }\r\n let re = /(?:\\.([^.]+))?$/;\r\n if (name === null) {\r\n return false;\r\n }\r\n let extensionGroup = re.exec(name);\r\n let extension = '';\r\n if (extensionGroup === null || extensionGroup.length < 2) {\r\n return false;\r\n } else {\r\n extension = extensionGroup[1];\r\n }\r\n let result = false\r\n this.fileSizeLimits.forEach((f: FileSizeLimit) => {\r\n if (f.extensions.some((e: string) => e === extension.toLowerCase())) {\r\n if (limitType === 'error') {\r\n if (size > f.errorLimit) {\r\n result = true;\r\n }\r\n } else if (limitType === 'warning') {\r\n if (size > f.warningLimit) {\r\n result = true;\r\n }\r\n }\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n private get user() {\r\n return this.$store.state.customer.user;\r\n }\r\n\r\n private removePendingOrder(orderId: number) {\r\n this.$store.commit('removePendingOrder', orderId);\r\n }\r\n\r\n private async loadValidFileFormats() {\r\n let result = await httpClient().get('Article/GetValidArticleFileFormats');\r\n this.validFileFormats = result.data;\r\n }\r\n\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalogue.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalogue.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Catalogue.vue?vue&type=template&id=b3676b94&scoped=true\"\nimport script from \"./Catalogue.vue?vue&type=script&lang=ts\"\nexport * from \"./Catalogue.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Catalogue.vue?vue&type=style&index=0&id=b3676b94&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b3676b94\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pa-3\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('router-link',{attrs:{\"to\":\"/Catalogue\",\"custom\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ navigate }){return [_c('v-btn',{staticClass:\"blexon-article-button\",on:{\"click\":navigate}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" Zurück \")],1)]}}])}),(_vm.assembly != null)?_c('h2',{staticClass:\"pl-3\"},[_vm._v(\" Baugruppe: \"+_vm._s(_vm.assembly.articleId)+\" | '\"+_vm._s(_vm.assembly.customerArticleName)+\"' \")]):_vm._e()],1),_c('v-row',[_c('multi-edit')],1),_c('v-row',{attrs:{\"wrap\":\"\"}},_vm._l((_vm.subarticles),function(article){return _c('v-col',{key:article.articleId,attrs:{\"cols\":\"12\",\"xs\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\",\"xl\":\"3\"}},[_c('article-tile',{attrs:{\"articleId\":article.articleId,\"multiSelectionMode\":false}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\r\nimport ArticleTile from './ArticleTile.vue';\r\nimport MultiEdit from './Multiedit.vue';\r\nimport { CustomerArticleDto } from '@/dtos/customerArticleDto';\r\n@Component({\r\n components: {\r\n ArticleTile,\r\n MultiEdit,\r\n }\r\n})\r\nexport default class Assembly extends Vue {\r\n @Prop()\r\n private assemblyId!: number;\r\n\r\n private async mounted() {\r\n this.$store.commit('clearSelectedArticleIds');\r\n this.$store.dispatch('loadMissingArticles', [this.assemblyId])\r\n .then(() => \r\n this.$store.dispatch('loadMissingArticles', this.assembly.subArticleIds)\r\n );\r\n }\r\n\r\n /**\r\n * Gets the article that represents the whole assembly\r\n */\r\n private get assembly() : CustomerArticleDto {\r\n return this.$store.state.articles.find((a:CustomerArticleDto) => a.articleId == this.assemblyId)\r\n }\r\n\r\n private get subarticles() : CustomerArticleDto[] {\r\n return this.$store.state.articles.filter((a:CustomerArticleDto) => a.parentArticleId == this.assemblyId)\r\n }\r\n}\r\n","/* State of orders for display or order trackings */\r\nexport enum OrderTrackingState {\r\n Unknown = 0,\r\n Ordered = 1,\r\n Delivered = 2,\r\n Paid = 3,\r\n InProduction = 4,\r\n Produced = 5,\r\n Fakturiert = 6,\r\n Cancelled = 7,\r\n CreditOverdrawn = 8,\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Assembly.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Assembly.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Assembly.vue?vue&type=template&id=6b4a6ff6&scoped=true\"\nimport script from \"./Assembly.vue?vue&type=script&lang=ts\"\nexport * from \"./Assembly.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b4a6ff6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-container',[(_vm.isLoading && _vm.orders.length == 0)?_c('div',{staticClass:\"d-flex justify-center mt-5\"},[_c('h2',{staticClass:\"font-weight-light\"},[_vm._v(\"Bestellungen werden geladen...\")])]):(_vm.orders.length == 0)?_c('div',{staticClass:\"d-flex justify-center mt-5\"},[_c('h2',{staticClass:\"font-weight-light\"},[_vm._v(\"Noch keine Bestellungen vorhanden\")])]):_c('v-timeline',{attrs:{\"align-start\":\"\",\"dense\":_vm.$vuetify.breakpoint.smAndDown}},_vm._l((_vm.orders),function(order){return _c('v-timeline-item',{key:order.orderId,attrs:{\"icon\":_vm.getIcon(order.state),\"color\":\"accent\",\"fill-dot\":\"\"}},[(order.state === 1)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\" Bestellt\"),_c('br'),_c('small',[_vm._v(\"Lieferdatum (ab Werk): \"+_vm._s(_vm._f(\"formatDate\")(order.dueDate)))])]):(order.state === 2)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\"Ausgeliefert\")]):(order.state === 3)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\"Abgeschlossen\")]):(order.state === 4)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\" In Produktion\"),_c('br'),_c('small',[_vm._v(\"Lieferdatum (ab Werk): \"+_vm._s(_vm._f(\"formatDate\")(order.dueDate)))])]):(order.state === 5)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\" In Spedition\"),_c('br'),_c('small',[_vm._v(\"Lieferdatum (ab Werk): \"+_vm._s(_vm._f(\"formatDate\")(order.dueDate)))])]):(order.state === 6)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\"Rechnung versendet\")]):(order.state === 7)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\"Storniert\")]):(order.state === 8)?_c('span',{attrs:{\"slot\":\"opposite\"},slot:\"opposite\"},[_vm._v(\"Kreditlimit überschritten\")]):_vm._e(),_c('v-card',{attrs:{\"color\":\"accent\"}},[_c('v-card-title',{staticClass:\"title pa-2\"},[_vm._v(_vm._s(order.translatedOrderSummary))]),_c('div',{staticClass:\"white pa-2\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.canChangeKommissionsnummer(order))?_c('v-text-field',{attrs:{\"disabled\":_vm.hasBusyCancellationRequest(order.orderId),\"placeholder\":\"Hier können Sie Ihre Auftragsnummer eintragen\",\"label\":order.kommission != null && order.kommission != '' ? 'Auftragsnummer' : '',\"rules\":_vm.optionalStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":() => {\n order.kommission = order.kommission.trim();\n _vm.updateKommissionsnummer(order);\n }},model:{value:(order.kommission),callback:function ($$v) {_vm.$set(order, \"kommission\", $$v)},expression:\"order.kommission\"}}):(order.kommission != null && order.kommission != '')?_c('small',[_vm._v(\" Ihre Auftragsnummer: \"+_vm._s(order.kommission)+\" \")]):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('small',[_vm._v(\" Blexonauftrag: \"+_vm._s(order.orderId)+\" \")]),_c('br'),_c('small',[_vm._v(\" Transporteur: \"+_vm._s(order.translatedZustellungArt)+\" \")]),_c('br'),(order.trackingcode !== null && order.trackingcode !== undefined && order.trackingcode !== '')?_c('small',[_vm._v(\" Sendungsverfolgung: \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":order.translatedTrackingLink}},[_vm._v(_vm._s(order.trackingcode))])]):_vm._e()])],1),(order.state !== 7)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.isLoadingOrderPdf)?_c('v-progress-circular',{staticClass:\"ml-2\",attrs:{\"indeterminate\":\"\",\"size\":\"15\"}}):_c('span',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"color\":\"accent\",\"disabled\":_vm.hasBusyCancellationRequest(order.orderId),\"title\":\"Auftragsbestätigung als Pdf Dokument runterladen\"},on:{\"click\":function($event){return _vm.getOrderConfirmationPdf(order.orderId)}}},[_vm._v(\" mdi-printer \")]),_c('small',[_vm._v(\"Auftragsbestätigung\")])],1)],1)],1):_vm._e(),(order.state === 6 || order.state === 3)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.isLoadingPdf)?_c('v-progress-circular',{staticClass:\"ml-2\",attrs:{\"indeterminate\":\"\",\"size\":\"15\"}}):_c('span',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"color\":\"accent\",\"disabled\":_vm.hasBusyCancellationRequest(order.orderId),\"title\":\"Rechnung als Pdf Dokument runterladen\"},on:{\"click\":function($event){return _vm.getInvoicePdf(order.orderId)}}},[_vm._v(\" mdi-printer \")]),_c('small',[_vm._v(\"Rechnung\")])],1)],1)],1):_vm._e(),(order.state != 7)?_c('v-row',{staticClass:\"ma-0 mt-2\",attrs:{\"wrap\":\"\"}},[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"disabled\":_vm.hasBusyCancellationRequest(order.orderId),\"small\":\"\"},on:{\"click\":function($event){_vm.orderId = order.orderId}}},[_vm._v(\" Anzeigen \")]),((order.state === 2 \n || order.state === 3 \n || order.state === 6)\n && !_vm.hasBusyCancellationRequest(order.orderId))?_c('ticket-component',{attrs:{\"orderId\":order.orderId,\"ticketState\":_vm.getTicketStateFromOrderId(order),\"orderState\":order.state,\"orderDate\":order.dueDate,\"loadingTicketStates\":_vm.loadingTicketStates},on:{\"createOrEdit\":function($event){return _vm.navigateToTicket($event)}}}):(order.state === 1 || order.state === 4 || order.state === 8)?_c('v-btn',{attrs:{\"small\":\"\",\"disabled\":_vm.isLoadingCancellation \n || _vm.hasWaitingCancellationRequest(order.orderId) \n || _vm.hasClosedCancellationRequest(order.orderId)\n || _vm.hasBusyCancellationRequest(order.orderId)},on:{\"click\":function($event){return _vm.cancellationButton(order.orderId)}}},[(_vm.isLoadingCancellation)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"15\"}}):_vm._e(),(_vm.hasWaitingCancellationRequest(order.orderId))?_c('span',[_vm._v(\"Stornierung in Abklärung\")]):(_vm.hasOpenCancellationRequest(order.orderId))?_c('span',[_vm._v(\"Stornierung anzeigen\")]):(_vm.hasClosedCancellationRequest(order.orderId))?_c('span',[_vm._v(\"Stornierung abgeschlossen\")]):(_vm.hasBusyCancellationRequest(order.orderId))?_c('span',[_vm._v(\"Stornierung wird verarbeitet\")]):_c('span',[_vm._v(\"Stornieren\")])],1):_vm._e()],1):_vm._e(),(order.state != 7 && order.state != 8 && (_vm.canChangeDeliveryAddress(order) || _vm.canChangeInvoiceAddress(order)))?_c('v-row',{staticClass:\"ma-0 mt-2\"},[(_vm.canChangeDeliveryAddress(order))?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.editAddress('delivery', order)}}},[_vm._v(\" Lieferadresse ändern \")]):_vm._e(),(_vm.canChangeInvoiceAddress(order))?_c('v-btn',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.editAddress('invoice', order)}}},[_vm._v(\" Rechnungsadresse ändern \")]):_vm._e()],1):_vm._e()],1)],1)],1)}),1),(_vm.hasMoreToLoad)?_c('v-row',[_c('v-col',{staticClass:\"text-center pa-0\",attrs:{\"cols\":\"12\"}},[(!_vm.isLoading)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Lädt weitere Bestellungen.\"},on:{\"click\":function($event){return _vm.manuallyLoadMoreArticles()}}},[_vm._v(\" Mehr laden \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-chevron-down\")])],1):_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1)],1):_vm._e()],1),(_vm.orderId != 0)?_c('v-dialog',{attrs:{\"width\":\"90%\",\"max-width\":\"1000px\",\"persistent\":\"\"},model:{value:(_vm.showOrderDetail),callback:function ($$v) {_vm.showOrderDetail=$$v},expression:\"showOrderDetail\"}},[_c('order-detail',{attrs:{\"orderId\":_vm.orderId},on:{\"close\":function($event){_vm.orderId = 0}}})],1):_vm._e(),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.showCancellationConfirmationDialog),callback:function ($$v) {_vm.showCancellationConfirmationDialog=$$v},expression:\"showCancellationConfirmationDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Stornierung bestätigen\")]),_c('v-card-text',[_c('p',[_vm._v(\" Die Bearbeitung für diesen Auftrag wurde noch nicht gestartet.\"),_c('br'),_vm._v(\" Eine Stornierung ist in diesem Fall kostenlos möglich. Dabei kann jedoch nur der ganze Auftrag storniert werden. Bei Bedarf muss die Bestellung neu aufgegeben werden. \")])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showCancellationConfirmationDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":_vm.isLoadingCancellation},on:{\"click\":function($event){return _vm.cancelOrder()}}},[(_vm.isLoadingCancellation)?_c('v-progress-circular',{attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Stornieren \")],1)],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"500\"},model:{value:(_vm.editAddressDialog),callback:function ($$v) {_vm.editAddressDialog=$$v},expression:\"editAddressDialog\"}},[_c('change-address',{attrs:{\"address\":_vm.currentEditAddress,\"addressType\":_vm.currentEditAddressType,\"newAddress\":false,\"orderId\":_vm.currentEditAddressOrderId},on:{\"closedDialog\":function($event){_vm.editAddressDialog = false}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.loadingTicketStates && !_vm.orderIsTooOldForTicketCreation)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"title\":\"Öffnet den Dialog zum Ausfüllen einer Beanstandung zu dieser Bestellung.\"},on:{\"click\":function($event){return _vm.createOrEditTicket()}}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport { TicketState } from '@/dtos/ticket/ticketState';\r\nimport { OrderTrackingState } from '@/dtos/orderTrackingState';\r\nimport { TicketStateDto } from '@/dtos/ticket/ticketStateDto';\r\n@Component({\r\n\tcomponents: {}\r\n})\r\nexport default class TicketComponent extends Vue {\r\n\t@Prop()\r\n\tprivate orderId!: number;\r\n\t@Prop()\r\n\tprivate ticketState!: TicketStateDto;\r\n\t@Prop()\r\n\tprivate orderState!: OrderTrackingState;\r\n\t@Prop()\r\n\tprivate orderDate!: Date;\r\n\t@Prop()\r\n\tprivate loadingTicketStates!: boolean;\r\n\t\r\n\tprivate get isAdmin() {\r\n\t\treturn this.$store.state.customer.user.isAdmin;\r\n\t}\r\n\r\n\tprivate get orderIsTooOldForTicketCreation() {\r\n\t\tif (this.isAdmin) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tvar refDate = new Date(this.orderDate);\r\n\t\tlet dateLimit = new Date();\r\n\t\tif (refDate === undefined || !(refDate instanceof Date)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tdateLimit.setDate(dateLimit.getDate() - 60);\r\n\t\treturn refDate < dateLimit;\r\n\t}\r\n\r\n\tprivate createOrEditTicket() {\r\n\t\tthis.$emit('createOrEdit', this.orderId);\r\n\t}\r\n\r\n\tprivate get buttonText() {\r\n\t\tif (this.ticketState == undefined) {\r\n\t\t\treturn 'Beanstandung erfassen';\r\n\t\t}\r\n\t\treturn 'Beanstandung anzeigen';\r\n\t}\r\n\r\n\tprivate get isOrderDelivered() {\r\n\t\treturn (\r\n\t\t\t!this.loadingTicketStates &&\r\n\t\t\t(this.orderState === OrderTrackingState.Delivered ||\r\n\t\t\t\tthis.orderState === OrderTrackingState.Paid ||\r\n\t\t\t\tthis.orderState === OrderTrackingState.Fakturiert)\r\n\t\t);\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketComponent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TicketComponent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TicketComponent.vue?vue&type=template&id=1591736c\"\nimport script from \"./TicketComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./TicketComponent.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"fab\":\"\",\"fixed\":\"\",\"top\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),_c('v-card-title',[_c('h2',{staticClass:\"text-h5\"},[_vm._v(\"Bestätigung zu Auftrag \"+_vm._s(_vm.orderId))])]),_c('v-card-text',[(_vm.loading)?_c('v-progress-circular',{attrs:{\"color\":\"accent\",\"indeterminate\":\"\",\"size\":\"30\"}}):(_vm.order)?_c('div',[_c('p',[_c('strong',[_vm._v(\"Auftragseingang:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatDateTime\")(_vm.order.orderDate))),_c('br'),(_vm.order.kommission == null || _vm.order.kommission == '')?_c('span',[_c('strong',[_vm._v(\"Ihre Auftragsnummer:\")]),_vm._v(\" keine Angabe (Sie können diese im Bestellarchiv anpassen)\"),_c('br')]):_c('span',[_c('strong',[_vm._v(\"Ihre Auftragsnummer:\")]),_vm._v(\" \"+_vm._s(_vm.order.kommission)),_c('br')]),(!_vm.order.rampenabholung)?_c('span',[_c('strong',[_vm._v(\"Voraussichtlicher Liefertermin (ab Werk):\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(_vm.order.dueDate))+\" \"+_vm._s(_vm.order.printPriceModelInfo ? _vm.priceModelText : '')),_c('br'),_vm._v(\" Nach Fertigstellung des Auftrags erhalten Sie eine E-Mail mit einem Link zur Sendungsverfolgung. \")]):_c('span',[_c('strong',[_vm._v(\"Voraussichtliche Fertigstellung:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"formatDateTime\")(_vm.order.dueDate))+\" \"+_vm._s(_vm.order.printPriceModelInfo ? _vm.priceModelText : '')),_c('br'),_c('strong',[_vm._v(\"Wichtig: \")]),_vm._v(\"Sie erhalten eine E-Mail sobald Ihr Auftrag bereit zur Abholung ist. Die Abholung ist erst möglich, nachdem Sie diese E-Mail erhalten haben. \")]),_c('v-row',[_c('v-col',[_c('strong',[_vm._v(\"Rechnungsadresse:\"),_c('br')]),_vm._v(\" \"+_vm._s(_vm.order.invoiceAddress.companyName)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.invoiceAddress.givenName)+\" \"+_vm._s(_vm.order.invoiceAddress.surname)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.invoiceAddress.street)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.invoiceAddress.zip)+\" \"+_vm._s(_vm.order.invoiceAddress.town)+\" (\"+_vm._s(_vm.order.invoiceAddress.country)+\")\"),_c('br')]),_c('v-col',[_c('strong',[_vm._v(_vm._s(_vm.order.rampenabholung ? 'Abholadresse' : 'Lieferadresse')+\":\"),_c('br')]),_vm._v(\" \"+_vm._s(_vm.order.rampenabholung ? _vm.fertiger.companyName : _vm.order.deliveryAddress.companyName)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.rampenabholung ? _vm.fertiger.name : `${_vm.order.deliveryAddress.givenName} ${_vm.order.deliveryAddress.surname}`)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.rampenabholung ? _vm.fertiger.steet : _vm.order.deliveryAddress.street)),_c('br'),_vm._v(\" \"+_vm._s(_vm.order.rampenabholung ? _vm.fertiger.zipAndTown : `${_vm.order.deliveryAddress.zip} ${_vm.order.deliveryAddress.town} (${ _vm.order.deliveryAddress.country})`)),_c('br')])],1)],1),_c('div',{staticStyle:{\"overflow\":\"scroll\"}},[_c('table',{staticClass:\"positionsTable\"},[_c('tr',[_c('th',[_vm._v(\"Position\")]),_c('th',[_vm._v(\"Menge\")]),_c('th',[_vm._v(\"Vorschau\")]),_c('th',[_vm._v(\"Beschreibung\")]),_c('th',[_vm._v(\"Preis/Stk\")]),_c('th',[_vm._v(\"Gesamtpreis (\"+_vm._s(_vm.order.currency)+\")\")])]),_vm._l((_vm.order.positions),function(position){return _c('tr',{key:position.position},[_c('td',[_vm._v(\" \"+_vm._s(position.position)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(position.quantity)+\" \")]),_c('td',[(position.materialname != null && position.materialname != '')?_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"90px\",\"height\":\"90px\",\"src\":_vm.getThumbnailUrl(position.blexonArticleId)}}):_vm._e()],1),_c('td',[_vm._v(\" \"+_vm._s(position.blexonArticleId)),_c('br'),(position.customerArticleId != null && position.customerArticleId != '')?_c('span',[_vm._v(_vm._s(position.customerArticleId)),_c('br')]):_vm._e(),_vm._v(\" \"+_vm._s(position.customerArticleName)+\" \"),(position.materialname != null && position.materialname != '')?_c('span',[_c('br'),_vm._v(_vm._s(position.materialname))]):_vm._e(),(position.materialname != null && position.materialname != '')?_c('span',[_c('br'),_vm._v(_vm._s(_vm.getEntgratartString(position.entgratart))+\" \")]):_vm._e(),(position.gravur)?_c('span',[_c('br'),_vm._v(\" Gravur \")]):_vm._e(),(position.features != null && position.features.length > 0)?_c('span',[_c('br'),_vm._l((position.features),function(feature,index){return _c('span',{key:index},[_vm._v(\" \"+_vm._s(feature.count)+\" x \"+_vm._s(feature.name)),(index < position.features.length - 1)?_c('span',[_c('br')]):_vm._e()])})],2):_vm._e(),(position.weldlinesAsText != '')?_c('span',[_c('br'),_vm._v(\" \"+_vm._s(position.weldlinesAsText)+\" \")]):_vm._e(),(position.powderCoating)?_c('span',[_c('br'),_c('span',{style:('display:inline-block; height: 10px; width: 10px; background-color:' + position.powderCoatingHexCode)}),_vm._v(\"  RAL \"+_vm._s(position.powderCoatingRalCode)+\" |  \"+_vm._s(position.powderCoatingTreatmentFace)+\" |  \"+_vm._s(position.powderCoatingStructure)+\" |  \"+_vm._s(position.powderCoatingFinish)+\" \")]):_vm._e()]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(position.pricePerUnit))+\" \")]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(position.pricePerUnit * position.quantity))+\" \")])])}),_c('tr',[_c('td'),_c('td'),_c('td'),_c('td',[_vm._v(\" MwSt (\"+_vm._s(_vm.order.mwStSatz)+\"%) \")]),_c('td'),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.getMwSt()))+\" \")])]),_c('tr',{staticClass:\"total\"},[_c('td'),_c('td'),_c('td'),_c('td',[_c('strong',[_vm._v(\"Total\")])]),_c('td'),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_c('strong',[_vm._v(_vm._s(_vm._f(\"round2Decimal\")(_vm.getTotal())))])])])],2)])]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport TicketComponent from '@/views/OrderHistory/TicketComponent.vue';\r\nimport { PriceModel } from '@/dtos/priceModel';\r\nimport { Entgratart } from '@/dtos/entgratart';\r\nimport { getEntgratartText } from '@/dtos/entgratart';\r\n\r\n@Component({\r\n components: {\r\n TicketComponent\r\n }\r\n})\r\nexport default class OrderDetail extends Vue {\r\n @Prop()\r\n private orderId!: number\r\n private order: any = null;\r\n private loading: boolean = false;\r\n private fertiger: any = {\r\n companyName: '',\r\n name: '',\r\n street: '',\r\n zipAndTown: '',\r\n }\r\n private mounted() {\r\n this.loadOrderConfirmation();\r\n }\r\n\r\n private getEntgratartString(entgratart: Entgratart) {\r\n let text = '';\r\n if (entgratart != Entgratart.None) {\r\n text += 'Entgraten: ';\r\n }\r\n text += getEntgratartText(entgratart);\r\n return text;\r\n }\r\n\r\n private async loadOrderConfirmation() {\r\n try {\r\n this.loading = true;\r\n var response = await httpClient().get(`order/getOrderConfirmation?orderId=${this.orderId}`);\r\n this.order = response.data;\r\n if (this.order.rampenabholung) {\r\n var response = await httpClient().get(`order/getFertiger?fertigerId=${this.order.fertigerId}`);\r\n this.fertiger.companyName = response.data.companyname;\r\n this.fertiger.name = `Abholung`;\r\n this.fertiger.steet = response.data.street\r\n this.fertiger.zipAndTown = `${response.data.zip} ${response.data.town}`\r\n }\r\n } catch(e) {\r\n console.error(e);\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n private get priceModelText(): string {\r\n let text = '';\r\n switch (this.order.priceModel) {\r\n case PriceModel.Standard:\r\n text = \"(Schnelle Lieferung)\";\r\n break;\r\n case PriceModel.Slow:\r\n text = \"(Preisoptimale Lieferung)\";\r\n break;\r\n case PriceModel.Express:\r\n text = \"(Express Lieferung)\";\r\n break;\r\n default:\r\n break;\r\n }\r\n return text;\r\n }\r\n\r\n private getMwSt() {\r\n var total = 0;\r\n for (const position of this.order.positions) {\r\n total += position.pricePerUnit * position.quantity\r\n }\r\n var mwst = Math.round(total * this.order.mwStSatz) / 100;\r\n return mwst;\r\n }\r\n\r\n private getTotal() {\r\n var total = 0;\r\n for (const position of this.order.positions) {\r\n total += position.pricePerUnit * position.quantity\r\n }\r\n return total + this.getMwSt();\r\n }\r\n private getThumbnailUrl(articleId: number) {\r\n return this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n }\r\n}\r\n\r\n","export enum ErpAddressType {\r\n Delivery = 0,\r\n Invoice = 1,\r\n}","export enum AddressType {\r\n CustomerPersonal = 0,\r\n CustomerInvoice = 1,\r\n CustomerDelivery = 2,\r\n OrderInvoice = 3,\r\n\tOrderDelivery = 4,\r\n CompletedOrderDelivery = 5,\r\n CompletedOrderInvoice = 6,\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderDetail.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderDetail.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OrderDetail.vue?vue&type=template&id=b2d81a16&scoped=true\"\nimport script from \"./OrderDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./OrderDetail.vue?vue&type=script&lang=ts\"\nimport style0 from \"./OrderDetail.vue?vue&type=style&index=0&id=b2d81a16&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b2d81a16\",\n null\n \n)\n\nexport default component.exports","import { ErpAddressType } from './erpAddressType';\r\n\r\nexport class AddressDto {\r\n public id: number = 0;\r\n public givenName: string = '';\r\n public surname: string = '';\r\n public companyName: string = '';\r\n public street: string = '';\r\n public zip: string = '';\r\n public town: string = '';\r\n public country: string = '';\r\n public phone: string = '';\r\n public eMail: string = '';\r\n public customerId: number = 0;\r\n public isDefault: boolean = false;\r\n public type: ErpAddressType = ErpAddressType.Delivery;\r\n \r\n // UI only properties\r\n public isBilledDigitally: boolean = false;\r\n\r\n public get isValid() : boolean {\r\n let isValid = true;\r\n if (this.type == ErpAddressType.Delivery \r\n && ((!this.givenName || this.givenName.trim().length === 0)\r\n || (!this.phone || this.phone.trim().length === 0))\r\n ) {\r\n isValid = false;\r\n }\r\n if ((!this.surname || this.surname.trim().length === 0)\r\n || (!this.street || this.street.trim().length === 0)\r\n || (!this.zip || this.zip.trim().length === 0)\r\n || (!this.town || this.town.trim().length === 0)\r\n || (!this.country || this.country.trim().length === 0)\r\n ) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-card',[(_vm.newAddress)?_c('v-card-title',[_vm._v(\" Neue Adresse erstellen \")]):_c('v-card-title',[_vm._v(\" Adresse ändern \")]),_c('v-card-text',[(_vm.address.type == _vm.invoiceType)?_c('v-text-field',{attrs:{\"label\":\"Vorname\",\"rules\":_vm.addressOptionalStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.givenName = _vm.address.givenName.trim();}},model:{value:(_vm.address.givenName),callback:function ($$v) {_vm.$set(_vm.address, \"givenName\", $$v)},expression:\"address.givenName\"}}):_c('v-text-field',{attrs:{\"label\":\"Vorname\",\"rules\":_vm.addressRequiredStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.givenName = _vm.address.givenName.trim();}},model:{value:(_vm.address.givenName),callback:function ($$v) {_vm.$set(_vm.address, \"givenName\", $$v)},expression:\"address.givenName\"}}),_c('v-text-field',{attrs:{\"label\":\"Nachname\",\"rules\":_vm.addressRequiredStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.surname = _vm.address.surname.trim();}},model:{value:(_vm.address.surname),callback:function ($$v) {_vm.$set(_vm.address, \"surname\", $$v)},expression:\"address.surname\"}}),_c('v-text-field',{attrs:{\"label\":\"Firma\",\"rules\":_vm.addressOptionalStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.companyName = _vm.address.companyName.trim();}},model:{value:(_vm.address.companyName),callback:function ($$v) {_vm.$set(_vm.address, \"companyName\", $$v)},expression:\"address.companyName\"}}),_c('v-text-field',{attrs:{\"label\":\"Strasse / Nr.\",\"rules\":_vm.addressRequiredStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.street = _vm.address.street.trim();}},model:{value:(_vm.address.street),callback:function ($$v) {_vm.$set(_vm.address, \"street\", $$v)},expression:\"address.street\"}}),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"PLZ\",\"rules\":_vm.correctPlz,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.zip = _vm.address.zip.trim();}},model:{value:(_vm.address.zip),callback:function ($$v) {_vm.$set(_vm.address, \"zip\", $$v)},expression:\"address.zip\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":\"Ort\",\"rules\":_vm.addressRequiredStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.town = _vm.address.town.trim();}},model:{value:(_vm.address.town),callback:function ($$v) {_vm.$set(_vm.address, \"town\", $$v)},expression:\"address.town\"}})],1)],1),_c('v-text-field',{attrs:{\"readonly\":\"\",\"color\":\"accent\",\"filled\":\"\",\"hint\":\"Das Land kann nicht geändert werden. Bitte kontaktieren Sie uns auf info@blexon.com\"},model:{value:(_vm.address.country),callback:function ($$v) {_vm.$set(_vm.address, \"country\", $$v)},expression:\"address.country\"}}),(_vm.address.type == _vm.deliveryType)?_c('v-text-field',{attrs:{\"label\":\"Telefonnummer für Lieferungsavisierung\",\"rules\":_vm.requiredStringMax35Rule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.phone = _vm.address.phone.trim();}},model:{value:(_vm.address.phone),callback:function ($$v) {_vm.$set(_vm.address, \"phone\", $$v)},expression:\"address.phone\"}}):_vm._e(),(_vm.address.type == _vm.invoiceType)?_c('div',[_c('v-text-field',{attrs:{\"label\":\"E-Mail Adresse für Rechnungsversand\",\"rules\":_vm.emailRule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.address.eMail = _vm.address.eMail.trim();}},model:{value:(_vm.address.eMail),callback:function ($$v) {_vm.$set(_vm.address, \"eMail\", $$v)},expression:\"address.eMail\"}}),(_vm.rechnungsversandPerPostMöglich)?_c('v-radio-group',{attrs:{\"hide-details\":\"\",\"disabled\":_vm.addressType == _vm.completedOrderInvoiceType || _vm.addressType == _vm.completedOrderDeliveryType},model:{value:(_vm.invoiceVersandart),callback:function ($$v) {_vm.invoiceVersandart=$$v},expression:\"invoiceVersandart\"}},[_c('v-radio',{attrs:{\"label\":\"Rechnung per E-Mail\",\"value\":\"email\",\"color\":\"accent\"}}),_c('v-radio',{attrs:{\"label\":\"Rechnung per Post\",\"value\":\"post\",\"color\":\"accent\"}})],1):_vm._e(),(_vm.addressType == _vm.completedOrderInvoiceType || _vm.addressType == _vm.completedOrderDeliveryType)?_c('span',{attrs:{\"small\":\"\"}},[_vm._v(\" Die Versandart kann für diese Bestellung nicht mehr verändert werden. \")]):_vm._e()],1):_vm._e()],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"disabled\":_vm.isSaving},on:{\"click\":function($event){return _vm.closeDialog(false)}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.isValid || _vm.isSaving,\"title\":\"Speichert die Änderungen.\"},on:{\"click\":function($event){return _vm.saveAddress()}}},[(_vm.isSaving)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Speichern \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport httpClient from '@/store/httpClient';\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport rules from '@/store/rules'\r\nimport { AddressType } from '@/dtos/addressType';\r\nimport { ErpAddressType } from '@/dtos/erpAddressType';\r\n\r\n@Component({})\r\nexport default class ChangeAddress extends Vue {\r\n @Prop()\r\n private address!: AddressDto;\r\n\t@Prop()\r\n\tprivate addressType!: AddressType;\r\n @Prop()\r\n private newAddress!: boolean;\r\n @Prop()\r\n private orderId!: number; // Must be given only if the address of a completed order should be changed\r\n private customerDeliveryType: AddressType = AddressType.CustomerDelivery;\r\n\tprivate customerInvoiceType: AddressType = AddressType.CustomerInvoice;\r\n\tprivate orderDeliveryType: AddressType = AddressType.OrderDelivery;\r\n\tprivate orderInvoiceType: AddressType = AddressType.OrderInvoice;\r\n\tprivate completedOrderInvoiceType: AddressType = AddressType.CompletedOrderInvoice;\r\n\tprivate completedOrderDeliveryType: AddressType = AddressType.CompletedOrderDelivery;\r\n private deliveryType: ErpAddressType = ErpAddressType.Delivery;\r\n\tprivate invoiceType: ErpAddressType = ErpAddressType.Invoice;\r\n private invoiceVersandart: string = 'email';\r\n private isValid: boolean = true;\r\n\tprivate isSaving: boolean = false;\r\n private addressOptionalStringMax35Rule = rules.addressOptionalStringMax35Rule;\r\n private addressRequiredStringMax35Rule = rules.addressRequiredStringMax35Rule;\r\n private requiredStringMax35Rule = rules.requiredStringMax35Rule;\r\n\r\n private mounted() {\r\n\t\tif (this.address.type == ErpAddressType.Invoice) {\r\n\t\t\tthis.invoiceVersandart = this.address.isBilledDigitally ? 'email' : 'post';\r\n\t\t}\r\n if (!this.newAddress) {\r\n (this.$refs.form as any).validate();\r\n }\r\n }\r\n\r\n private correctPlz = [\r\n (v: string) => (\r\n (this.address.country !== 'Deutschland' && this.address.country !== 'Schweiz' && this.address.country !== 'Liechtenstein') ||\r\n (this.address.country === 'Deutschland' && v.length === 5 && parseInt(v) >= 1000 && parseInt(v) <= 99999) ||\r\n ((this.address.country === 'Schweiz' || this.address.country === 'Liechtenstein') && v.length === 4 && parseInt(v) >= 1000 && parseInt(v) <= 9999)) ||\r\n 'Muss eine gültige PLZ sein.'\r\n ];\r\n\r\n private get emailRule() {\r\n if (this.invoiceVersandart === 'email' || !this.rechnungsversandPerPostMöglich) {\r\n return rules.requiredEmailRule;\r\n }\r\n return rules.optionalEmailRule;\r\n }\r\n\r\n @Watch('invoiceVersandart')\r\n private updateVersandart() {\r\n if (this.invoiceVersandart === 'email') {\r\n this.address.isBilledDigitally = true;\r\n this.address.eMail = this.$store.getters.customerDefaultInvoiceAddress.eMail;\r\n } else {\r\n this.address.isBilledDigitally = false;\r\n this.address.eMail = '';\r\n }\r\n (this.$refs.form as any).validate();\r\n }\r\n\r\n private get rechnungsversandPerPostMöglich() {\r\n return this.address.country === 'Schweiz' || this.address.country === 'Liechtenstein'\r\n }\r\n\r\n\tprivate async saveAddress() {\r\n if (this.isValid && !this.isSaving) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isSaving = true;\r\n let response;\r\n switch (this.addressType) {\r\n case AddressType.CustomerDelivery:\r\n response = await httpClient().post('customer/SaveCustomerAddress', this.address);\r\n this.address.id = response.data;\r\n this.$store.commit('addOrUpdateCustomerDeliveryAddress', this.address);\r\n break;\r\n case AddressType.CustomerInvoice:\r\n response = await httpClient().post('customer/SaveCustomerAddress', this.address);\r\n this.address.id = response.data;\r\n this.$store.commit('addOrUpdateCustomerInvoiceAddress', this.address);\r\n break;\r\n case AddressType.OrderDelivery:\r\n this.$store.commit('setOrderDeliveryAddress', this.address);\r\n break;\r\n case AddressType.OrderInvoice:\r\n this.$store.commit('setOrderInvoiceAddress', this.address);\r\n break;\r\n case AddressType.CompletedOrderDelivery:\r\n console.log('here')\r\n\t\t\t\t\t await httpClient().post(`Order/SaveOrderDeliveryAddress?orderId=${this.orderId}`, this.address);\r\n break;\r\n case AddressType.CompletedOrderInvoice:\r\n\t\t\t\t\t await httpClient().post(`Order/SaveOrderInvoiceAddress?orderId=${this.orderId}`, this.address);\r\n break;\r\n default:\r\n throw 'Adresstyp ist ungültig';\r\n }\r\n \tthis.$store.dispatch('setSnackbarText', 'Adresse erfolgreich gespeichert.');\r\n\t\t this.closeDialog(true);\r\n\t\t\t} catch(err) {\r\n console.log('Error while saving address.', err)\r\n \tthis.$store.dispatch('setSnackbarErrorText', 'Adresse konnte nicht gespeichert werden.');\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isSaving = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n private closeDialog(changed: boolean) {\r\n\t\tthis.$emit('closedDialog', {\r\n changed: changed,\r\n address: this.address\r\n });\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeAddress.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeAddress.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ChangeAddress.vue?vue&type=template&id=5d411ac3&scoped=true\"\nimport script from \"./ChangeAddress.vue?vue&type=script&lang=ts\"\nexport * from \"./ChangeAddress.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d411ac3\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport { CustomerOrderDto } from '@/dtos/customerOrderDto';\r\nimport { OrderTrackingState } from '@/dtos/orderTrackingState';\r\nimport { TicketStateDto } from '@/dtos/ticket/ticketStateDto';\r\nimport TicketComponent from '@/views/OrderHistory/TicketComponent.vue';\r\nimport OrderDetail from '@/views/OrderHistory/OrderDetail.vue';\r\nimport rules from '@/store/rules'\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport { AddressType } from '@/dtos/addressType';\r\nimport ChangeAddress from '@/views/Settings/ChangeAddress.vue'\r\n\r\n@Component({\r\n components: {\r\n TicketComponent,\r\n OrderDetail,\r\n ChangeAddress,\r\n }\r\n})\r\nexport default class Orders extends Vue {\r\n private ticketStates: TicketStateDto[] = new Array();\r\n private loadBatchSize: number = 10;\r\n private hasMoreToLoad: boolean = false;\r\n private isLoadingPdf: boolean = false;\r\n private isLoadingOrderPdf: boolean = false;\r\n private isLoadingCancellation: boolean = false;\r\n private loadingTicketStates: boolean = true;\r\n private optionalStringMax35Rule = rules.optionalStringMax35Rule\r\n private showOrderDetail: boolean = true;\r\n private orderId: number = 0;\r\n private showCancellationConfirmationDialog: boolean = false;\r\n private orderIdToCancel: number = 0;\r\n private currentEditAddress: AddressDto = new AddressDto();\r\n private currentEditAddressType: AddressType = AddressType.CompletedOrderDelivery;\r\n private currentEditAddressOrderId: number = 0;\r\n private editAddressDialog: boolean = false;\r\n\r\n beforeRouteEnter(to: any, from: any, next: any) {\r\n next((vm: any) => {\r\n window.addEventListener('scroll', vm.checkOrdersBottom);\r\n });\r\n }\r\n\r\n beforeRouteLeave(to: any, from: any, next: any) {\r\n window.removeEventListener('scroll', this.checkOrdersBottom);\r\n next();\r\n }\r\n\r\n private mounted() {\r\n this.loadOrders(true);\r\n }\r\n\r\n private get orders() {\r\n return (this.$store.state.orders as CustomerOrderDto[]);\r\n }\r\n \r\n private get orderCancellationRequests() {\r\n return this.$store.state.orderCancellations;\r\n }\r\n\r\n private get isLoading() {\r\n return (this.$store.state.loading as boolean);\r\n }\r\n\r\n private async loadOrders(reload: boolean) {\r\n try {\r\n this.$store.commit('setLoading', true);\r\n var from = this.orders.length;\r\n if (reload) {\r\n from = 0;\r\n }\r\n const response = await httpClient().get(`order/getOrdersOfCustomer?` +\r\n `from=${from}` +\r\n `&take=${this.loadBatchSize}`);\r\n if (!reload && from > 0) {\r\n this.$store.commit('setOrders', {\r\n reload: false,\r\n orders: response.data\r\n });\r\n } else {\r\n this.$store.commit('setOrders', {\r\n reload: true,\r\n orders: response.data\r\n });\r\n }\r\n if (response.data.length === this.loadBatchSize) {\r\n // wenn alle geladen wurden, gibt es wahrscheinlich noch mehr\r\n this.hasMoreToLoad = true;\r\n } else {\r\n this.hasMoreToLoad = false;\r\n }\r\n } catch(err) {\r\n console.log(`Fehler beim Laden der Bestellungen: ${err}`);\r\n } finally {\r\n this.$store.commit('setLoading', false);\r\n }\r\n // Load cancellations after order have been loaded\r\n this.loadOrderCancellationRequests();\r\n // Load Ticket States after orders have been loaded\r\n this.getTicketStates();\r\n }\r\n\r\n private async loadOrderCancellationRequests() {\r\n try {\r\n const response = await httpClient().post('order/GetOrderCancellationRequestsForOrders', \r\n this.orders.map((o: CustomerOrderDto) => o.orderId));\r\n this.$store.commit('setOrderCancellations', response.data);\r\n } catch (err) {\r\n console.log(`Fehler beim Laden der Stornierungsanfragen: ${err}`);\r\n }\r\n }\r\n\r\n private async getTicketStates () {\r\n try {\r\n this.loadingTicketStates = true;\r\n const response = await httpClient().get('Order/GetTicketStates' );\r\n if (response.data !== '') {\r\n if (response.data.length === 0) {\r\n this.ticketStates = new Array();\r\n } else {\r\n this.ticketStates = response.data;\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n } finally {\r\n this.loadingTicketStates = false;\r\n }\r\n }\r\n\r\n private getTicketStateFromOrderId (order: CustomerOrderDto) {\r\n var returnStates = this.ticketStates.filter(state => {\r\n return state.orderId === order.orderId.toString();\r\n })\r\n if (returnStates.length > 0) {\r\n return returnStates[0]\r\n } else {\r\n return undefined\r\n }\r\n }\r\n\r\n private hasCancellationRequest(orderId: number) {\r\n return this.orderCancellationRequests !== null && \r\n this.orderCancellationRequests.some((o: any) => o.blexonOrderId == orderId);\r\n }\r\n\r\n private hasWaitingCancellationRequest(orderId: number) {\r\n if (this.hasCancellationRequest(orderId)) {\r\n return this.orderCancellationRequests.filter((o: any) => o.blexonOrderId == orderId)[0].state == 0;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private hasOpenCancellationRequest(orderId: number) {\r\n if (this.hasCancellationRequest(orderId)) {\r\n return this.orderCancellationRequests.filter((o: any) => o.blexonOrderId == orderId)[0].state == 1;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private hasClosedCancellationRequest(orderId: number) {\r\n if (this.hasCancellationRequest(orderId)) {\r\n let state = this.orderCancellationRequests.filter((o: any) => o.blexonOrderId == orderId)[0].state;\r\n return state == 2 || state == 3;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private hasBusyCancellationRequest(orderId: number) {\r\n if (this.hasCancellationRequest(orderId)) {\r\n let state = this.orderCancellationRequests.filter((o: any) => o.blexonOrderId == orderId)[0].state;\r\n return state == 4;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private canChangeKommissionsnummer (order: CustomerOrderDto) {\r\n return (order.state == OrderTrackingState.Ordered ||\r\n order.state == OrderTrackingState.InProduction ||\r\n order.state == OrderTrackingState.Produced);\r\n }\r\n\r\n private canChangeDeliveryAddress(order: CustomerOrderDto) {\r\n return (order.state == OrderTrackingState.Ordered || order.state == OrderTrackingState.InProduction)\r\n && [\"Schweizer Post\", \"DHL\"].some((t:string) => t === order.translatedZustellungArt);\r\n }\r\n private canChangeInvoiceAddress(order: CustomerOrderDto) {\r\n return order.state == OrderTrackingState.Ordered \r\n || order.state == OrderTrackingState.InProduction\r\n || order.state == OrderTrackingState.Delivered\r\n || order.state == OrderTrackingState.Produced;\r\n }\r\n\r\n private async updateKommissionsnummer (order: CustomerOrderDto) {\r\n if (order.kommission === null || order.kommission === '') {\r\n return;\r\n }\r\n try {\r\n await httpClient().post('order/updateKommissionsnummer?' +\r\n `newKommissionsnummer=${encodeURI(order.kommission)}` +\r\n `&customerOrderId=${order.orderId}`)\r\n this.$store.dispatch('setSnackbarText', 'Auftragsnummer wurde gespeichert.');\r\n } catch (err) {\r\n console.log(`Fehler beim Aktualisieren der Auftragsnummer: ${err}`);\r\n this.$store.dispatch('setSnackbarErrorText', 'Fehler beim Speichern der Auftragsnummer.');\r\n }\r\n }\r\n\r\n private async getInvoicePdf (orderId: number) {\r\n try {\r\n this.isLoadingPdf = true\r\n const response = await httpClient().get(`order/getInvoicePdf?customerOrderId=${orderId}`,\r\n {\r\n responseType: 'blob'\r\n })\r\n const url = URL.createObjectURL(new Blob([response.data]))\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.download = 'Rechnung zum Auftrag ' + orderId + '.pdf'\r\n link.click()\r\n link.remove()\r\n window.URL.revokeObjectURL(url)\r\n } catch (err) {\r\n console.log(`Get invoice failed. ${err}`)\r\n } finally {\r\n this.isLoadingPdf = false\r\n }\r\n }\r\n\r\n private async getOrderConfirmationPdf (orderId: number) {\r\n try {\r\n this.isLoadingOrderPdf = true\r\n const response = await httpClient().get(`order/getOrderConfirmationPdfFile?orderId=${orderId}`,\r\n {\r\n responseType: 'blob'\r\n })\r\n const url = URL.createObjectURL(new Blob([response.data]))\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.download = 'Auftragsbestätigung ' + orderId + '.pdf'\r\n link.click()\r\n link.remove()\r\n window.URL.revokeObjectURL(url)\r\n } catch (err) {\r\n console.error(`Get order confirmation failed. ${err}`)\r\n } finally {\r\n this.isLoadingOrderPdf = false\r\n }\r\n }\r\n \r\n private navigateToTicket (orderId: number) {\r\n this.$router.push({ \r\n name: 'CreateOrEditTicket', \r\n params: { orderId: orderId.toString() } \r\n });\r\n }\r\n\r\n private checkOrdersBottom() {\r\n let bottomOfWindow = (window.innerHeight + window.pageYOffset) >= document.body.offsetHeight - 2\r\n if (bottomOfWindow && this.hasMoreToLoad && !this.isLoading) {\r\n this.loadOrders(false);\r\n }\r\n }\r\n\r\n private manuallyLoadMoreArticles() {\r\n if (this.hasMoreToLoad && !this.isLoading) {\r\n this.loadOrders(false);\r\n }\r\n }\r\n\r\n private async cancellationButton(orderId: number) {\r\n if (this.hasOpenCancellationRequest(orderId)) {\r\n this.$router.push({ \r\n name: 'CancellationConfirmation', \r\n params: { orderId: orderId.toString() } \r\n });\r\n } else {\r\n await this.checkCancellation(orderId);\r\n }\r\n }\r\n\r\n private async checkCancellation(orderId: number) {\r\n try {\r\n this.isLoadingCancellation = true;\r\n this.orderIdToCancel = orderId;\r\n const response = await httpClient().get(`Order/IsOrderTransmitted?orderId=${orderId}`);\r\n if (response.data) {\r\n \t\tthis.$router.push({ \r\n name: 'RequestCancellation', \r\n params: { \r\n orderId: orderId.toString(), \r\n orderProcessedInMeantime: 'false'\r\n } \r\n });\r\n } else {\r\n this.showCancellationConfirmationDialog = true;\r\n }\r\n } catch(err) {\r\n console.error(`Failed to check cancellation state. ${err}`)\r\n } finally {\r\n this.isLoadingCancellation = false;\r\n }\r\n }\r\n\r\n private async cancelOrder() {\r\n try {\r\n this.isLoadingCancellation = true;\r\n const response = await httpClient().post(`Order/CancelOrder?orderId=${this.orderIdToCancel}`);\r\n // FALSE if the order has started processing in the meantime\r\n if(response.data) {\r\n this.$store.dispatch('setSnackbarText', 'Der Auftrag wurde erfolgreich storniert.');\r\n this.loadOrders(true); // Reload orders\r\n } else {\r\n this.$store.dispatch('setSnackbarErrorText', 'Der Auftrag wurde inzwischen verarbeitet.');\r\n this.$router.push({ \r\n name: 'RequestCancellation', \r\n params: { \r\n orderId: this.orderIdToCancel.toString(), \r\n orderProcessedInMeantime: 'true'\r\n } \r\n });\r\n }\r\n } catch(err) {\r\n this.$store.dispatch('setSnackbarErrorText', 'Auftrag konnte nicht storniert werden.');\r\n } finally {\r\n this.isLoadingCancellation = false;\r\n this.showCancellationConfirmationDialog = false;\r\n }\r\n }\r\n\r\n private async editAddress(type: string, order: CustomerOrderDto){\r\n try {\r\n let call = '';\r\n if (type === 'invoice') {\r\n call = `Order/GetOrderInvoiceAddress?orderId=${order.orderId}`\r\n this.currentEditAddressType = AddressType.CompletedOrderInvoice;\r\n } else if (type === 'delivery') {\r\n call = `Order/GetOrderDeliveryAddress?orderId=${order.orderId}`\r\n this.currentEditAddressType = AddressType.CompletedOrderDelivery;\r\n } else {\r\n throw 'Invalid address type';\r\n }\r\n const response = await httpClient().get(call);\r\n let responseAddress: AddressDto = JSON.parse(JSON.stringify(response.data));\r\n if (type === 'invoice' && responseAddress.eMail) {\r\n responseAddress.isBilledDigitally = responseAddress.eMail.length > 0\r\n }\r\n this.currentEditAddress = responseAddress;\r\n this.currentEditAddressOrderId = order.orderId;\r\n this.editAddressDialog = true;\r\n } catch(err) {\r\n console.log(`Adresse konnte nicht geladen werden. ${err}`);\r\n }\r\n }\r\n\r\n private getIcon(state: OrderTrackingState){\r\n switch(state) {\r\n case OrderTrackingState.Unknown: {\r\n return 'mdi-close'\r\n }\r\n case OrderTrackingState.Ordered: {\r\n return 'mdi-clock'\r\n }\r\n case OrderTrackingState.Delivered: {\r\n return 'mdi-truck'\r\n }\r\n case OrderTrackingState.Paid: {\r\n return 'mdi-check'\r\n }\r\n case OrderTrackingState.InProduction: {\r\n return 'mdi-cogs'\r\n }\r\n case OrderTrackingState.Produced: {\r\n return 'mdi-dropbox'\r\n }\r\n case OrderTrackingState.Fakturiert: {\r\n return 'mdi-cash'\r\n }\r\n case OrderTrackingState.Cancelled: {\r\n return 'mdi-cancel'\r\n }\r\n case OrderTrackingState.CreditOverdrawn: {\r\n return 'mdi-exclamation'\r\n }\r\n default: {\r\n return 'mdi-help-circle'\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Orders.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Orders.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Orders.vue?vue&type=template&id=0a47aad2&scoped=true\"\nimport script from \"./Orders.vue?vue&type=script&lang=ts\"\nexport * from \"./Orders.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a47aad2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.isValidForm),callback:function ($$v) {_vm.isValidForm=$$v},expression:\"isValidForm\"}},[_c('v-row',[_c('v-col',[_c('v-stepper',{attrs:{\"non-linear\":\"\",\"disabled\":_vm.isCartValid},model:{value:(_vm.stepCount),callback:function ($$v) {_vm.stepCount=$$v},expression:\"stepCount\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"step\":\"1\",\"editable\":!_vm.currentOfferCalculating,\"color\":\"accent\"}},[_vm._v(\" Warenkorb \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"2\",\"editable\":_vm.isCartValid && !_vm.currentOfferCalculating,\"color\":\"accent\"}},[_vm._v(\" Adressen \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"3\",\"editable\":_vm.isCartValid && !_vm.currentOfferCalculating && _vm.areAddressesValid,\"color\":\"accent\"}},[_vm._v(\" Lieferung \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"4\",\"editable\":_vm.isCartValid && !_vm.currentOfferCalculating && _vm.areAddressesValid && _vm.isValidForm && _vm.isValidManufacturerSelected,\"color\":\"accent\"}},[_vm._v(\" Angebot \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\"},[(!_vm.isCartValid && _vm.hasItemsInCart)?_c('div',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" Einige Artikel in diesem Warenkorb werden derzeit blexonisiert, wurden noch nicht mit der neusten Version blexonisiert, oder der Preis hat sich geändert und wurde noch nicht neu berechnet.\"),_c('br'),_vm._v(\" Bitte berechnen Sie die Artikel neu oder wenden Sie sich bei Fragen an unser Helpdesk. \")]):_vm._e(),_c('v-spacer'),_c('v-col',{staticClass:\"d-flex child-flex pa-0 ma-0\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":!_vm.isCartValid},on:{\"click\":function($event){_vm.stepCount = 2}}},[_vm._v(\" Weiter \")])],1)],1),_c('v-row',{staticClass:\"pa-0 mt-0\"},[_c('cart')],1)],1),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"d-flex child-flex pa-0 ma-0\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{on:{\"click\":function($event){_vm.stepCount = 1}}},[_vm._v(\"Zurück\")])],1),_c('v-spacer'),_c('v-col',{staticClass:\"d-flex child-flex pa-0 ma-0\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":!_vm.isCartValid || !_vm.areAddressesValid},on:{\"click\":function($event){_vm.stepCount = 3}}},[_vm._v(\" Weiter \")])],1)],1),_c('v-row',{staticClass:\"pa-0 mt-2 mx-0\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"Lieferadresse\")]),(_vm.deliveryAddress.id > 0)?_c('address-tile',{key:_vm.deliveryAddressKey,attrs:{\"type\":_vm.orderDeliveryType,\"propAddress\":_vm.deliveryAddress,\"isOrder\":false}}):_vm._e(),_c('v-btn',{staticClass:\"mt-3\",on:{\"click\":function($event){return _vm.openAddressPicker(_vm.deliveryAddress.type)}}},[_vm._v(\" Weitere Adressen... \")])],1),_c('v-divider',{staticStyle:{\"margin\":\"0 -1px\"},attrs:{\"vertical\":\"\"}}),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('p',{staticClass:\"text-h6\"},[_vm._v(\"Rechnungsadresse\")]),(_vm.invoiceAddress.id > 0)?_c('address-tile',{key:_vm.invoiceAddressKey,attrs:{\"type\":_vm.orderInvoiceType,\"propAddress\":_vm.invoiceAddress,\"isOrder\":false}}):_vm._e(),_c('v-btn',{staticClass:\"mt-3\",on:{\"click\":function($event){return _vm.openAddressPicker(_vm.invoiceAddress.type)}}},[_vm._v(\" Weitere Adressen... \")])],1)],1)],1),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex child-flex\",attrs:{\"cols\":\"6\",\"md\":\"2\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.currentOfferCalculating},on:{\"click\":function($event){_vm.stepCount = 2}}},[_vm._v(\" Zurück \")])],1),_c('v-spacer'),_c('v-col',{staticClass:\"d-flex child-flex\",attrs:{\"cols\":\"6\",\"md\":\"2\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":_vm.currentOfferCalculating || !_vm.isValidForm || !_vm.isValidManufacturerSelected},on:{\"click\":function($event){_vm.stepCount = 4}}},[_vm._v(\" Weiter \")])],1)],1),_c('v-row',[_c('offer-information',{on:{\"recalculate-offer\":function($event){return _vm.updateOffer()}}})],1),(_vm.currentOffer != null)?_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isCountryValidForDelivery),expression:\"isCountryValidForDelivery\"}]},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('delivery-component'),_c('v-card',{staticClass:\"mt-3\"},[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Zahlungsart \")]),_c('v-card-text',[(_vm.isBilledDigitally)?_c('p',[_vm._v(\" Wir senden Ihnen eine Rechnung \"),_c('strong',[_vm._v(\"elektronisch\")]),_vm._v(\" an \"+_vm._s(_vm.email)+\". \")]):_c('p',[_vm._v(\" Wir senden Ihnen eine Rechnung \"),_c('strong',[_vm._v(\"per Post\")]),_vm._v(\" an \"+_vm._s(_vm.addressString)+\". \")]),(!_vm.isBilledDigitally)?_c('v-btn',{attrs:{\"small\":\"\",\"title\":\"Navigiert zu den Adresseinstellungen.\"},on:{\"click\":function($event){return _vm.$emit('step-back')}}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-clipboard-edit\")]),_vm._v(\" Adresse ändern \")],1):_vm._e()],1)],1)],1),_c('v-divider',{staticStyle:{\"margin\":\"0 -1px\"},attrs:{\"vertical\":\"\"}}),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Auftragsnummer \")]),_c('v-card-text',[_c('p',[_vm._v(\"Sie können für diesen Auftrag eine eigene Auftragsnummer vergeben.\"),_c('br'),_vm._v(\" Wir erwähnen diese Nummer auf dem Lieferschein und der Rechnung.\")]),_c('v-text-field',{attrs:{\"placeholder\":\"Ihre Auftragsnummer\",\"rules\":_vm.optionalStringMax35Rule,\"color\":\"accent\",\"dense\":\"\"},on:{\"blur\":function($event){_vm.customKommissionsnummer = _vm.customKommissionsnummer.trim();}},model:{value:(_vm.customKommissionsnummer),callback:function ($$v) {_vm.customKommissionsnummer=$$v},expression:\"customKommissionsnummer\"}})],1)],1),_c('v-card',{staticClass:\"mt-3\"},[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Benachrichtigungen \")]),_c('v-card-text',[_c('p',[_vm._v(\" Wir senden die Auftragsbestätigung und die Benachrichtigung über die Fertigstellung Ihres Auftrags an Ihre E-Mail Adresse (\"+_vm._s(_vm.userEmailAddress)+\"). Optional können diese Nachrichten an eine weitere E-Mail Adresse gesendet werden. In den \"),_c('a',{on:{\"click\":_vm.goToCustomerSettings}},[_vm._v(\"Kundenkonto-Einstellungen\")]),_vm._v(\" kann ein Standardwert für diese E-Mail definiert werden. \")]),_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\",\"label\":\"Nachrichten an eine zusätzliche Adresse schicken\"},on:{\"change\":function($event){return _vm.onIsAdditionalEmailSelectedChanged()}},model:{value:(_vm.isAdditionalEmailSelected),callback:function ($$v) {_vm.isAdditionalEmailSelected=$$v},expression:\"isAdditionalEmailSelected\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isAdditionalEmailSelected),expression:\"isAdditionalEmailSelected\"}],attrs:{\"placeholder\":\"E-Mail Adresse\",\"rules\":_vm.optionalEmailRule,\"color\":\"accent\"},on:{\"blur\":function($event){_vm.additionalOrderConfirmationEmail = _vm.additionalOrderConfirmationEmail.trim();}},model:{value:(_vm.additionalOrderConfirmationEmail),callback:function ($$v) {_vm.additionalOrderConfirmationEmail=$$v},expression:\"additionalOrderConfirmationEmail\"}})],1)],1)],1)],1):_vm._e()],1),_c('v-stepper-content',{attrs:{\"step\":\"4\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex child-flex\",attrs:{\"cols\":\"6\",\"md\":\"2\"}},[_c('v-btn',{on:{\"click\":function($event){_vm.stepCount = 3}}},[_vm._v(\"Zurück\")])],1),_c('v-spacer')],1),_c('v-row',[_c('offer-information',{on:{\"recalculate-offer\":function($event){return _vm.updateOffer()}}})],1),(_vm.currentOffer !== null)?_c('v-row',[_c('summary-component')],1):_vm._e()],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\"},model:{value:(_vm.addressPickerDialog),callback:function ($$v) {_vm.addressPickerDialog=$$v},expression:\"addressPickerDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Adresse für Bestellung auswählen\")]),_c('v-card-text',[(_vm.addressPickerDialog)?_c('addresses-overview',{attrs:{\"type\":_vm.currentAddressPickerType,\"isOrder\":true},on:{\"setAddressForOrder\":() => {\n\t\t\t\t\t\t_vm.refreshAddresses();\n\t\t\t\t\t\t_vm.addressPickerDialog = false\n\t\t\t\t\t}}}):_vm._e()],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.addressPickerDialog = false}}},[_vm._v(\" Abbrechen \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\",\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-row',{attrs:{\"wrap\":\"\"}},[(_vm.savedCartsExist)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\",\"lg\":\"6\"}},[_c('saved-carts')],1):_vm._e(),(_vm.savedCartsExist)?_c('v-divider',{staticStyle:{\"margin-left\":\"-1px\"},attrs:{\"vertical\":\"\",\"inset\":\"\"}}):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":_vm.savedCartsExist ? 7 : 12,\"lg\":_vm.savedCartsExist ? 6 : 12}},[_c('current-cart')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('h2',[_vm._v(\"Stücklisten\")]),(!_vm.savedCartsExist)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_vm._v(\" Noch keine Stücklisten gespeichert. Legen Sie Teile in den Warenkorb, um aus dem Warenkorb eine neue Stückliste zu erstellen. \")])],1):_c('v-row',{attrs:{\"wrap\":\"\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"8\",\"xl\":\"10\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.sortedSavedCarts,\"filter\":_vm.savedCartFilter,\"item-text\":\"name\",\"item-value\":\"id\",\"placeholder\":\"Liste auswählen...\",\"color\":\"accent\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"wrap\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[_c('div',{staticClass:\"mr-3\"},[_vm._v(_vm._s(data.item.name)+\":\")]),_vm._l((data.item.positions),function(article,index){return _c('div',{key:article.articleId},[(index < 5)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"rgba(0, 0, 0, 1)\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-img',_vm._g({staticClass:\"py-1\",attrs:{\"contain\":\"\",\"width\":\"45px\",\"height\":\"45px\",\"src\":_vm.getThumbnailUrl(article.articleId)}},on))]}}],null,true)},[_vm._v(\" \"+_vm._s(article.customerArticleName)),_c('br'),_vm._v(\" Anzahl: \"+_vm._s(article.quantity)+\" \")]):(index === 6)?_c('div',{staticClass:\"ml-3\"},[_vm._v(\"...\")]):_vm._e()],1)})],2)]}}]),model:{value:(_vm.selectedCartId),callback:function ($$v) {_vm.selectedCartId=$$v},expression:\"selectedCartId\"}})],1),_c('v-spacer'),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.selectedCartId <= 0,\"title\":\"Stückliste löschen.\"},on:{\"click\":function($event){_vm.deleteSavedCartDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-delete\")]),_vm._v(\"Löschen \")],1)],1)],1),(_vm.selectedCartId > 0)?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.requiredIntegerRule,\"label\":\"Anzahl\",\"color\":\"accent\"},on:{\"blur\":function($event){_vm.sentToCartAmount = _vm.sentToCartAmount > 1 ? _vm.sentToCartAmount : 1}},model:{value:(_vm.sentToCartAmount),callback:function ($$v) {_vm.sentToCartAmount=$$v},expression:\"sentToCartAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":_vm.selectedCartId <= 0,\"title\":\"Alle Artikel der Stückliste in den Warenkorb legen. Bei vorhandenen Artikeln wird die Menge erhöht.\"},on:{\"click\":function($event){return _vm.loadArticlesFromSavedCart()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-cart-arrow-right\")]),(_vm.sentToCartAmount > 1)?_c('span',[_vm._v(_vm._s(_vm.sentToCartAmount)+\" x zum Warenkorb hinzufügen\")]):_c('span',[_vm._v(\"Zu Warenkorb hinzufügen\")])],1)],1)],1):_vm._e(),(_vm.selectedCartId > 0)?_c('v-row',{attrs:{\"wrap\":\"\"}},_vm._l((_vm.currentlySelectedCart.positions),function(article){return _c('v-col',{key:article.articleId,attrs:{\"cols\":\"12\",\"xs\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-card',{staticClass:\"pt-2\"},[_c('v-img',{attrs:{\"contain\":\"\",\"height\":\"90px\",\"src\":_vm.getThumbnailUrl(article.articleId)}}),_c('v-card-text',[_c('strong',[_vm._v(_vm._s(article.customerArticleName))]),_c('br'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_vm._v(\" \"+_vm._s(article.articleId)+\" \")]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"placeholder\":\"Stk.\",\"label\":\"Anzahl\",\"rules\":_vm.allowedCartAmountRule,\"type\":\"number\",\"color\":\"accent\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"blur\":function($event){return _vm.setNewSavedCartArticleQuantity(article.articleId, article.quantity)}},model:{value:(article.quantity),callback:function ($$v) {_vm.$set(article, \"quantity\", $$v)},expression:\"article.quantity\"}})],1)],1),_c('v-row',{staticClass:\"ma-0\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"title\":\"Aus Stückliste entfernen\"},on:{\"click\":function($event){return _vm.removeArticleFromSavedCart(article.articleId)}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"small\":\"\",\"title\":\"Zum Warenkorb hinzufügen\"},on:{\"click\":function($event){return _vm.addArticleFromSavedCartToCurrentCart(article.articleId, article.quantity)}}},[_c('v-icon',[_vm._v(\"mdi-cart-arrow-right\")])],1)],1)],1)],1)],1)}),1):_vm._e(),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.deleteSavedCartDialog),callback:function ($$v) {_vm.deleteSavedCartDialog=$$v},expression:\"deleteSavedCartDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Stückliste löschen\")]),_c('v-card-text',[_vm._v(\" Sind Sie sicher, dass Sie die Stückliste löschen wollen?\"),_c('br'),_vm._v(\" Die Artikel, welche in der Liste enthalten sind, werden nicht gelöscht. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.deleteSavedCartDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"title\":\"Löscht die Stückliste endgültig.\"},on:{\"click\":function($event){return _vm.deleteSavedCart()}}},[_vm._v(\" Löschen \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { SavedCartPosition } from './savedCartPosition';\r\n\r\nexport class SavedCartDto {\r\n public id: number = 0;\r\n public name: string = '';\r\n public positions: SavedCartPosition[] = new Array();\r\n}","\r\n\timport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\n\timport httpClient from \"@/store/httpClient\";\r\n\timport rules from \"@/store/rules\";\r\n\timport { SavedCartDto } from \"@/dtos/savedCartDto\";\r\n\timport { SavedCartPosition } from \"@/dtos/savedCartPosition\";\r\n\r\n\t@Component\r\n\texport default class SavedCarts extends Vue {\r\n\t\tprivate selectedCartId: number = 0;\r\n\t\tprivate sortedSavedCarts: SavedCartDto[] = [];\r\n\t\tprivate deleteSavedCartDialog = false;\r\n\t\tprivate allowedCartAmountRule = rules.allowedCartAmountRule;\r\n\t\tprivate requiredIntegerRule = rules.requiredIntegerRule;\r\n\t\tprivate sentToCartAmount: number = 1;\r\n\r\n\t\tprivate async mounted() {\r\n\t\t\tif (this.savedCarts !== null && this.savedCarts.length > 0) {\r\n\t\t\t\tthis.sortedSavedCarts = (this.savedCarts as any[]).sort((a, b) => a.name.localeCompare(b.name));\r\n\t\t\t} else {\r\n\t\t\t\tthis.sortedSavedCarts = this.savedCarts;\r\n\t\t\t}\r\n\t\t\tif (this.lastSelectedSavedCartId > 0) {\r\n\t\t\t\tthis.selectedCartId = this.lastSelectedSavedCartId;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t@Watch(\"selectedCartId\")\r\n\t\tprivate setLastSelectedSavedCart() {\r\n\t\t\tif (this.selectedCartId > 0 && this.selectedCartId !== this.lastSelectedSavedCartId) {\r\n\t\t\t\tthis.lastSelectedSavedCartId = this.selectedCartId;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate get currentlySelectedCart(): SavedCartDto {\r\n\t\t\tif (this.selectedCartId > 0) {\r\n\t\t\t\tlet index = this.sortedSavedCarts.findIndex((cart: SavedCartDto) => cart.id === this.selectedCartId);\r\n\t\t\t\treturn (index >= 0) ? this.sortedSavedCarts[index] : new SavedCartDto();\r\n\t\t\t} else {\r\n\t\t\t\treturn new SavedCartDto();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate get savedCarts() {\r\n\t\t\tif (this.$store.state.savedCarts === null) {\r\n\t\t\t\tthis.loadSavedCarts();\r\n\t\t\t}\r\n\t\t\treturn this.$store.state.savedCarts;\r\n\t\t}\r\n\t\tprivate set savedCarts(value: SavedCartDto[]) {\r\n\t\t\tthis.$store.commit(\"setSavedCarts\", value);\r\n\t\t}\r\n\r\n\t\tprivate get savedCartsExist(): boolean {\r\n\t\t\treturn this.savedCarts != null && this.savedCarts.length > 0;\r\n\t\t}\r\n\r\n\t\tprivate get lastSelectedSavedCartId(): number {\r\n\t\t\treturn this.$store.state.currentSavedCartId;\r\n\t\t}\r\n\t\tprivate set lastSelectedSavedCartId(newId: number) {\r\n\t\t\tthis.$store.commit(\"setCurrentSavedCartId\", newId);\r\n\t\t}\r\n\r\n\t\tprivate getThumbnailUrl(articleId: number) {\r\n\t\t\treturn this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n\t\t}\r\n\r\n\t\tprivate async loadSavedCarts() {\r\n\t\t\tif (this.savedCarts === null) {\r\n\t\t\t\tconst response = await httpClient().get(\"cart/GetCartsOfCustomer\");\r\n\t\t\t\tthis.$store.commit(\"setSavedCarts\", response.data);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate async loadArticlesFromSavedCart() {\r\n\t\t\tconst articleIds = this.currentlySelectedCart.positions.map((p) => p.articleId);\r\n\t\t\tawait this.$store.dispatch(\"loadMissingArticles\", articleIds);\r\n\t\t\tlet tempLoopAmount = 1;\r\n\t\t\tif (this.sentToCartAmount && this.sentToCartAmount > 1) {\r\n\t\t\t\ttempLoopAmount = this.sentToCartAmount;\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < tempLoopAmount; i++) {\r\n\t\t\t\tthis.$store.dispatch(\"loadSavedCartIntoCurrentCart\", this.currentlySelectedCart.positions);\r\n\t\t\t}\r\n\t\t\tthis.$store.dispatch(\"setSnackbarText\", \"Artikel aus Stückliste wurden dem Warenkorb hinzugefügt.\");\r\n\t\t}\r\n\r\n\t\tprivate async addArticleFromSavedCartToCurrentCart(articleId: number, quantity: number) {\r\n\t\t\tawait this.$store.dispatch(\"loadMissingArticles\", [articleId]);\r\n\t\t\tlet oldQuantity = this.$store.getters.quantityOfItemInCart(articleId);\r\n\t\t\tthis.$store.dispatch(\"addArticleFromSavedCartToCurrentCart\", { articleId: articleId, quantity: quantity });\r\n\t\t\tthis.$store.dispatch(\"setSnackbarArticleText\", {\r\n\t\t\t\ttext: `${quantity} Stück dem Warenkorb hinzugefügt. ${oldQuantity} + ${quantity} = ${parseInt(oldQuantity) + quantity}`,\r\n\t\t\t\tarticleId: articleId,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate savedCartFilter(item: any, queryText: string, itemText: string) {\r\n\t\t\tconst cartName = item.name.toLowerCase();\r\n\t\t\tconst searchText = queryText.toLowerCase();\r\n\t\t\treturn cartName.indexOf(searchText) > -1;\r\n\t\t}\r\n\r\n\t\tprivate setNewSavedCartArticleQuantity(articleId: number, quantity: string) {\r\n\t\t\tconst parsed: number = parseInt(quantity);\r\n\t\t\tif (quantity !== undefined && !isNaN(parsed) && parsed > 0) {\r\n\t\t\t\tthis.$store.dispatch(\"setAmountOfSavedCartItem\", {\r\n\t\t\t\t\tcartId: this.currentlySelectedCart.id,\r\n\t\t\t\t\tarticleId: articleId,\r\n\t\t\t\t\tquantity: parsed,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate removeArticleFromSavedCart(articleId: number) {\r\n\t\t\tthis.$store.dispatch(\"removeArticleFromSavedCart\", {\r\n\t\t\t\tcartId: this.currentlySelectedCart.id,\r\n\t\t\t\tarticleId: articleId,\r\n\t\t\t});\r\n\t\t\tthis.$store.dispatch(\"setSnackbarText\", \"Artikel wurde aus der Stückliste entfernt.\");\r\n\t\t}\r\n\r\n\t\tprivate deleteSavedCart() {\r\n\t\t\tlet cartIdToDelete = this.selectedCartId;\r\n\t\t\tthis.selectedCartId = 0;\r\n\t\t\tthis.$store.dispatch(\"deleteSavedCart\", cartIdToDelete);\r\n\t\t\tthis.deleteSavedCartDialog = false;\r\n\t\t\tthis.$store.dispatch(\"setSnackbarText\", \"Stückliste wurde gelöscht.\");\r\n\t\t}\r\n\t}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SavedCarts.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SavedCarts.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SavedCarts.vue?vue&type=template&id=79ebc46c\"\nimport script from \"./SavedCarts.vue?vue&type=script&lang=ts\"\nexport * from \"./SavedCarts.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('h2',{staticClass:\"text-h5\"},[_vm._v(\"Warenkorb\")]),(_vm.hasItemsInCart)?_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"title\":\"Entfernt alle Artikel aus dem Warenkorb.\"},on:{\"click\":function($event){return _vm.emptyCart()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-close\")]),_vm._v(\"Leeren \")],1)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Aus dem Warenkorb eine Stückliste erstellen.\"},on:{\"click\":function($event){_vm.saveAsNewCartDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_vm._v(\"Stückliste erstellen \")],1)],1)],1):_vm._e(),(_vm.hasItemsInCart)?_c('v-row',{staticClass:\"ma-0 pa-0\"},[_c('v-simple-table',{staticStyle:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_vm._v(\"Status\")]),_c('th',[_vm._v(\"Bild\")]),_c('th',[_vm._v(\"Artikel\")]),_c('th',[_vm._v(\"Stk.\")]),_c('th')])]),(_vm.cartPositions.length > 0)?_c('tbody',_vm._l((_vm.cartPositions),function(position){return _c('cart-position',{key:position.articleId,attrs:{\"position\":position}})}),1):_c('tbody',[_c('tr',[_c('td',{staticClass:\"text-h5\",attrs:{\"colspan\":\"6\"}},[_vm._v(\"Keine Artikel im Warenkorb\")])])])]},proxy:true}],null,false,3911641854)})],1):_c('v-row',[_c('v-col',[_vm._v(\" Der Warenkorb ist leer. Gehen Sie zu \"),_c('a',{attrs:{\"href\":\"/#/Catalogue\"}},[_vm._v(\"'Artikel'\")]),_vm._v(\" um neue Artikel in den Warenkorb zu legen. \")])],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"keydown\":_vm.checkEscOrEnter,\"click:outside\":function($event){_vm.saveAsNewCartDialog = false}},model:{value:(_vm.saveAsNewCartDialog),callback:function ($$v) {_vm.saveAsNewCartDialog=$$v},expression:\"saveAsNewCartDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Neue Stückliste\")]),_c('v-card-text',[_vm._v(\" Der Warenkorb wird als Stückliste unter folgendem Namen gespeichert: \"),_c('v-text-field',{attrs:{\"label\":\"Name der neuen Stückliste\",\"color\":\"accent\",\"rules\":[_vm.checkNewCartName]},on:{\"blur\":function($event){_vm.newCartName = _vm.newCartName.trim()}},model:{value:(_vm.newCartName),callback:function ($$v) {_vm.newCartName=$$v},expression:\"newCartName\"}})],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.saveAsNewCartDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.saveCartValid,\"title\":\"Speichert den Warenkorb als Stückliste.\"},on:{\"click\":function($event){return _vm.saveNewCart()}}},[_vm._v(\" Speichern \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('td',{attrs:{\"width\":\"40\"}},[(_vm.article.state == 3)?_c('v-progress-circular',{attrs:{\"size\":\"12\",\"indeterminate\":\"\"}}):_c('v-icon',{attrs:{\"dark\":\"\",\"color\":_vm.articleStateColor()}},[_vm._v(\" \"+_vm._s(_vm.articleStateIcon())+\" \")])],1),_c('td',{attrs:{\"width\":\"90\"}},[_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"90px\",\"height\":\"90px\",\"src\":_vm.thumbnailUrl}})],1),_c('td',[_c('div',{staticClass:\"text-subtitle-1\"},[_vm._v(_vm._s(_vm.article.customerArticleName))]),_c('div',{staticClass:\"text-caption\"},[_c('p',{staticStyle:{\"margin-bottom\":\"0px\"}},[_c('strong',[_vm._v(\"Material: \")]),_vm._v(_vm._s(_vm.article.materialname))]),_c('p',{staticStyle:{\"margin-bottom\":\"0px\"}},[_c('strong',[_vm._v(\"Blexonnummer: \")]),_vm._v(_vm._s(_vm.article.articleId))])]),(_vm.article.priceState == 1 || _vm.article.priceState == 4)?_c('div',[_c('v-btn',{staticClass:\"blexon-button mb-2\",attrs:{\"loading\":_vm.article.priceState == 4,\"title\":\"Berechnet den Preis für diesen Artikel neu.\"},on:{\"click\":function($event){return _vm.recalculatePrice()}}},[_vm._v(\" Preis neu berechnen \")])],1):_vm._e()]),_c('td',{attrs:{\"width\":\"180\"}},[_c('v-text-field',{attrs:{\"placeholder\":\"Stk.\",\"rules\":_vm.allowedCartAmountRule,\"type\":\"number\",\"color\":\"accent\"},model:{value:(_vm.articleQuantity),callback:function ($$v) {_vm.articleQuantity=$$v},expression:\"articleQuantity\"}})],1),_c('td',{staticClass:\"text-right\",attrs:{\"width\":\"160\"}},[_c('v-btn',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"title\":\"Entfernt den Artikel aus dem Warenkorb. Entfernt den Artikel nicht aus Stücklisten.\"},on:{\"click\":function($event){return _vm.removeFromCart()}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1),(_vm.selectedSavedCartId > 0)?_c('v-btn',{attrs:{\"small\":\"\",\"title\":\"Position zur aktuellen Stückliste hinzufügen\"},on:{\"click\":function($event){return _vm.addToSavedCart()}}},[_c('v-icon',[_vm._v(\"mdi-playlist-plus\")])],1):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport httpClient from \"@/store/httpClient\";\r\nimport rules from '@/store/rules';\r\nimport { ArticleState } from '@/dtos/articleState';\r\nimport { PriceState } from '@/dtos/priceState';\r\nimport { CartItem } from '@/dtos/cartItem';\r\n\r\n@Component({})\r\nexport default class CartPosition extends Vue {\r\n\t@Prop()\r\n\tprivate position!: CartItem;\r\n\tprivate allowedCartAmountRule = rules.allowedCartAmountRule;\r\n\r\n private get article() {\r\n return this.$store.getters.articleById(this.position.articleId);\r\n }\r\n\r\n private get articleQuantity() { \r\n return this.position.quantity;\r\n }\r\n private set articleQuantity(quantity: any) {\r\n const parsed: number = parseInt(quantity);\r\n if (quantity !== undefined && !isNaN(parsed) && parsed > 0) {\r\n this.$store.dispatch('setAmountOfCartItem', {\r\n articleId: this.position.articleId,\r\n quantity: parsed\r\n });\r\n }\r\n }\r\n\r\n\tprivate get selectedSavedCartId(): number {\r\n\t\treturn this.$store.state.currentSavedCartId;\r\n\t}\r\n\r\n\tprivate async recalculatePrice(){\r\n try{\r\n this.$store.commit('updatePriceStateOfArticle', { articleId: this.position.articleId, priceState: PriceState.Calculating });\r\n await httpClient().get(`article/UpdatePriceOfArticle?articleId=${this.position.articleId}`);\r\n } catch(err) {\r\n console.error(`Failed to update prices of article ${this.position.articleId}. Error: ${err}`);\r\n this.$store.commit('updatePriceStateOfArticle', { articleId: this.position.articleId, priceState: PriceState.Failed });\r\n }\r\n }\r\n\r\n private removeFromCart() {\r\n this.$store.dispatch('removeArticleFromCart', this.position.articleId);\r\n }\r\n\r\n\tprivate addToSavedCart() {\r\n\t\tthis.$store.dispatch(\"addArticleToSavedCart\", {\r\n\t\t\tamount: this.articleQuantity,\r\n\t\t\tarticleId: this.position.articleId,\r\n customerArticleName: this.article.customerArticleName,\r\n\t\t});\r\n\t}\r\n\r\n private get thumbnailUrl() {\r\n return this.$store.getters.getThumbnailUrl(this.position.articleId, undefined);\r\n }\r\n\r\n private articleStateIcon() {\r\n switch(this.article.state) { \r\n case ArticleState.OK: { \r\n return 'mdi-check-circle';\r\n } \r\n case ArticleState.Warning: { \r\n return 'mdi-alert-circle';\r\n } \r\n default: { \r\n return 'mdi-close-circle';\r\n } \r\n } \r\n }\r\n\r\n private articleStateColor() {\r\n switch(this.article.state) { \r\n case ArticleState.OK: { \r\n return '#97b498';\r\n } \r\n case ArticleState.Warning: { \r\n return '#cbc693';\r\n } \r\n default: { \r\n return '#cb9ca1';\r\n } \r\n } \r\n }\r\n\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartPosition.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CartPosition.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CartPosition.vue?vue&type=template&id=a087f25a&scoped=true\"\nimport script from \"./CartPosition.vue?vue&type=script&lang=ts\"\nexport * from \"./CartPosition.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a087f25a\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { CartItem } from \"@/dtos/cartItem\";\r\nimport { SavedCartDto } from \"@/dtos/savedCartDto\";\r\nimport CartPosition from \"./CartPosition.vue\";\r\n\r\n@Component({\r\n components: {\r\n\t\tCartPosition\r\n }\r\n})\r\nexport default class CurrentCart extends Vue {\r\n\tprivate saveAsNewCartDialog: boolean = false;\r\n\tprivate newCartName: string = '';\r\n\r\n\tprivate get hasItemsInCart() {\r\n\t\tif (this.$store.state.currentCart === null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.$store.state.currentCart.cartItems.length > 0;\r\n\t}\r\n\r\n\tprivate get cartPositions(): Array {\t\t\r\n\t\treturn this.$store.state.currentCart.cartItems;\r\n }\r\n\r\n\tprivate get saveCartValid(): boolean {\r\n if (this.$store.state.currentCart.cartItems.length <= 0) return false;\r\n if (this.newCartName.length <= 0) return false;\r\n return !this.cartNameAlreadyExists;\r\n }\r\n\r\n\tprivate get cartNameAlreadyExists(): boolean {\r\n if (this.newCartName.length > 0) {\r\n return this.$store.state.savedCarts\r\n .some((saved: SavedCartDto) => saved.name.trim().toLowerCase() === this.newCartName.trim().toLowerCase());\r\n }\r\n return false; \r\n }\r\n\r\n\tprivate checkNewCartName() {\r\n\t\tif (this.cartNameAlreadyExists) {\r\n\t\t\treturn 'Eine Stückliste mit diesem Namen existiert bereits.'\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprivate emptyCart() {\r\n this.$store.dispatch('emptyCart');\r\n }\r\n\r\n\tprivate async saveNewCart() {\r\n let newCart: SavedCartDto = new SavedCartDto();\r\n newCart.id = 0;\r\n newCart.name = this.newCartName;\r\n\t\tnewCart.positions = [];\r\n\t\tthis.cartPositions.forEach((a: CartItem) => {\r\n\t\t\tlet article = this.$store.getters.articleById(a.articleId);\r\n\t\t\tconsole.log(article);\r\n\t\t\tnewCart.positions.push({\r\n\t\t\t\tposition: 0,\r\n\t\t\t\tquantity: a.quantity,\r\n\t\t\t\tarticleId: a.articleId,\r\n\t\t\t\tcustomerArticleId: article.customerArticleId,\r\n\t\t\t\tcustomerArticleName: article.customerArticleName,\r\n\t\t\t})\r\n\t\t});\r\n\t\tthis.saveAsNewCartDialog = false;\r\n await this.$store.dispatch('saveNewSavedCart', newCart);\r\n\t\tthis.newCartName = '';\r\n\t\tthis.$store.dispatch('setSnackbarText', 'Stückliste wurde gespeichert.');\r\n }\r\n\r\n\tprivate checkEscOrEnter(keyPress: KeyboardEvent) {\r\n\t\tif (keyPress.key === 'Escape') {\r\n\t\t\tthis.saveAsNewCartDialog = false;\r\n\t\t} else if (keyPress.key === 'Enter') {\r\n\t\t\tif (this.saveCartValid) this.saveNewCart();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentCart.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentCart.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CurrentCart.vue?vue&type=template&id=ea1ae022&scoped=true\"\nimport script from \"./CurrentCart.vue?vue&type=script&lang=ts\"\nexport * from \"./CurrentCart.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea1ae022\",\n null\n \n)\n\nexport default component.exports","\r\n\timport { Component, Vue, Prop } from \"vue-property-decorator\";\r\n\timport httpClient from \"../../store/httpClient\";\r\n\timport { SavedCartDto } from \"@/dtos/savedCartDto\";\r\n\timport SavedCarts from \"@/views/Cart/SavedCarts.vue\";\r\n\timport CurrentCart from \"@/views/Cart/CurrentCart.vue\";\r\n\r\n\t@Component({\r\n\t\tcomponents: {\r\n\t\t\tSavedCarts,\r\n\t\t\tCurrentCart,\r\n\t\t},\r\n\t})\r\n\texport default class Cart extends Vue {\r\n\t\tprivate async mounted() {\r\n\t\t\tawait this.loadSavedCarts();\r\n\t\t}\r\n\r\n\t\tprivate get availableSavedCarts(): SavedCartDto[] {\r\n\t\t\tvar carts = this.$store.state.savedCarts;\r\n\t\t\tif (carts !== null && carts.length > 0) {\r\n\t\t\t\treturn (carts as any[]).sort((a, b) => a.name.localeCompare(b.name));\r\n\t\t\t} else {\r\n\t\t\t\treturn carts;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate get savedCartsExist(): boolean {\r\n\t\t\treturn this.availableSavedCarts != null && this.availableSavedCarts.length > 0;\r\n\t\t}\r\n\r\n\t\tprivate async loadSavedCarts() {\r\n\t\t\tif (this.$store.state.savedCarts === null) {\r\n\t\t\t\tconst response = await httpClient().get(\"cart/GetCartsOfCustomer\");\r\n\t\t\t\tthis.$store.commit(\"setSavedCarts\", response.data);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n","/* Delivery type of an offer */\r\nexport enum DeliveryType {\r\n NachAufwand = 0,\r\n Post = 1,\r\n LKW = 2\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cart.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cart.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Cart.vue?vue&type=template&id=7a7cabad&scoped=true\"\nimport script from \"./Cart.vue?vue&type=script&lang=ts\"\nexport * from \"./Cart.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a7cabad\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.currentOffer.orderDiscounts.length > 1 && _vm.selectedPriceModel == null)?_c('h1',{staticClass:\"text-h4\"},[_vm._v(\"Wählen Sie Ihr Angebot\")]):_c('h1',{staticClass:\"text-h4\"},[_vm._v(\"Ihr Angebot\")])])],1),_c('v-row',{staticClass:\"pl-3\"},_vm._l((_vm.currentOffer.orderDiscounts),function(discount,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\",\"sm\":12 / _vm.currentOffer.orderDiscounts.length,\"md\":10 / _vm.currentOffer.orderDiscounts.length,\"lg\":8 / _vm.currentOffer.orderDiscounts.length}},[_c('offer-component',{ref:discount.priceModel,refInFor:true,attrs:{\"priceModel\":discount.priceModel},on:{\"selectedChanged\":function($event){return _vm.changeSelection($event)}}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({hover}){return [_c('v-card',{attrs:{\"elevation\":hover || _vm.selected ? 12 : 2}},[_c('v-card-text',[(_vm.currentOffer.orderDiscounts.length > 1)?_c('v-row',{staticStyle:{\"height\":\"96px\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.selected || hover || !_vm.anySelected) && _vm.allowedDates.length > 0),expression:\"(selected || hover || !anySelected) && allowedDates.length > 0\"}],attrs:{\"x-large\":\"\",\"fab\":\"\",\"color\":_vm.selected || (hover && !_vm.anySelected) ? 'accent' : 'auto'},on:{\"click\":function($event){_vm.selected = true; _vm.anySelected=true; _vm.$emit('selectedChanged', _vm.priceModel)}}},[(!_vm.anySelected)?_c('v-icon',[_vm._v(\"mdi-help\")]):_c('v-icon',[_vm._v(\"mdi-check\")])],1),(!_vm.anySelected && _vm.allowedDates.length > 0)?_c('p',[_vm._v(\"Bitte auswählen\")]):_vm._e(),(_vm.allowedDates.length == 0)?_c('p',[_vm._v(\"Aktuell nicht verfügbar\")]):_vm._e()],1)],1):_vm._e(),_c('v-row',[_c('v-col',[_c('v-container',{staticClass:\"ma-0 pa-0\"},[_c('v-row',[(_vm.currentOffer.orderDiscounts.length > 1)?_c('v-col',[_c('h3',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(_vm.priceModel == 0 ? 'Schnelle Lieferung' : 'Günstigster Preis')+\" \")])]):_vm._e(),_c('v-col',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"icon\":\"\",\"title\":\"Angebot als PDF-Dokument herunterladen\"},on:{\"click\":function($event){return _vm.downloadOffer()}}},[_c('v-icon',[_vm._v(\" mdi-printer \")])],1)],1)],1)],1),_c('v-simple-table',{staticClass:\"mb-5 offer\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\" Position \")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\" Preis \")])])]),_c('tbody',[_c('tr',[_c('td',[_vm._v(\" Lieferdatum (ab Werk) \")]),_c('td',{staticClass:\"text-right\"},[_c('v-select',{attrs:{\"items\":_vm.allowedDates,\"menu-props\":\"auto\",\"label\":\"Select\",\"hide-details\":\"\",\"color\":\"accent\",\"no-data-text\":\"Keine Liefertermine verfügbar\",\"prepend-icon\":\"mdi-calendar-range\",\"single-line\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(data.item))+\" \")]}},{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm._f(\"formatDate\")(data.item))+\" \")]}}],null,true),model:{value:(_vm.deliveryDate),callback:function ($$v) {_vm.deliveryDate=$$v},expression:\"deliveryDate\"}})],1)]),_c('tr',[_c('td',[(_vm.amountOfPositionsInCart > 1)?_c('span',[_vm._v(\" \"+_vm._s(_vm.amountOfPositionsInCart)+\" Positionen im Warenkorb \")]):_c('span',[_vm._v(\" Position im Warenkorb \")])]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"round2Decimal\")(_vm.totalOfCartPositions))+\" \"+_vm._s(_vm.waehrung))])]),_c('tr',[_c('td',[_vm._v(\" Auftragsrabatt \"),_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){_vm.isAuftragsrabattDialogVisible = true}}},[_vm._v(\" mdi-help-circle \")])],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"format2Decimal\")(_vm.orderDiscount.discount))+\" \"+_vm._s(_vm.waehrung))])]),_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRampenabholung),expression:\"!isRampenabholung\"}]},[_c('td',[_vm._v(\"Verpackung & Lieferung \"+_vm._s(_vm.lieferArtString))]),_c('td',{staticClass:\"text-right\"},[(_vm.isDeliveryNachAufwand)?_c('span',[_vm._v(\"nach Aufwand\")]):_c('span',[_vm._v(_vm._s(_vm._f(\"format2Decimal\")(_vm.deliveryCost))+\" \"+_vm._s(_vm.waehrung))])])]),(_vm.invoiceCharge > 0)?_c('tr',[_c('td',[_vm._v(\"Rechnung per Post\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"format2Decimal\")(_vm.invoiceCharge))+\" \"+_vm._s(_vm.waehrung))])]):_vm._e(),_c('tr',[_c('td',{staticClass:\"text-subtitle-1\"},[_vm._v(\"Netto\")]),_c('td',{staticClass:\"text-subtitle-1 text-right\"},[_vm._v(_vm._s(_vm._f(\"format2Decimal\")(_vm.nettoOffer))+\" \"+_vm._s(_vm.waehrung))])]),_c('tr',[_c('td',[_vm._v(\"MwSt. (\"+_vm._s(_vm.mwstRatio)+\"%)\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"format2Decimal\")(_vm.mwstCost))+\" \"+_vm._s(_vm.waehrung))])]),_c('tr',[_c('td',{staticClass:\"text-subtitle-1 last\"},[_vm._v(\"Total (inkl. MwSt.)\")]),_c('td',{staticClass:\"text-subtitle-1 text-right last\"},[_vm._v(_vm._s(_vm._f(\"round2Decimal\")(_vm.totalOffer))+\" \"+_vm._s(_vm.waehrung))])])])]},proxy:true}],null,true)}),(_vm.selected)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[(_vm.isDeliveryNachAufwand && _vm.canOrderDirectly && !_vm.isRampenabholung)?_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_vm._v(\"Ich bin mir bewusst, dass zusätzliche Kosten für Verpackung & Lieferung entstehen\")]),_c('v-icon',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isNachAufwandDialogVisible = true}}},[_vm._v(\" mdi-help-circle \")])]},proxy:true}],null,true),model:{value:(_vm.acceptedNachAufwand),callback:function ($$v) {_vm.acceptedNachAufwand=$$v},expression:\"acceptedNachAufwand\"}}):_vm._e(),(_vm.canOrderDirectly)?_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_vm._v(\"Ich bin mit den \"),_c('strong',[_vm._v(\"AGB\")]),_vm._v(\" einverstanden\")]),_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.navigateToAgb()}}},[_vm._v(\" mdi-help-circle \")])]},proxy:true}],null,true),model:{value:(_vm.acceptedAGB),callback:function ($$v) {_vm.acceptedAGB=$$v},expression:\"acceptedAGB\"}}):_vm._e(),(_vm.canOrderDirectly)?_c('v-btn',{staticClass:\"mt-3 blexon-button\",attrs:{\"disabled\":!_vm.readyToBuy || _vm.isLoading,\"title\":\"Angebot kostenpflichtig bestellen\"},on:{\"click\":function($event){return _vm.createOrder(false)}}},[(_vm.isLoading)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Kaufen \")],1):_vm._e(),(_vm.canOrderIndirectly && !_vm.canOrderDirectly)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":!_vm.readyToBuy || _vm.isLoading,\"title\":\"Die Bestellung wird an die verantwortliche Person in Ihrer Organisation zur Freigabe weitergeleitet.\"},on:{\"click\":function($event){return _vm.createOrder(true)}}},[(_vm.isLoading)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" Bestellung beantragen \")],1):_vm._e(),(_vm.isOfferTimerZero)?_c('p',{staticClass:\"mb-0 text-caption red--text\"},[_vm._v(\"- Der Angebotstimer ist abgelaufen\")]):_vm._e(),(_vm.offerInvalidForCartUpdate)?_c('p',{staticClass:\"mb-0 text-caption red--text\"},[_vm._v(\" - Das Angebot ist nicht mehr gültig, da ein Artikel im Warenkorb aktualisiert wurde. Bitte berechnen Sie das Angebot neu. \")]):_vm._e(),(!_vm.acceptedAGB && _vm.canOrderDirectly)?_c('p',{staticClass:\"mb-0 text-caption red--text\"},[_vm._v(\"- Die AGBs müssen akzeptiert werden\")]):_vm._e(),(_vm.isDeliveryNachAufwand && !_vm.acceptedNachAufwand && _vm.canOrderDirectly && !_vm.isRampenabholung)?_c('p',{staticClass:\"mb-0 text-caption red--text\"},[_vm._v(\" - Die Lieferkosten nach Aufwand müssen akzeptiert werden \")]):_vm._e(),(!_vm.isDeliveryDateValid)?_c('p',{staticClass:\"mb-0 text-caption red--text\"},[_vm._v(\"- Es muss ein Lieferdatum ausgewählt werden\")]):_vm._e()],1)],1)],1):_vm._e()],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isAuftragsrabattDialogVisible),callback:function ($$v) {_vm.isAuftragsrabattDialogVisible=$$v},expression:\"isAuftragsrabattDialogVisible\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Wann erhalte ich Auftragsrabatt?\")]),_c('v-card-text',[_vm._v(\" Bei der Berechnung eines Angebots werden alle darin enthalten Positionen berücksichtigt und es wird ein Auftragsrabatt kalkuliert.\"),_c('br'),_c('br'),_vm._v(\" Folgende Faktoren führen zu einer \"),_c('b',{staticStyle:{\"color\":\"#AA6200\"}},[_vm._v(\"Preisreduktion:\")]),_c('ul',[_c('li',[_vm._v(\"Mehrere Artikel aus dem gleichen Rohmaterial (gleicher Werkstoff und gleiche Blechdicke)\")]),_c('li',[_vm._v(\"Mehrere Artikel mit den gleichen Bearbeitungen (Gewinde, Senkungen und Durchzüge) in gleichem Rohmaterial\")]),_c('li',[_vm._v(\"Mehrere Artikel mit gleicher Pulverbeschichtung (gleiches Pulver)\")])])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isAuftragsrabattDialogVisible = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isNachAufwandDialogVisible),callback:function ($$v) {_vm.isNachAufwandDialogVisible=$$v},expression:\"isNachAufwandDialogVisible\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Transport nach Aufwand\")]),_c('v-card-text',[_c('p',[_vm._v(\"Wir berechnen die Kosten für Verpackung und Versand per Post- oder LKW wenn möglich automatisch.\"),_c('br'),_vm._v(\" Auf Sperrgutversand per Post verzichten wir bewusst, da der Verpackungsaufwand bei dieser Versandart meistens unverhältnismässig hoch ist.\"),_c('br'),_vm._v(\" Grosse und/oder schwere Teile werden per LKW geliefert. Hier ist eine automatische Berechnung im Voraus nicht immer möglich.\")]),_c('p',[_vm._v(\"Der Preis ist abhängig vom Verpackungsaufwand, der Distanz zum Lieferort, dem Gewicht der Teile und von der Abmessung aller Teile der gesamten Lieferung.\"),_c('br'),_vm._v(\" Bei grossen Teilen (grösser als eine Europalette) fällt die Abmessung preislich sehr ins Gewicht. Die Lieferung wird mit jedem zusätzlichen Zentimeter teurer. Gleichzeitig ist es sehr schwierig, automatisch zu berechnen, wie sich Biegeteile stapeln lassen und welche Verpackung notwendig ist, um einen sicheren Transport zu gewährleisten.\")]),_c('p',[_c('strong',[_vm._v(\"Wir berechnen ihnen deshalb bei Lieferungen nach Aufwand den tatsächlichen Betrag, welcher unser Spediteur gemäss Tarif ASTAG verlangt. Zusätzlich berechnen wir den Zeitaufwand für das Verpacken auf die Minute genau.\"),_c('br')]),_vm._v(\" Sie können davon ausgehen, dass eine Lieferung per LKW nach Aufwand in der Regel zwischen \"+_vm._s(_vm.waehrung)+\" 100.- und 200.- zu liegen kommt.\"),_c('br'),_vm._v(\" Bei sehr grossen Sendungen, z.B. mehrere Europaletten oder grossflächigen Sendungen (Länge x Breite > 200cm x 100cm), kann der Preis höher ausfallen. Kontaktieren Sie im Zweifelsfall unser Helpdesk auf \"),_c('a',{attrs:{\"href\":\"mailto:info@blexon.com\"}},[_vm._v(\"info@blexon.com\")])]),_c('p',[_vm._v(\"Wir sind uns bewusst, dass es für unsere Kunden wichtig ist, den Endpreis, inklusive aller Kosten, vor der Bestellung zu kennen. Technische Limitationen machen das im Moment in gewissen Fällen unmöglich. Wir haben uns bewusst gegen eine Pauschale entschieden, weil wir überzeugt sind, mit dieser Regelung eine transparentere und kosteneffizientere Lösung, welche der Realität entspricht, zu bieten.\")])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isNachAufwandDialogVisible = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isOrderFailedDialogVisible),callback:function ($$v) {_vm.isOrderFailedDialogVisible=$$v},expression:\"isOrderFailedDialogVisible\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Bestellung fehlgeschlagen\")]),_c('v-card-text',[_vm._v(\" Während dem Bestellvorgang ist ein Fehler aufgetreten.\"),_c('br'),_vm._v(\" Kontaktieren Sie für Unterstützung unser Helpdesk auf \"),_c('a',{attrs:{\"href\":\"mailto:info@blexon.com\"}},[_vm._v(\"info@blexon.com\")])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isOrderFailedDialogVisible = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1)],1)],1)],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { PriceModel } from '@/dtos/priceModel';\r\nimport { AddressDto } from './addressDto';\r\n\r\nexport class OrderRequestDto{\r\n public customerId: number = 0;\r\n public deliveryAddress: AddressDto = new AddressDto();\r\n public invoiceAddress: AddressDto = new AddressDto();\r\n public calculationId: number = 0;\r\n public selectedManufacturerId: number = 0;\r\n public rampenabholung: boolean = false;\r\n public dueDate: Date = new Date();\r\n public kommission: string = '';\r\n public priceModel: PriceModel = PriceModel.Standard;\r\n public additionalOrderConfirmationEmail: string = '';\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-card',[_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Lieferart \")]),_c('v-card-text',[_c('p',[_vm._v(\"Auf welchem Weg möchten Sie die Blechteile zugestellt bekommen?\")]),_c('div',[(_vm.isAdmin)?_c('span',[_vm._v(\"Hergestellt von: \"+_vm._s(_vm.selectedFertigerName)),_c('br')]):_vm._e(),_c('v-radio-group',{attrs:{\"hide-details\":\"\"},model:{value:(_vm.deliveryChoice),callback:function ($$v) {_vm.deliveryChoice=$$v},expression:\"deliveryChoice\"}},[_c('v-radio',{attrs:{\"color\":\"accent\",\"value\":\"delivery\",\"label\":\"Geliefert (1-2 Tage ab Lieferdatum)\"}}),_c('v-radio',{attrs:{\"color\":\"accent\",\"value\":\"rampe\",\"label\":\"Rampenabholung (unverpackt)\"}})],1)],1),(_vm.isRampenabholung)?_c('div',{staticClass:\"ml-10 my-0\"},[(_vm.areFertigerAddressesLoading)?_c('v-progress-circular',{attrs:{\"color\":\"accent\",\"indeterminate\":\"\"}}):(_vm.isFertigerAddressesLoadingFailed)?_c('p',[_vm._v(\" Die Fertiger konnten nicht geladen werden. \")]):_c('v-radio-group',{attrs:{\"hide-details\":\"\"},model:{value:(_vm.rampeManufacturerId),callback:function ($$v) {_vm.rampeManufacturerId=$$v},expression:\"rampeManufacturerId\"}},[_c('v-radio',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"value\":\"-1\",\"label\":\"invisible\"}}),_vm._l((_vm.manufacturingOffers),function(fertiger,index){return _c('v-row',{key:index},[_c('v-radio',{attrs:{\"color\":\"accent\",\"label\":_vm.getFertigerTownById(fertiger.manufacturerId),\"value\":fertiger.manufacturerId,\"disabled\":!_vm.isRampenabholungAvailable(fertiger.manufacturerId)}}),_c('div',{staticClass:\"ml-2\"},[(_vm.isRampenabholungAvailable(fertiger.manufacturerId))?_c('v-icon',{on:{\"click\":function($event){return _vm.openManufacturerAddressDialog(fertiger)}}},[_vm._v(\" mdi-map-marker-radius \")]):_c('v-icon',{on:{\"click\":function($event){_vm.isManufacturerNotPossibleDialogVisible = true}}},[_vm._v(\" mdi-information-outline \")])],1)],1)})],2)],1):_vm._e(),_c('div',[(!_vm.isValidSelection)?_c('span',{staticClass:\"red--text\"},[_vm._v(\"Bitte wählen Sie einen Standort für die Rampenabholung.\")]):_vm._e()])])],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isManufacturerAddressDialogVisible),callback:function ($$v) {_vm.isManufacturerAddressDialogVisible=$$v},expression:\"isManufacturerAddressDialogVisible\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Adresse für Rampenabholung\")]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.currentFertigerAddress.companyname)),_c('br'),_vm._v(\" \"+_vm._s(_vm.currentFertigerAddress.street)),_c('br'),_vm._v(\" \"+_vm._s(_vm.currentFertigerAddress.zip)+\" \"+_vm._s(_vm.currentFertigerAddress.town)),_c('br'),_vm._v(\" Tel.: \"+_vm._s(_vm.currentFertigerAddress.deliveryPhoneNumber)+\" \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isManufacturerAddressDialogVisible = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isManufacturerNotPossibleDialogVisible),callback:function ($$v) {_vm.isManufacturerNotPossibleDialogVisible=$$v},expression:\"isManufacturerNotPossibleDialogVisible\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Rampenabholung nicht möglich\")]),_c('v-card-text',[_vm._v(\" Die Abholung dieser Bestellung ist bei diesem Fertigungspartner leider nicht möglich. Es kann sein, dass dieser Fertigungspartner keine Rampenabholung anbietet, oder dass ein Material oder eine Bearbeitung nicht verfügbar ist. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isManufacturerNotPossibleDialogVisible = false}}},[_vm._v(\" Schliessen \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class FertigerAddressDto{\r\n public manufacturerId: number = 0;\r\n public companyname: string = '';\r\n public street: string = '';\r\n public zip: string = '';\r\n public town: string = '';\r\n public deliveryPhoneNumber: string = '';\r\n public ticketEMail: string = '';\r\n public technicalEMail: string = '';\r\n public generalEMail: string = '';\r\n public isRampenabholungAvailable: boolean = true;\r\n}","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { FertigerAddressDto } from '@/dtos/fertigerAddressDto';\r\nimport httpClient from '@/store/httpClient';\r\n\r\n@Component({})\r\nexport default class Offer extends Vue {\r\n private areFertigerAddressesLoading: boolean = false;\r\n private isFertigerAddressesLoadingFailed: boolean = false;\r\n private manufacturerAddresses: FertigerAddressDto[] = [];\r\n private isManufacturerAddressDialogVisible: boolean = false;\r\n private isManufacturerNotPossibleDialogVisible: boolean = false;\r\n private currentFertigerAddress: FertigerAddressDto = new FertigerAddressDto();\r\n private rampeManufacturerId: number = -1;\r\n\r\n private mounted() {\r\n this.loadFertigerAddresses();\r\n this.setRampenabholungState();\r\n }\r\n\r\n @Watch('rampeManufacturerId')\r\n private onRampeSelectionChanged() {\r\n if (this.rampeManufacturerId > -1) {\r\n this.selectedManufacturerId = this.rampeManufacturerId;\r\n }\r\n }\r\n\r\n private async loadFertigerAddresses(){\r\n try {\r\n this.isFertigerAddressesLoadingFailed = false;\r\n this.areFertigerAddressesLoading = true;\r\n const response = await httpClient()\r\n .get('manufacturer/GetManufacturerAddresses?regionId=' + this.$store.state.customer.regionId);\r\n this.manufacturerAddresses = response.data;\r\n } catch(err) {\r\n console.log(`Fertigeradressen konnten nicht geladen werden. ${err}`);\r\n this.isFertigerAddressesLoadingFailed = true;\r\n } finally {\r\n this.areFertigerAddressesLoading = false; \r\n }\r\n }\r\n\r\n private get selectedManufacturerId() {\r\n return this.$store.state.offer.selectedManufacturerId;\r\n }\r\n private set selectedManufacturerId(manufacturerId: number){\r\n this.$store.commit('changeSelectedManufacturer', manufacturerId);\r\n this.setRampenabholungState();\r\n }\r\n \r\n private get deliveryChoice() {\r\n return this.$store.state.offer.deliveryChoice;\r\n }\r\n private set deliveryChoice(value: string) {\r\n this.$store.dispatch('setOfferDeliveryChoice', value);\r\n if (!this.isRampenabholung) {\r\n this.rampeManufacturerId = -1;\r\n }\r\n this.setRampenabholungState();\r\n }\r\n\r\n private get isRampenabholung(): boolean {\r\n return this.deliveryChoice === 'rampe';\r\n }\r\n\r\n private get manufacturingOffers() {\r\n return this.$store.state.offer.manufacturingOffers;\r\n }\r\n \r\n private get isValidSelection() {\r\n return this.$store.state.rampenabholungSelectionValid;\r\n }\r\n\r\n private get selectedFertigerName() {\r\n var address = this.manufacturerAddresses\r\n .find((addr: FertigerAddressDto) => addr.manufacturerId === this.selectedManufacturerId);\r\n if (address === undefined) {\r\n return this.selectedManufacturerId.toString();\r\n }\r\n return address.companyname;\r\n }\r\n\r\n private get isAdmin() {\r\n return this.$store.state.customer.user.isAdmin;\r\n }\r\n\r\n private setRampenabholungState() {\r\n let state = (!this.isRampenabholung && this.selectedManufacturerId > -1) ||\r\n (this.isRampenabholung && this.rampeManufacturerId > -1 && this.selectedManufacturerId == this.rampeManufacturerId);\r\n this.$store.commit('setRampenabholungSelectionValid', state)\r\n }\r\n \r\n private isRampenabholungAvailable(manufacturerId: any) {\r\n let offer = this.manufacturingOffers.filter((m:any) => m.manufacturerId == manufacturerId)[0];\r\n let fertiger = this.manufacturerAddresses.filter((m:any) => m.manufacturerId == manufacturerId)[0];\r\n if (!offer || !fertiger) return false;\r\n return offer.canProcessTheOrder && fertiger.isRampenabholungAvailable\r\n }\r\n \r\n private getFertigerInfoById(manufacturerId: number) {\r\n var address = this.manufacturerAddresses\r\n .find((addr: FertigerAddressDto) => addr.manufacturerId === manufacturerId);\r\n if (address === undefined) {\r\n return new FertigerAddressDto();\r\n }\r\n return address;\r\n }\r\n\r\n private getFertigerTownById(manufacturerId: number) {\r\n var address = this.getFertigerInfoById(manufacturerId);\r\n return address.town;\r\n }\r\n\r\n private openManufacturerAddressDialog(fertiger: any) {\r\n this.currentFertigerAddress = this.getFertigerInfoById(fertiger.manufacturerId) as FertigerAddressDto;\r\n this.isManufacturerAddressDialogVisible = true;\r\n }\r\n\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Delivery.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Delivery.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Delivery.vue?vue&type=template&id=52ddbee5\"\nimport script from \"./Delivery.vue?vue&type=script&lang=ts\"\nexport * from \"./Delivery.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { OfferDto } from '@/dtos/offerDto';\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport rules from '@/store/rules'\r\nimport { MaterialDto } from '@/dtos/materialDto';\r\nimport { ManufacturingOfferDto } from '@/dtos/manufacturingOfferDto';\r\nimport { OrderRequestDto } from '@/dtos/orderRequestDto';\r\nimport httpClient from '@/store/httpClient';\r\nimport { DeliveryType } from '@/dtos/deliveryType';\r\nimport { PendingOrderDto } from '@/dtos/pendingOrderDto';\r\nimport moment from 'moment';\r\nimport { PriceModel } from '@/dtos/priceModel';\r\nimport Delivery from '@/views/Checkout/Delivery.vue';\r\nimport { OrderDiscountDto } from '@/dtos/orderDiscountDto';\r\n\r\n@Component({\r\n components: {\r\n Delivery\r\n }\r\n})\r\nexport default class Offer extends Vue {\r\n @Prop()\r\n private priceModel!: PriceModel;\r\n private deliveryDate: Date = new Date();\r\n private selected: boolean = false;\r\n private anySelected: boolean = false;\r\n private isLoading: boolean = false;\r\n private isAuftragsrabattDialogVisible: boolean = false;\r\n private isNachAufwandDialogVisible: boolean = false;\r\n private isOrderFailedDialogVisible: boolean = false;\r\n\r\n private mounted() {\r\n this.setFirstDate();\r\n }\r\n\r\n private get isRampenabholung(): boolean {\r\n return this.$store.state.offer.deliveryChoice === 'rampe';\r\n }\r\n private selectedOfferChanged() {\r\n this.selected = false;\r\n this.anySelected = true;\r\n }\r\n\r\n @Watch('allowedDates')\r\n private setFirstDate() {\r\n if (this.allowedDates.length > 0) {\r\n this.deliveryDate = this.allowedDates[0];\r\n }\r\n }\r\n\r\n private async createOrder(requestOnly: boolean){\r\n if (!this.readyToBuy || this.priceModel == null) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n var newOrderId = 0;\r\n var orderRequest = new OrderRequestDto();\r\n orderRequest.customerId = 0; // is set in backend\r\n orderRequest.deliveryAddress = this.$store.state.currentCart.deliveryAddress;\r\n orderRequest.invoiceAddress = this.$store.state.currentCart.invoiceAddress;\r\n orderRequest.calculationId = this.currentOffer.calculationId;\r\n orderRequest.selectedManufacturerId = this.selectedManufacturerId;\r\n orderRequest.rampenabholung = this.isRampenabholung;\r\n orderRequest.dueDate = this.deliveryDate;\r\n orderRequest.kommission = this.customKommissionsnummer;\r\n orderRequest.priceModel = this.priceModel;\r\n orderRequest.additionalOrderConfirmationEmail = this.$store.state.additionalOrderConfirmationEmail;\r\n \r\n try { \r\n this.$store.commit('setLoading', true);\r\n if (requestOnly) {\r\n await httpClient().post('order/SaveOrder', orderRequest);\r\n newOrderId = -1;\r\n } else {\r\n const response = await httpClient().post('order/CreateOrder', orderRequest);\r\n newOrderId = response.data\r\n }\r\n } catch(ex) {\r\n console.error(`Fehler bei der Erstellung der Bestellung. ${ex}`);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n this.$store.commit('setLoading', false);\r\n if (newOrderId > 0 || newOrderId === -1) {\r\n this.$store.commit('setOrderSuccessful', true);\r\n this.$store.dispatch('deletePendingOrdersInCart')\r\n this.$store.dispatch('resetOrderAfterSuccess');\r\n } else {\r\n this.isOrderFailedDialogVisible = true;\r\n }\r\n }\r\n\r\n private async downloadOffer(){\r\n var orderRequest = new OrderRequestDto();\r\n orderRequest.customerId = 0; // is set in backend\r\n orderRequest.deliveryAddress = this.$store.state.currentCart.deliveryAddress;\r\n orderRequest.invoiceAddress = this.$store.state.currentCart.invoiceAddress;\r\n orderRequest.calculationId = this.currentOffer.calculationId;\r\n orderRequest.selectedManufacturerId = this.selectedManufacturerId;\r\n orderRequest.rampenabholung = this.isRampenabholung;\r\n orderRequest.dueDate = this.deliveryDate;\r\n orderRequest.kommission = this.customKommissionsnummer;\r\n orderRequest.priceModel = this.priceModel;\r\n \r\n try { \r\n this.$store.commit('setLoading', true);\r\n const response = await httpClient().post('offer/getOfferAsPdf', orderRequest,\r\n {\r\n responseType: 'blob'\r\n });\r\n\r\n const url = URL.createObjectURL(new Blob([response.data]))\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.download = 'Angebot ' + orderRequest.calculationId + '.pdf'\r\n link.click()\r\n link.remove()\r\n window.URL.revokeObjectURL(url)\r\n\r\n } catch(ex) {\r\n console.error(`Fehler beim Download des Pdf für das Angebot. ${ex}`);\r\n } finally {\r\n this.$store.commit('setLoading', false);\r\n }\r\n \r\n }\r\n\r\n private get readyToBuy() {\r\n // offer timed out\r\n if (this.$store.state.currentCart.hasChanged) return false;\r\n if (this.isOfferTimerZero) return false;\r\n // offer was invalidated because of article updates\r\n if (this.offerInvalidForCartUpdate) return false;\r\n // AGBs are not accepted (this is ok for \"Bestellung beantragen\")\r\n if (!this.acceptedAGB && this.canOrderDirectly) return false;\r\n // offer has delivery \"nach Aufwand\" and the checkbox was not ticked \r\n // and it's not Rampenabholung (this is ok for \"Bestellung beantragen\")\r\n if (this.isDeliveryNachAufwand && !this.acceptedNachAufwand && this.canOrderDirectly && !this.isRampenabholung) return false;\r\n // chosen delivery date is invalid\r\n if (!this.isDeliveryDateValid) return false;\r\n if (this.allowedDates.length <= 0) return false;\r\n // this customer is from a country that is not serviced by Blexon.\r\n // we still want them to be able to see the offers (with discounts)\r\n // but they can't order. The offer-information-component will show an appropriate message.\r\n if (!this.isCountryValidForDelivery) return false;\r\n return true;\r\n }\r\n\r\n private redirectToArticles(){\r\n this.$router.push({ name: 'Catalogue' });\r\n }\r\n\r\n private navigateToAgb() {\r\n window.open('https://blexon.com/agb/', '_blank');\r\n }\r\n\r\n private get canOrderDirectly() {\r\n return this.$store.state.customer.user.canOrderDirectly;\r\n }\r\n private get canOrderIndirectly() {\r\n return this.$store.state.customer.user.canOrderIndirectly;\r\n }\r\n\r\n private get currentOffer() {\r\n return this.$store.state.offer as OfferDto;\r\n }\r\n \r\n private get selectedManufacturerId() {\r\n return this.$store.state.offer.selectedManufacturerId;\r\n }\r\n\r\n private get amountOfPositionsInCart(){\r\n return this.$store.state.currentCart.cartItems.length;\r\n }\r\n private get isBilledDigitally() {\r\n return this.$store.state.currentCart.invoiceAddress.isBilledDigitally;\r\n }\r\n private get isDeliveryNachAufwand() {\r\n return this.currentOffer.deliveryType == DeliveryType.NachAufwand;\r\n }\r\n private get addressString() {\r\n let invoiceAddress = this.$store.state.currentCart.invoiceAddress;\r\n return invoiceAddress.street + ' / ' + invoiceAddress.town;\r\n }\r\n private get lieferArtString() {\r\n if (this.currentOffer.deliveryType == DeliveryType.NachAufwand) {\r\n return \"\"\r\n }\r\n return DeliveryType[this.currentOffer.deliveryType];\r\n }\r\n private get isCountryValidForDelivery() {\r\n return this.$store.getters.customerIsCountryValidForDelivery;\r\n }\r\n\r\n\r\n private get allowedDates() {\r\n const manufacturingOffer = this.$store.state.offer.manufacturingOffers\r\n .find((offer: any) => offer.manufacturerId == this.$store.state.offer.selectedManufacturerId);\r\n const dates = [];\r\n if (manufacturingOffer != undefined) {\r\n const orderDiscount = this.$store.state.offer.orderDiscounts.find((discount: OrderDiscountDto) => discount.priceModel == this.priceModel);\r\n const validFrom = moment().add(orderDiscount.minimalDelayInDays, 'days');\r\n var validTo = moment().add(2, 'year');\r\n if (this.priceModel === PriceModel.Standard) {\r\n const orderDiscountSlow = this.$store.state.offer.orderDiscounts.find((discount: OrderDiscountDto) => discount.priceModel == PriceModel.Slow);\r\n if (orderDiscountSlow != null) {\r\n validTo = moment().add(orderDiscountSlow.minimalDelayInDays - 1, 'days');\r\n }\r\n }\r\n for (const datum of manufacturingOffer.datesOfDelivery) {\r\n if (moment(datum).isAfter(validFrom) && moment(datum).isBefore(validTo)) {\r\n dates.push(datum);\r\n }\r\n }\r\n }\r\n return dates;\r\n }\r\n\r\n private get isOfferTimerZero() {\r\n return this.$store.state.offerValidTimerSeconds <= 0;\r\n }\r\n private get isDeliveryDateValid() {\r\n return this.deliveryDate !== null && this.deliveryDate !== undefined;\r\n }\r\n private get customKommissionsnummer(){\r\n return this.$store.state.offer.customKommissionsnummer;\r\n }\r\n private set customKommissionsnummer(value: string){\r\n this.$store.commit('setCustomKommissionsnummer', value);\r\n }\r\n\r\n private get acceptedNachAufwand(){\r\n return this.$store.state.acceptedNachAufwand;\r\n }\r\n private set acceptedNachAufwand(value: string){\r\n this.$store.commit('setAcceptedNachAufwand', value);\r\n }\r\n\r\n private get acceptedAGB(){\r\n return this.$store.state.acceptedAGB;\r\n }\r\n private set acceptedAGB(value: string){\r\n this.$store.commit('setAcceptedAGB', value);\r\n }\r\n\r\n private get wasOrderedSuccessful() {\r\n return this.$store.state.orderSuccessful;\r\n }\r\n private get pendingOrders() {\r\n return this.$store.state.pendingOrders;\r\n }\r\n private getLabelForPendingOrder(pendingOrder: PendingOrderDto) {\r\n return `Offene Bestellung vom ${moment(String(pendingOrder.requestedAt)).format('DD.MM.YYYY')} von ` +\r\n `${pendingOrder.requestedByFirstname} ${pendingOrder.requestedByLastname}`\r\n }\r\n \r\n // ANGEBOT CALCULATIONS\r\n private get waehrung() {\r\n return this.$store.getters.waehrung;\r\n }\r\n private get totalOfCartPositions() {\r\n return this.$store.getters.totalOfAllItemsInCart;\r\n }\r\n private get orderDiscount() {\r\n return this.$store.getters.orderDiscount(this.priceModel);\r\n }\r\n private get mwstRatio() {\r\n if (this.isDeliveryDateValid) {\r\n return this.$store.getters.mwstRatio(this.deliveryDate);\r\n }\r\n return \"N/A\";\r\n }\r\n private get mwstCost() {\r\n if (this.isDeliveryDateValid) {\r\n return this.$store.getters.costMwst(this.priceModel, this.deliveryDate);\r\n }\r\n return \"N/A\";\r\n }\r\n private get deliveryCost() {\r\n return this.$store.getters.deliveryCost;\r\n }\r\n private get invoiceCharge() {\r\n return this.$store.getters.invoiceCharge;\r\n }\r\n private get nettoOffer() {\r\n return this.$store.getters.nettoOffer(this.priceModel);\r\n }\r\n private get totalOffer() {\r\n if (this.isDeliveryDateValid) {\r\n return this.$store.getters.totalOffer(this.priceModel, this.deliveryDate);\r\n }\r\n return \"N/A\";\r\n }\r\n\r\n // VALIDATION\r\n private get offerInvalidForCartUpdate() {\r\n return this.$store.state.offerInvalidForCartUpdate;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Offer.vue?vue&type=template&id=67378591\"\nimport script from \"./Offer.vue?vue&type=script&lang=ts\"\nexport * from \"./Offer.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Offer.vue?vue&type=style&index=0&id=67378591&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { OfferDto } from '@/dtos/offerDto';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { PriceModel } from '@/dtos/priceModel';\r\nimport OfferComponent from '@/views/Checkout/Offer.vue';\r\n\r\n@Component({\r\n components: {\r\n OfferComponent\r\n }\r\n})\r\nexport default class SummaryComponent extends Vue {\r\n\r\n private selectedPriceModel: PriceModel | null = null;\r\n\r\n private mounted() {\r\n if (this.currentOffer && this.currentOffer.orderDiscounts.length == 1) {\r\n // Wenn es nur ein Angebot gibt, muss das ausgewählt werden.\r\n ///@ts-ignore\r\n this.$refs[this.currentOffer.orderDiscounts[0].priceModel][0].selected = true;\r\n ///@ts-ignore\r\n this.$refs[this.currentOffer.orderDiscounts[0].priceModel][0].anySelected = true;\r\n this.selectedPriceModel = this.currentOffer.orderDiscounts[0].priceModel;\r\n }\r\n }\r\n\r\n /**\r\n * Eventhandler wenn ein Angebot ausgewählt wird.\r\n * Wählt alle anderen Angebote ab und teilt ihnen mit\r\n * dass es jetzt ein ausgewähltes Angebot gibt.\r\n */\r\n private changeSelection(priceModel: PriceModel) {\r\n this.selectedPriceModel = priceModel;\r\n for (const discount of this.currentOffer.orderDiscounts) {\r\n // Alle anderen werden deselektiert.\r\n if (discount.priceModel != priceModel) {\r\n ///@ts-ignore\r\n this.$refs[discount.priceModel][0].selectedOfferChanged();\r\n }\r\n }\r\n }\r\n\r\n private get currentOffer() {\r\n return this.$store.state.offer as OfferDto;\r\n }\r\n \r\n}\r\n","export enum OfferFailReason {\r\n\tNone = 0,\r\n\tNoFertigerCanProduce = 1,\r\n\tNoFertigerHasDeliveryDate = 2,\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Summary.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Summary.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Summary.vue?vue&type=template&id=4c7edae5&scoped=true\"\nimport script from \"./Summary.vue?vue&type=script&lang=ts\"\nexport * from \"./Summary.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c7edae5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.offerCalculating)?_c('v-row',[_c('v-col',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"50\",\"color\":\"accent\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Ihr Angebot wird berechnet...\"),_c('br'),_c('br'),_vm._v(\" Lieferkosten und Liefertermine werden mit den Fertigungspartnern bestimmt.\"),_c('br'),_vm._v(\" Bei vielen Positionen kann das ein bis zwei Minuten dauern. \")])])],1)],1)],1)],1):(_vm.wasOrderedSuccessfully)?_c('v-row',[_c('v-col',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-icon',{attrs:{\"x-large\":\"\",\"color\":\"accent\"}},[_vm._v(\"mdi-check-decagram\")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[(_vm.canOrderDirectly)?_c('p',[_c('strong',[_vm._v(\"Vielen Dank für Ihre Bestellung.\")]),_c('br'),_vm._v(\" Sie können den Status des Auftrags von nun an in der Bestellübersicht einsehen. Ebenfalls werden sie in Kürze eine Bestätigungsemail erhalten. \")]):_c('p',[_c('strong',[_vm._v(\"Vielen Dank für Ihren Auftrag.\")]),_c('br'),_vm._v(\" Die verantwortlichen Personen in Ihrer Organisation werden in Kürze per E-Mail über Ihren Auftrag informiert. Diese Personen können die Bestellung, bei Bedarf, anpassen und anschliessend freigeben. Sobald Ihr Bedarf bestellt wurde, können Sie den Status des Auftrags in der Bestellübersicht einsehen. Ebenfalls erhalten Sie dann eine Bestätigungsemail. \")])])],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Navigiert zum Artikelkatalog.\"},on:{\"click\":function($event){return _vm.redirectToArticles()}}},[_vm._v(\" Zu meinen Artikeln \")])],1)],1)],1)],1)],1):(!_vm.isCountryValidForDelivery)?_c('v-row',[_c('v-col',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-icon',{attrs:{\"x-large\":\"\",\"color\":\"accent\"}},[_vm._v(\"mdi-alert-decagram\")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Angebot nicht möglich\"),_c('br'),_c('br'),_vm._v(\" Leider beliefern wir zur Zeit noch keine Kunden in Ihrem Land.\"),_c('br'),_vm._v(\" Sobald sich das ändert, werden wir Sie per Newsletter informieren. \")])])],1)],1)],1)],1):(_vm.offerFailed)?_c('v-row',[_c('v-col',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-icon',{attrs:{\"x-large\":\"\",\"color\":\"accent\"}},[_vm._v(\"mdi-alert-decagram\")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[(_vm.noFertigerCanProduce)?_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Es können nicht alle Positionen des Warenkorbs an einem einzigen Standort produziert werden,\"),_c('br'),_vm._v(\" da sich Rohmaterialien und/oder Bearbeitungen ausschliessen.\"),_c('br'),_vm._v(\" In der Regel kann der Auftrag gefertigt werden, wenn die Positionen entsprechend aufgeteilt werden.\"),_c('br'),_vm._v(\" Unser Helpdesk sucht nach einer geeigneten Aufteilung für Ihren Warenkorb und wird Sie unter \"+_vm._s(_vm.userEmail)+\" informieren.\"),_c('br'),_vm._v(\" Bitte entschuldigen Sie die Verzögerung. \")]):(_vm.noFertigerHasDeliveryDate)?_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Aufgrund hoher Auslastung konnten keine Liefertermine für Ihren Auftrag gefunden werden.\"),_c('br'),_vm._v(\" Unser Helpdesk wurde bereits informiert und wird sich bei Ihnen melden. \")]):_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Angebot konnte nicht erstellt werden\"),_c('br'),_c('br'),_vm._v(\" Leider ist bei der Erstellung Ihres Angebots ein Fehler aufgetreten.\"),_c('br'),_vm._v(\" Unser Helpdesk wurde darüber informiert und meldet sich baldmöglichst bei Ihnen.\"),_c('br'),_vm._v(\" Bei Fragen kontaktieren Sie bitte unser Helpdesk auf \"),_c('a',{attrs:{\"href\":\"mailto:info@blexon.com\"}},[_vm._v(\"info@blexon.com\")])])])],1)],1)],1)],1):(_vm.currentOffer != null)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\" \"+_vm._s(_vm.currentOffer.orderDiscounts.length > 1 ? 'Ihre Angebote sind ' : 'Ihr Angebot ist')+\" 15 Minuten lang gültig. Nach Ablauf der Gültigkeit können Sie eine Neuberechnung starten. \")]),(_vm.validTimerSeconds > 0 && !_vm.offerInvalidForCartUpdate)?_c('v-progress-linear',{staticClass:\"mb-2\",attrs:{\"value\":_vm.validTimerPercent,\"color\":\"accent\",\"height\":\"25\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ value }){return [_c('span',[_c('strong',[_vm._v(_vm._s(Math.ceil(value))+\"% - \"+_vm._s(_vm._f(\"format2Digits\")((Math.floor(_vm.validTimerSeconds / 60))))+\"min \"+_vm._s(_vm._f(\"format2Digits\")((_vm.validTimerSeconds % 60)))+\"sec\")])])]}}],null,false,992231459)}):_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Berechnet das Angebot erneut.\"},on:{\"click\":function($event){return _vm.$emit('recalculate-offer')}}},[_vm._v(\" Neu berechnen \")])],1)],1):_c('v-row',[_c('v-col',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-icon',{attrs:{\"x-large\":\"\",\"color\":\"accent\"}},[_vm._v(\"mdi-alert-decagram\")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" Angebot konnte nicht erstellt werden\"),_c('br'),_c('br'),_vm._v(\" Leider ist bei der Erstellung Ihres Angebots ein Fehler aufgetreten.\"),_c('br'),_vm._v(\" Kontaktieren Sie bitte unser Helpdesk auf \"),_c('a',{attrs:{\"href\":\"mailto:info@blexon.com\"}},[_vm._v(\"info@blexon.com\")])])])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { OfferDto } from '@/dtos/offerDto';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { ManufacturingOfferDto } from '@/dtos/manufacturingOfferDto';\r\nimport { OfferFailReason } from '@/dtos/offerFailReason';\r\n\r\n@Component({\r\n components: {\r\n }\r\n})\r\nexport default class SummaryComponent extends Vue {\r\n private get isCartEmpty() {\r\n return this.$store.getters.amountOfItemsInCart <= 0;\r\n }\r\n private get offerFailed() {\r\n return this.$store.state.offerFailed;\r\n }\r\n private get currentOffer() {\r\n return this.$store.state.offer as OfferDto;\r\n }\r\n private get offerFailReason() {\r\n return this.$store.state.offerFailReason as OfferFailReason;\r\n }\r\n private get isCountryValidForDelivery() {\r\n return this.$store.getters.customerIsCountryValidForDelivery;\r\n }\r\n private get offerCalculating() {\r\n return this.$store.state.currentOfferCalculating;\r\n }\r\n private get wasOrderedSuccessfully() {\r\n return this.$store.state.orderSuccessful;\r\n }\r\n private get offerHasNoValidManufacturingOffers() {\r\n if (this.currentOffer !== null && (this.currentOffer.manufacturingOffers.length <= 0\r\n || this.currentOffer.manufacturingOffers.every((o: ManufacturingOfferDto) => o.canProcessTheOrder === false))) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n private get offerHasNoFailedState() {\r\n console.log(this.offerFailReason);\r\n return this.offerFailReason == OfferFailReason.None;\r\n }\r\n private get noFertigerCanProduce() {\r\n return this.offerFailReason == OfferFailReason.NoFertigerCanProduce;\r\n }\r\n private get noFertigerHasDeliveryDate() {\r\n return this.offerFailReason == OfferFailReason.NoFertigerHasDeliveryDate;\r\n }\r\n private redirectToArticles(){\r\n this.$router.push({ name: 'Catalogue' });\r\n }\r\n\r\n private get validTimerSeconds(){\r\n return this.$store.state.offerValidTimerSeconds;\r\n }\r\n private get validTimerPercent(){\r\n let percent = (this.$store.state.offerValidTimerSeconds / this.$store.state.offerValidTimerTotalSeconds) * 100;\r\n return percent;\r\n }\r\n private get offerInvalidForCartUpdate() {\r\n return this.$store.state.offerInvalidForCartUpdate;\r\n } \r\n private get canOrderDirectly() {\r\n return this.$store.state.customer.user.canOrderDirectly;\r\n }\r\n\r\n private get userEmail() {\r\n if (this.$store.state.oidc !== undefined) {\r\n return this.$store.state.oidc.user.profile.name;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferInformation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferInformation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./OfferInformation.vue?vue&type=template&id=d32a65b0\"\nimport script from \"./OfferInformation.vue?vue&type=script&lang=ts\"\nexport * from \"./OfferInformation.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-container',{staticClass:\"addressTile\",class:{'elevation-10' : hover},staticStyle:{\"position\":\"relative\"},style:(_vm.address.isValid ? '' : 'border:2px solid red;')},[_c('v-row',{staticClass:\"ma-0 mb-3 text-h6\",attrs:{\"align\":\"center\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-map-marker\")]),(_vm.hasName)?_c('span',[_vm._v(\" \"+_vm._s(_vm.address.givenName)+\" \"+_vm._s(_vm.address.surname)+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.address.companyName)+\" \")])],1),(_vm.hasName && _vm.address.companyName !== '')?_c('v-row',{staticClass:\"ma-0 mb-2\"},[_vm._v(\" \"+_vm._s(_vm.address.companyName)+\" \")]):_vm._e(),_c('v-row',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.address.street)+\" \")]),_c('v-row',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.address.zip)+\" \"+_vm._s(_vm.address.town)+\" \")]),_c('v-row',{staticClass:\"ma-0 mb-2\"},[_vm._v(\" \"+_vm._s(_vm.address.country)+\" \")]),(_vm.address.type == _vm.deliveryType)?_c('v-row',{staticClass:\"ma-0 mb-2\"},[_vm._v(\" Lieferungsavisierung: \"+_vm._s(_vm.address.phone)+\" \")]):_c('v-row',{staticClass:\"ma-0 mb-2\"},[_vm._v(\" \"+_vm._s(_vm.address.eMail)+\" \")]),(_vm.address.type == _vm.invoiceType)?_c('v-row',{staticClass:\"ma-0\"},[_c('span',[_vm._v(\"Rechnung wird per \"),_c('strong',[_vm._v(_vm._s(_vm.address.isBilledDigitally ? 'E-Mail' : 'Post'))]),_vm._v(\" versendet\")])]):_vm._e(),(_vm.isOrder)?_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"disabled\":!_vm.address.isValid,\"small\":\"\",\"absolute\":\"\",\"bottom\":\"\",\"left\":\"\"},on:{\"click\":function($event){return _vm.setAddressForOrder()}}},[_vm._v(\" Übernehmen \")]):_vm._e(),((_vm.isUserPreferred || hover) && _vm.isNotOrder)?_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mt-8 black--text\",attrs:{\"fab\":\"\",\"x-small\":\"\",\"color\":_vm.isUserPreferred ? 'accent' : '',\"absolute\":\"\",\"top\":\"\",\"right\":\"\"},on:{\"click\":function($event){!_vm.isUserPreferred ? _vm.changeUserPreferred() : null}}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-star\")])],1)]}}],null,true)},[(_vm.isUserPreferred)?_c('span',[_vm._v(\"Diese Adresse ist bereits als Favorit markiert und wird bei Bestellungen für Sie vorgewählt.\")]):_c('span',[_vm._v(\"Als Favorit wählen. Diese Adresse wird bei Bestellungen für Sie vorgewählt.\")])]):_vm._e(),(hover)?_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mb-9 blexon-button\",attrs:{\"fab\":\"\",\"small\":\"\",\"disabled\":!_vm.canEditAddress,\"absolute\":\"\",\"bottom\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.openEditDialog()}}},on),[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)]}}],null,true)},[(!_vm.canEditAddress)?_c('span',[_vm._v(\"Berechtigung zum Bearbeiten der Adresse nicht vorhanden\")]):_c('span',[_vm._v(\"Adresse bearbeiten\")])]):_vm._e(),(hover && _vm.isNotOrder)?_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mb-9 mr-12 blexon-button\",attrs:{\"fab\":\"\",\"small\":\"\",\"disabled\":!_vm.canEditAddress || _vm.isLastAddress,\"absolute\":\"\",\"bottom\":\"\",\"right\":\"\"},on:{\"click\":function($event){_vm.deleteAddressDialog = true}}},on),[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)]}}],null,true)},[(!_vm.canEditAddress)?_c('span',[_vm._v(\"Berechtigung zum Löschen der Adresse nicht vorhanden\")]):_c('span',[_vm._v(\"Adresse löschen\")])]):_vm._e(),_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"500\"},model:{value:(_vm.editAddressDialog),callback:function ($$v) {_vm.editAddressDialog=$$v},expression:\"editAddressDialog\"}},[_c('change-address',{attrs:{\"address\":_vm.currentEditAddress,\"addressType\":_vm.type,\"newAddress\":false},on:{\"closedDialog\":_vm.closeEditDialogAndReload}})],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.deleteAddressDialog),callback:function ($$v) {_vm.deleteAddressDialog=$$v},expression:\"deleteAddressDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Adresse löschen\")]),_c('v-card-text',[_vm._v(\" Sind Sie sicher, dass Sie die Adresse löschen wollen? \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.deleteAddressDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"title\":\"Löscht die Adresse endgültig.\"},on:{\"click\":function($event){return _vm.deleteAddress()}}},[_vm._v(\" Löschen \")])],1)],1)],1)],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport httpClient from '@/store/httpClient';\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport ChangeAddress from '@/views/Settings/ChangeAddress.vue'\r\nimport { ErpAddressType } from '@/dtos/erpAddressType';\r\nimport { AddressType } from '@/dtos/addressType';\r\n\r\n@Component({\r\n components: {\r\n\t\tChangeAddress\r\n }\r\n})\r\nexport default class AddressTile extends Vue {\r\n\t@Prop()\r\n\tprivate propAddress!: AddressDto;\r\n\t@Prop()\r\n\tprivate type!: AddressType;\r\n\t@Prop()\r\n\tprivate isOrder!: boolean;\r\n\tprivate address: AddressDto = new AddressDto();\r\n\tprivate deliveryType: ErpAddressType = ErpAddressType.Delivery;\r\n\tprivate invoiceType: ErpAddressType = ErpAddressType.Invoice;\r\n\tprivate currentEditAddress: AddressDto = new AddressDto();\r\n\tprivate editAddressDialog: boolean = false;\r\n\tprivate deleteAddressDialog: boolean = false;\r\n\tprivate userCanChangeDeliveryAddress: boolean = false;\r\n\tprivate userCanChangeInvoiceAddress: boolean = false;\r\n\r\n private mounted() {\r\n\t\tthis.setRights();\r\n\t\tlet address = JSON.parse(JSON.stringify(this.propAddress));\r\n\t\tthis.address = Object.assign(new AddressDto, address);\r\n }\r\n\r\n\tprivate get hasName() {\r\n\t\treturn this.address.givenName !== '' || this.address.surname !== '';\r\n\t}\r\n\r\n\tprivate get canEditAddress() {\r\n\t\tif (this.address.type == this.deliveryType) {\r\n\t\t\treturn this.userCanChangeDeliveryAddress;\r\n\t\t} \r\n\t\tif (this.address.type == this.invoiceType) {\r\n\t\t\treturn this.userCanChangeInvoiceAddress;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate get isUserPreferred() {\r\n\t\tif (this.address.type == this.deliveryType) {\r\n\t\t\treturn this.$store.getters.userPreferredDeliveryAddress.id === this.address.id;\r\n\t\t} \r\n\t\tif (this.address.type == this.invoiceType) {\r\n\t\t\treturn this.$store.getters.userPreferredInvoiceAddress.id === this.address.id;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate get isNotOrder() {\r\n\t\treturn this.type != AddressType.OrderInvoice && this.type != AddressType.OrderDelivery;\r\n\t}\r\n\r\n\tprivate get isLastAddress() {\r\n\t\tif (this.address.type == this.deliveryType) {\r\n\t\t\treturn this.$store.getters.customerDeliveryAddressCount <= 1;\r\n\t\t} \r\n\t\tif (this.address.type == this.invoiceType) {\r\n\t\t\treturn this.$store.getters.customerInvoiceAddressCount <= 1;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate async setRights() {\r\n\t\tconst deliveryResponse = await httpClient().get('Customer/CanUserChangeDeliveryAddress');\r\n\t\tconst InvoiceResponse = await httpClient().get('Customer/CanUserChangeInvoiceAddress');\r\n this.userCanChangeDeliveryAddress = deliveryResponse.data;\r\n this.userCanChangeInvoiceAddress = InvoiceResponse.data;\r\n\t}\r\n\r\n\tprivate openEditDialog() {\r\n\t\tthis.currentEditAddress = JSON.parse(JSON.stringify(this.address));\r\n\t\tthis.editAddressDialog = true;\r\n\t}\r\n\r\n\tprivate async deleteAddress() {\r\n\t\tawait this.$store.dispatch(\"deleteAddress\", this.address.id);\r\n\t\tthis.$emit(\"removedAddress\", this.address.id);\r\n\t\tthis.deleteAddressDialog = false;\r\n\t}\r\n\r\n\tprivate changeUserPreferred() {\r\n\t\tif (this.isUserPreferred) return;\r\n\t\tconst addressData = {\r\n\t\t\tid: this.address.id,\r\n\t\t\ttype: this.address.type == ErpAddressType.Delivery ? 'delivery' : 'invoice',\r\n\t\t}\r\n\t\tthis.$store.dispatch(\"setAddressAsUserPreferred\", addressData);\r\n\t\tthis.setAddressForOrder();\r\n\t}\r\n\r\n\tprivate setAddressForOrder() {\r\n\t\tswitch (this.address.type) {\r\n\t\t\tcase ErpAddressType.Delivery:\r\n\t\t\t\tthis.$store.commit('setOrderDeliveryAddress', this.address);\r\n\t\t\t\tbreak;\r\n\t\t\tcase ErpAddressType.Invoice:\r\n\t\t\t\tthis.$store.commit('setOrderInvoiceAddress', this.address);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow 'Adresstyp ist ungültig';\r\n\t\t}\r\n\t\tthis.$emit(\"setAddressForOrder\");\r\n\r\n\t}\r\n\r\n\tprivate closeEditDialogAndReload(params: any) {\r\n\t\tlet address: AddressDto = params.address;\r\n\t\tlet changed: boolean = params.changed;\r\n\t\tif (changed) {\r\n\t\t\tlet newAddress = JSON.parse(JSON.stringify(address));\r\n\t\t\tthis.address = Object.assign(new AddressDto, newAddress);\r\n\t\t}\r\n\t\tthis.editAddressDialog = false;\r\n\t}\r\n\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressTile.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressTile.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AddressTile.vue?vue&type=template&id=424a7cea&scoped=true\"\nimport script from \"./AddressTile.vue?vue&type=script&lang=ts\"\nexport * from \"./AddressTile.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AddressTile.vue?vue&type=style&index=0&id=424a7cea&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"424a7cea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.userCanCreateAddresses)?_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"blexon-button\",on:{\"click\":function($event){return _vm.createNewAddress()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_vm._v(\" Neue Adresse erstellen \")],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"wrap\":\"\",\"justify\":\"start\"}},_vm._l((_vm.addresses),function(address){return _c('v-col',{key:address.id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\",\"xl\":\"3\",\"shrink\":\"\"}},[(_vm.addressLoaded)?_c('address-tile',{attrs:{\"type\":_vm.type == _vm.deliveryType ? _vm.customerDeliveryType : _vm.customerInvoiceType,\"propAddress\":address,\"isOrder\":_vm.isOrder},on:{\"removedAddress\":function($event){return _vm.setAddress()},\"setAddressForOrder\":function($event){return _vm.setAddressForOrder()}}}):_vm._e()],1)}),1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"500\"},model:{value:(_vm.newAddressdialog),callback:function ($$v) {_vm.newAddressdialog=$$v},expression:\"newAddressdialog\"}},[_c('change-address',{attrs:{\"address\":_vm.newAddress,\"addressType\":_vm.type == _vm.deliveryType ? _vm.customerDeliveryType : _vm.customerInvoiceType,\"newAddress\":true},on:{\"closedDialog\":_vm.closeEditDialogAndReload}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport httpClient from '@/store/httpClient';\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport AddressTile from '@/views/Settings/AddressTile.vue'\r\nimport ChangeAddress from '@/views/Settings/ChangeAddress.vue'\r\nimport { ErpAddressType } from '@/dtos/erpAddressType';\r\nimport { AddressType } from '@/dtos/addressType';\r\n\r\n@Component({\r\n components: {\r\n\t\tAddressTile,\r\n\t\tChangeAddress,\r\n }\r\n})\r\nexport default class AddressesOverview extends Vue {\r\n\t@Prop()\r\n\tprivate type!: ErpAddressType;\r\n\t@Prop()\r\n\tprivate isOrder!: boolean;\r\n\tprivate addresses: AddressDto[] = [];\r\n\tprivate newAddress: AddressDto = new AddressDto();\r\n\tprivate addressLoaded: boolean = false;\r\n\tprivate deliveryType: ErpAddressType = ErpAddressType.Delivery;\r\n\tprivate invoiceType: ErpAddressType = ErpAddressType.Invoice;\r\n\tprivate customerDeliveryType: AddressType = AddressType.CustomerDelivery;\r\n\tprivate customerInvoiceType: AddressType = AddressType.CustomerInvoice;\r\n\tprivate newAddressdialog: boolean = false;\r\n\tprivate userCanCreateAddresses: boolean = false;\r\n\r\n private async mounted() {\t\t\r\n\t\tthis.setAddress();\r\n\t\tswitch(this.type) {\r\n\t\t\tcase this.deliveryType:\r\n\t\t\t\tconst deliveryResponse = await httpClient().get('Customer/CanUserChangeDeliveryAddress');\r\n\t\t\t\tif(deliveryResponse.data) {\r\n\t\t\t\t\tthis.userCanCreateAddresses = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase this.invoiceType:\r\n\t\t\t\tconst invoiceResponse = await httpClient().get('Customer/CanUserChangeInvoiceAddress');\r\n\t\t\t\tif(invoiceResponse.data) {\r\n\t\t\t\t\tthis.userCanCreateAddresses = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n }\r\n\r\n\tprivate setAddress() {\r\n\t\tlet copyAddresses: AddressDto[] = [];\r\n\t\tswitch(this.type) {\r\n\t\t\tcase this.deliveryType:\r\n\t\t\t\tcopyAddresses = JSON.parse(JSON.stringify(this.$store.state.customer.deliveryAddresses));\r\n\t\t\t\tthis.addresses = copyAddresses;\r\n\t\t\t\tbreak;\r\n\t\t\tcase this.invoiceType:\r\n\t\t\t\tcopyAddresses = JSON.parse(JSON.stringify(this.$store.state.customer.invoiceAddresses));\r\n\t\t\t\tcopyAddresses.forEach((a:AddressDto) => a.isBilledDigitally = a.eMail !== null && a.eMail !== '');\r\n\t\t\t\tthis.addresses = copyAddresses;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.addresses = [];\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthis.addressLoaded = true;\r\n\t}\r\n\r\n\tprivate createNewAddress() {\r\n\t\tif(!this.userCanCreateAddresses) return;\r\n\t\tthis.newAddress = new AddressDto();\r\n\t\tthis.newAddress.customerId = this.$store.getters.customerId;\r\n\t\tthis.newAddress.type = this.type;\r\n\t\tthis.newAddress.country = this.$store.getters.customerDefaultDeliveryAddress.country;\r\n\t\tthis.newAddress.eMail = this.$store.getters.customerDefaultInvoiceAddress.eMail;\r\n\t\tthis.newAddress.isBilledDigitally = true;\r\n\r\n\t\tthis.newAddressdialog = true;\r\n\t}\r\n\r\n\tprivate closeEditDialogAndReload(params: any) {\r\n\t\tlet address: AddressDto = params.address;\r\n\t\tlet changed: boolean = params.changed;\r\n\t\tif (changed) {\r\n\t\t\tthis.setAddress();\r\n\t\t}\r\n\t\tthis.newAddressdialog = false;\r\n\t}\r\n\r\n\tprivate setAddressForOrder() {\r\n\t\tthis.$emit(\"setAddressForOrder\");\r\n\t}\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressesOverview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressesOverview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AddressesOverview.vue?vue&type=template&id=53234462&scoped=true\"\nimport script from \"./AddressesOverview.vue?vue&type=script&lang=ts\"\nexport * from \"./AddressesOverview.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53234462\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport rules from '@/store/rules'\r\nimport httpClient from '@/store/httpClient';\r\nimport Cart from '@/views/Cart/Cart.vue';\r\nimport SummaryComponent from '@/views/Checkout/Summary.vue';\r\nimport DeliveryComponent from '@/views/Checkout/Delivery.vue';\r\nimport OfferInformation from '@/views/Checkout/OfferInformation.vue';\r\nimport AddressTile from '@/views/Settings/AddressTile.vue';\r\nimport AddressesOverview from '@/views/Settings/AddressesOverview.vue'\r\nimport { CartItem } from '@/dtos/cartItem';\r\nimport { AddressType } from '@/dtos/addressType';\r\nimport { OfferDto } from '@/dtos/offerDto';\r\nimport { ErpAddressType } from '@/dtos/erpAddressType';\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport { OfferFailReason } from '@/dtos/offerFailReason';\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\tCart,\r\n\t\tSummaryComponent,\r\n\t\tDeliveryComponent,\r\n\t\tOfferInformation,\r\n\t\tAddressTile,\r\n\t\tAddressesOverview,\r\n\t}\r\n})\r\nexport default class Checkout extends Vue {\r\n\tprivate stepCount: number = 1;\r\n private optionalStringMax35Rule: any = rules.optionalStringMax35Rule;\r\n\tprivate optionalEmailRule: any = rules.optionalEmailRule;\r\n\tprivate orderDeliveryType: AddressType = AddressType.OrderDelivery;\r\n\tprivate orderInvoiceType: AddressType = AddressType.OrderInvoice;\r\n\tprivate addressPickerDialog: boolean = false;\r\n\tprivate currentAddressPickerType: ErpAddressType = ErpAddressType.Delivery;\r\n\tprivate deliveryAddress: AddressDto = new AddressDto();\r\n\tprivate invoiceAddress: AddressDto = new AddressDto();\r\n\tprivate deliveryAddressKey: number = 1;\r\n\tprivate invoiceAddressKey: number = -1;\r\n\tprivate isValidForm: boolean = false;\r\n\r\n\tprivate mounted() {\r\n\t\tthis.refreshAddresses();\r\n\t}\r\n\r\n\tbeforeRouteLeave(to: any, from: any, next: any) {\r\n\t\tthis.$store.commit('setOrderSuccessful', false);\r\n\t\tnext();\r\n\t}\r\n\r\n\tprivate get currentOffer() {\r\n\t\treturn this.$store.state.offer;\r\n\t}\r\n\r\n\tprivate get offerFailed() {\r\n\t\treturn this.$store.state.offerFailed;\r\n\t}\r\n\r\n\tprivate get isCartValid() {\r\n\t\treturn this.$store.getters.isCartValid;\r\n\t}\r\n\r\n\tprivate get hasItemsInCart() {\r\n if (this.$store.state.currentCart === null) {\r\n return false;\r\n }\r\n return this.$store.state.currentCart.cartItems.length > 0;\r\n }\r\n\r\n\t@Watch('refreshCartAddressesToggle')\r\n\tprivate refreshAddressesToggle() {\r\n\t\tif(this.refreshCartAddressesToggle) {\r\n\t\t\tthis.refreshAddresses();\r\n\t\t\tthis.refreshCartAddressesToggle = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get refreshCartAddressesToggle() {\r\n\t\treturn this.$store.state.refreshCartAddresses;\r\n\t}\r\n\tprivate set refreshCartAddressesToggle(value: boolean) {\r\n\t\tthis.$store.commit(\"setRefreshCardAddressesToggle\", value);\r\n\t}\r\n\t\r\n\tprivate get offerDecrementTimerId() {\r\n\t\treturn this.$store.state.offerDecrementTimerId;\r\n\t}\r\n\r\n\t@Watch('currentOffer')\r\n\tprivate resetTimerInterval() {\r\n\t\tif (this.currentOffer === null) {\r\n\t\t\twindow.clearInterval(this.offerDecrementTimerId);\r\n\t\t}\r\n\t}\r\n\tprivate get email() {\r\n\t\treturn this.invoiceAddress.eMail;\r\n }\r\n\tprivate get isBilledDigitally() {\r\n\t\treturn this.invoiceAddress.isBilledDigitally;\r\n }\r\n\tprivate get addressString() {\r\n\t\treturn this.invoiceAddress.street + ' / ' + this.invoiceAddress.town;\r\n\t}\r\n private get customKommissionsnummer(){\r\n return this.$store.state.offer.customKommissionsnummer;\r\n }\r\n private set customKommissionsnummer(value: string){\r\n this.$store.commit('setCustomKommissionsnummer', value);\r\n }\r\n\tprivate get currentOfferCalculating() {\r\n\t\treturn this.$store.state.currentOfferCalculating;\r\n\t}\r\n\r\n\tprivate get isValidManufacturerSelected() {\r\n\t\treturn this.$store.state.rampenabholungSelectionValid;\r\n\t}\r\n\r\n\tprivate get isAdditionalEmailSelected() {\r\n\t\treturn this.$store.state.isAdditionalEmailSelected;\r\n\t}\r\n\tprivate set isAdditionalEmailSelected(value: boolean) {\r\n\t\tthis.$store.commit('setIsAdditionalEmailSelected', value);\r\n\t}\r\n\tprivate get additionalOrderConfirmationEmail() {\r\n\t\treturn this.$store.state.additionalOrderConfirmationEmail;\r\n\t}\r\n\tprivate set additionalOrderConfirmationEmail(value: string) {\r\n\t\tthis.$store.commit('setAdditionalOrderConfirmationEmail', value);\r\n\t}\r\n\tprivate onIsAdditionalEmailSelectedChanged() {\r\n\t\tthis.additionalOrderConfirmationEmail = this.isAdditionalEmailSelected \r\n\t\t\t? this.$store.state.customer.defaultAdditionalOrderConfirmationEmail\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tprivate get userEmailAddress() {\r\n\t\tif (this.$store.state.oidc !== undefined) {\r\n\t\t\treturn this.$store.state.oidc.user.profile.name;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tprivate get areAddressesValid() {\r\n\t\treturn this.deliveryAddress.isValid && this.invoiceAddress.isValid;\r\n\t}\r\n\r\n\tprivate get isCountryValidForDelivery() {\r\n return this.$store.getters.customerIsCountryValidForDelivery;\r\n }\r\n\r\n\t// @change auf dem step-control geht nicht, weil dann die Buttons (Zurück/Weiter) nichts auslösen\r\n\t@Watch('stepCount')\r\n\tprivate async onStepCountChanged() {\r\n\t\tif (\r\n\t\t\t(this.stepCount == 3 || this.stepCount == 4) \r\n\t\t\t&& this.$store.getters.isCartValid\r\n\t\t\t&& this.$store.getters.amountOfItemsInCart > 0 \r\n\t\t\t&& (this.$store.state.currentCart.hasChanged \r\n\t\t\t\t|| this.$store.state.offerValidTimerSeconds == 0 \r\n\t\t\t\t|| this.offerFailed\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\tawait this.updateOffer();\r\n\t\t} else if (\r\n\t\t\t(this.stepCount == 3 || this.stepCount == 4) \r\n\t\t\t&& this.$store.getters.amountOfItemsInCart <= 0) \r\n\t\t{\r\n\t\t\tthis.resetOffer();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async updateOffer() {\r\n\t\tlet calculationId = 0;\r\n\t\tif (this.$store.state.offer != null) {\r\n\t\t\tcalculationId = this.$store.state.offer.calculationId;\r\n\t\t}\r\n\t\tthis.$store.commit('setOfferFailed', false);\r\n\t\tthis.$store.commit('setOfferFailReason', OfferFailReason.None);\r\n\t\tthis.$store.commit('setOrderSuccessful', false);\r\n\t\tthis.$store.commit('setCurrentOfferCalculating', true);\r\n\t\tthis.$store.commit('setOfferInvalidForCartUpdate', false);\r\n\t\tthis.$store.commit('setCurrentOfferToNull');\r\n\r\n\t\tconst apiCall: string =\r\n\t\t\t'offer/CalculateOffer?' +\r\n\t\t\t'calculationId=' +\r\n\t\t\tcalculationId +\r\n\t\t\t'&cityOfDelivery=' +\r\n\t\t\tencodeURI(this.deliveryAddress.town) +\r\n\t\t\t'&streetOfDelivery=' +\r\n\t\t\tencodeURI(this.deliveryAddress.street) +\r\n\t\t\t'&zipOfDelivery=' +\r\n\t\t\tencodeURI(this.deliveryAddress.zip);\r\n\r\n\t\t// [IEnumerable positions] wird vom Backend verlangt.\r\n\t\t// PositionDto ist identisch wie CartItem im Frontend.\r\n\t\t// Diese werden im Body übergeben.\r\n\t\ttry {\r\n\t\t\tthis.$store.commit('setLoading', true);\r\n\t\t\tthis.$store.commit('setCurrentOfferCalculating', true);\r\n\t\t\tconst response = await httpClient().post(\r\n\t\t\t\tapiCall,\r\n\t\t\t\tthis.$store.state.currentCart.cartItems as Array\r\n\t\t\t);\r\n\r\n\t\t\tvar offerDto = response.data as OfferDto;\r\n\t\t\tif (offerDto.offerFailReason != OfferFailReason.None || \r\n\t\t\t\tofferDto.manufacturingOffers.length <= 0 ||\r\n\t\t\t\tofferDto.orderDiscounts.length <= 0) {\r\n\t\t\t\tthis.$store.commit('setOfferFailReason', offerDto.offerFailReason);\r\n\t\t\t\tthis.$store.commit('setOfferFailed', true);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$store.commit('updateOffer', offerDto);\r\n\t\t\t\tthis.startOfferValidTimer();\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(`Fehler bei der Erstellung des Angebots: ${error}`);\r\n\t\t\tthis.$store.commit('setCurrentOfferToNull');\r\n\t\t\tthis.$store.commit('setOfferFailed', true);\r\n\t\t} finally {\r\n\t\t\tthis.$store.commit('setLoading', false);\r\n\t\t\tthis.$store.commit('setCurrentOfferCalculating', false);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate resetOffer() {\r\n\t\tthis.$store.commit('setOfferFailed', false);\r\n\t\tthis.$store.commit('setOfferFailReason', OfferFailReason.None);\r\n\t\tthis.$store.commit('setOrderSuccessful', false);\r\n\t\tthis.$store.commit('setCurrentOfferToNull');\r\n\t\tthis.$store.commit('setCurrentOfferCalculating', false);\r\n\t\tthis.$store.commit('setOfferInvalidForCartUpdate', false);\r\n\t}\r\n\r\n\tprivate openAddressPicker(type: ErpAddressType) {\r\n\t\tthis.currentAddressPickerType = type;\r\n\t\tthis.addressPickerDialog = true;\r\n\t}\r\n\r\n\tprivate refreshAddresses() {\r\n\t\tlet delivery = JSON.parse(JSON.stringify(this.$store.state.currentCart.deliveryAddress));\r\n\t\tlet invoice = JSON.parse(JSON.stringify(this.$store.state.currentCart.invoiceAddress));\r\n\t\tthis.deliveryAddress = Object.assign(new AddressDto, delivery);\r\n\t\tthis.invoiceAddress = Object.assign(new AddressDto, invoice);\r\n\t\tthis.deliveryAddressKey += 1;\r\n\t\tthis.invoiceAddressKey -= 1;\r\n\t}\r\n\r\n\tprivate startOfferValidTimer() {\r\n\t\twindow.clearInterval(this.offerDecrementTimerId);\r\n\t\tthis.$store.commit('restartOfferValidTimer');\r\n\t\tlet newIntervalId = window.setInterval(this.decrementOfferTimer, 1000);\r\n\t\tthis.$store.commit('setOfferDecrementTimerId', newIntervalId);\r\n\t}\r\n\r\n\tprivate decrementOfferTimer() {\r\n\t\tthis.$store.commit('decrementOfferValidTimer');\r\n\t\tif (this.$store.state.offerValidTimerSeconds === 0) {\r\n\t\t\twindow.clearInterval(this.offerDecrementTimerId);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate goToCustomerSettings() {\r\n\t\tthis.$router.push({ \r\n\t\t\tname: 'Settings', \r\n\t\t\tparams: { \r\n\t\t\t\ttab: 'customer', \r\n\t\t\t} \r\n\t\t});\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkout.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Checkout.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Checkout.vue?vue&type=template&id=734906f9&scoped=true\"\nimport script from \"./Checkout.vue?vue&type=script&lang=ts\"\nexport * from \"./Checkout.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"734906f9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"show-arrows\":\"mobile\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabTypes),function(type){return _c('v-tab',{key:type.key,attrs:{\"ripple\":\"\"}},[_vm._v(\" \"+_vm._s(type.display)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{key:\"user\"},[_c('user-settings')],1),_c('v-tab-item',{key:\"customer\"},[_c('customer-settings')],1),_c('v-tab-item',{key:\"delivery\"},[_c('addresses-overview',{attrs:{\"type\":_vm.deliveryType,\"isOrder\":false}})],1),_c('v-tab-item',{key:\"invoice\"},[_c('addresses-overview',{attrs:{\"type\":_vm.invoiceType,\"isOrder\":false}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\",\"ma-1\":\"\"}},[_c('v-form',{model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Vorname\",\"color\":\"accent\",\"disabled\":_vm.isLoading,\"rules\":_vm.requiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t\t_vm.user.firstname = _vm.user.firstname.trim();\n\t\t\t\t\t\t\t\t_vm.saveUser();\n\t\t\t\t\t\t\t}},model:{value:(_vm.user.firstname),callback:function ($$v) {_vm.$set(_vm.user, \"firstname\", $$v)},expression:\"user.firstname\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Nachname\",\"color\":\"accent\",\"disabled\":_vm.isLoading,\"rules\":_vm.requiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t\t_vm.user.lastname = _vm.user.lastname.trim();\n\t\t\t\t\t\t\t\t_vm.saveUser();\n\t\t\t\t\t\t\t}},model:{value:(_vm.user.lastname),callback:function ($$v) {_vm.$set(_vm.user, \"lastname\", $$v)},expression:\"user.lastname\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":\"Telefonnummer\",\"color\":\"accent\",\"disabled\":_vm.isLoading,\"rules\":_vm.requiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t\t_vm.user.phone = _vm.user.phone.trim();\n\t\t\t\t\t\t\t\t_vm.saveUser();\n\t\t\t\t\t\t\t}},model:{value:(_vm.user.phone),callback:function ($$v) {_vm.$set(_vm.user, \"phone\", $$v)},expression:\"user.phone\"}})],1)],1),(!_vm.user.newsletterSubscribed)?_c('v-row',[_c('v-col',[_c('v-checkbox',{attrs:{\"disabled\":_vm.isLoading,\"label\":\"Newsletter abonnieren\",\"color\":\"accent\"},on:{\"change\":function($event){_vm.saveUser(); _vm.newsletterMessage=true}},model:{value:(_vm.user.newsletterSubscribed),callback:function ($$v) {_vm.$set(_vm.user, \"newsletterSubscribed\", $$v)},expression:\"user.newsletterSubscribed\"}})],1)],1):_vm._e(),(_vm.newsletterMessage == true)?_c('v-row',[_c('v-col',[_vm._v(\" Newsletter abonniert. Falls gewünscht, können Sie den Newsletter beim nächsten Versand wieder abbestellen. \")])],1):_vm._e(),_c('v-row',{attrs:{\"align\":\"end\"}},[_c('v-col',[_c('span',{staticClass:\"text-caption\"},[_vm._v(\"Benutzername / E-Mail\")]),_c('br'),_vm._v(\" \"+_vm._s(_vm.user.username)+\" \")]),_c('v-spacer'),_c('v-col',{attrs:{\"align\":\"end\"}},[_c('v-btn',{attrs:{\"title\":\"Klicken Sie hier, um die E-Mail Adresse / den Benutzernamen zu ändern. Sie legen den neuen Benutzernamen in einer Dialogbox fest.\",\"disabled\":_vm.isLoading},on:{\"click\":() => {\n\t\t\t\t\t\t\t\t_vm.newUsername = _vm.user.username;\n\t\t\t\t\t\t\t\t_vm.emailChangeWarningdialog = true;\n\t\t\t\t\t\t\t}}},[_vm._v(\" Ändern \")])],1)],1),_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"title\":\"Klicken Sie hier, um ihr Passwort zu ändern.\",\"disabled\":_vm.isLoading},on:{\"click\":() => _vm.changePasswordDialog = true}},[_vm._v(\" Passwort ändern \")])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"8\",\"xl\":\"9\"}},[_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',[_c('span',{staticClass:\"text-caption\"},[_vm._v(\"App Code für Fusion 360 / SolidWorks Add-In\")]),_c('br'),_vm._v(\" \"+_vm._s(_vm.user.appCode)),_c('br'),_c('span',{staticClass:\"text-caption\"},[_vm._v(\" Wenn Sie mit Autodesk Fusion 360 oder SolidWorks konstruieren, empfehlen wir die Nutzung des Blexon Add-In. Installieren Sie das AddIn für \"),_c('a',{attrs:{\"href\":\"https://blexon.com/blexon-integration-in-autodesk-fusion-360-cad/\",\"target\":\"_blank\"}},[_vm._v(\"Fusion 360\")]),_vm._v(\" bzw. \"),_c('a',{attrs:{\"href\":\"https://blexon.com/blexon-integration-in-solidWorks-cad/\",\"target\":\"_blank\"}},[_vm._v(\"SolidWorks\")]),_vm._v(\" und verbinden Sie es mit dem obenstehenden App Code mit dem Blexon Shop. Damit können Sie Ihre CAD Modelle ohne Export / Import direkt in den Blexon Shop laden. \")]),_c('span',{staticClass:\"text-caption\"},[_vm._v(\" Halten Sie Ihren App Code geheim und geben Sie ihn auf keinen Fall an Dritte weiter. Falls Sie den App Code zugänglich gemacht haben, generieren Sie unbedingt einen neuen Code. \")])])],1),_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"title\":\"Code in Zwischenablage kopieren\"},on:{\"click\":function($event){return _vm.copyToClipboard()}}},[_vm._v(\" Kopieren \")]),_c('v-btn',{staticClass:\"ml-3 blexon-button\",attrs:{\"title\":\"Klicken Sie hier, um einen neuen Code zu generieren. Der Zugriff mit dem alten Code ist dann ab sofort nicht mehr möglich.\"},on:{\"click\":function($event){return _vm.generateCode()}}},[_vm._v(\" Neu Generieren \")])],1)],1)],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.emailChangeWarningdialog),callback:function ($$v) {_vm.emailChangeWarningdialog=$$v},expression:\"emailChangeWarningdialog\"}},[_c('v-form',{model:{value:(_vm.isUsernameValid),callback:function ($$v) {_vm.isUsernameValid=$$v},expression:\"isUsernameValid\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Ändern des Benutzernamens\")]),_c('v-card-text',[_vm._v(\" Ihre E-Mail Adresse ist gleichzeitig auch ihr Benutzername bei der Anmeldung.\"),_c('br'),_vm._v(\" Wenn Sie ihre E-Mail Adresse ändern, ändert sich auch ihr Benutzername. Bitte beachten Sie das bei Ihrer nächsten Anmeldung.\"),_c('br'),_c('br'),_c('v-text-field',{attrs:{\"label\":\"Neuer Benutzername / E-Mail\",\"color\":\"accent\",\"disabled\":_vm.isLoading,\"rules\":_vm.requiredEmailRule},on:{\"blur\":function($event){_vm.newUsername = _vm.newUsername.trim();}},model:{value:(_vm.newUsername),callback:function ($$v) {_vm.newUsername=$$v},expression:\"newUsername\"}}),_c('strong',[_vm._v(\"Hinweis:\")]),_vm._v(\" Das ist nicht die E-Mail Adresse für den Rechnungsversand. Diese finden Sie in den Einstellungen zur Rechnungsadresse. \")],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.emailChangeWarningdialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.isUsernameValid || _vm.isLoading},on:{\"click\":function($event){return _vm.saveUsername()}}},[_vm._v(\" Speichern \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.emailChangeRegisteredDialog),callback:function ($$v) {_vm.emailChangeRegisteredDialog=$$v},expression:\"emailChangeRegisteredDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Bestätigungsemail versendet\")]),_c('v-card-text',[_vm._v(\" Zur Bestätigung erhalten Sie eine E-Mail an die angegebene neue Adresse.\"),_c('br'),_vm._v(\" Mit einem Klick auf den darin enthaltenen Link wird die Änderung aktiv. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.emailChangeRegisteredDialog = false}}},[_vm._v(\" OK \")])],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.emailChangeFailedDialog),callback:function ($$v) {_vm.emailChangeFailedDialog=$$v},expression:\"emailChangeFailedDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Änderung Fehlgeschlagen\")]),_c('v-card-text',[_vm._v(\" Die Änderung konnte nicht durchgeführt werden.\"),_c('br'),_vm._v(\" Bitte kontrollieren Sie, ob die E-Mail Adresse korrekt und gültig ist.\"),_c('br'),_vm._v(\" Vielleicht besteht bereits ein Blexonkonto unter dieser E-Mail Adresse.\"),_c('br'),_vm._v(\" Wenn Sie der Meinung sind, die neue E-Mail Adresse ist gültig und gehört Ihnen, kontaktieren Sie bitte unser Helpdesk. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.emailChangeFailedDialog = false}}},[_vm._v(\" OK \")])],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.changePasswordDialog),callback:function ($$v) {_vm.changePasswordDialog=$$v},expression:\"changePasswordDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Passwort ändern\")]),_c('v-card-text',[_vm._v(\" Wir senden Ihnen eine E-Mail an \"+_vm._s(_vm.user.username)+\". Diese enthält einen Link, mit dem Sie ihr Passwort ändern können.\"),_c('br'),_vm._v(\" Bitte überprüfen Sie ebenfalls den Spam-Ordner, falls Sie die E-Mail nicht erhalten. \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){_vm.changePasswordDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){return _vm.changePassword()}}},[_vm._v(\" OK \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class UserInfoDto {\r\n\tpublic userId: string = '';\r\n\tpublic firstname: string = '';\r\n\tpublic lastname: string = '';\r\n\tpublic phone: string = '';\r\n\tpublic username: string = '';\r\n\tpublic newsletterSubscribed: boolean = false;\r\n\tpublic appCode: string = '';\r\n\tpublic isAdmin: boolean = false;\r\n\tpublic canOrderDirectly: boolean = false;\r\n\tpublic canOrderIndirectly: boolean = false;\r\n\tpublic canChangeInvoiceAddress: boolean = false;\r\n\tpublic canChangeDeliveryAddress: boolean = false;\r\n\tpublic canManageUsers: boolean = false;\r\n\tpublic preferredDeliveryAddressId: number = 0;\r\n\tpublic preferredInvoiceAddressId: number = 0;\r\n}","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { UserInfoDto } from '@/dtos/userInfoDto';\r\nimport rules from '@/store/rules';\r\nimport httpClient from '@/store/httpClient';\r\n\r\n@Component({})\r\nexport default class UserSettings extends Vue {\r\n\tprivate user: UserInfoDto = new UserInfoDto();\r\n\tprivate lastUser: UserInfoDto = new UserInfoDto();\r\n\tprivate registeredChangedUserEmail: string = '';\r\n\tprivate isValid: boolean = false;\r\n\tprivate isUsernameValid: boolean = false;\r\n\tprivate isLoading: boolean = false;\r\n\tprivate requiredStringMax35Rule = rules.requiredStringMax35Rule;\r\n\tprivate requiredEmailRule = rules.requiredEmailRule;\r\n\tprivate emailChangeWarningdialog: boolean = false;\r\n\tprivate emailChangeRegisteredDialog: boolean = false;\r\n\tprivate emailChangeFailedDialog: boolean = false;\r\n\tprivate changePasswordDialog: boolean = false;\r\n\tprivate newsletterMessage: boolean = false;\r\n\tprivate newUsername: string = '';\r\n\r\n private mounted() {\r\n\t\tthis.loadUser();\r\n\t\tthis.registeredChangedUserEmail = this.user.username;\r\n }\r\n\r\n\tprivate get hasChanges() {\r\n\t\treturn (this.lastUser.firstname !== this.user.firstname\r\n\t\t\t|| this.lastUser.lastname !== this.user.lastname\r\n\t\t\t|| this.lastUser.phone !== this.user.phone\r\n\t\t\t|| this.lastUser.newsletterSubscribed !== this.user.newsletterSubscribed) \r\n\t}\r\n\r\n\tprivate get usernameIsDifferent() {\r\n\t\treturn this.newUsername !== this.$store.state.customer.user.username\r\n\t\t\t&& this.newUsername !== this.registeredChangedUserEmail;\r\n\t}\r\n\r\n\tprivate async loadUser() {\r\n\t\tthis.user = this.$store.state.customer.user;\r\n\t\tthis.lastUser = JSON.parse(JSON.stringify(this.user));\r\n\t}\r\n\r\n\tprivate async saveUser() {\r\n\t\tif (this.isValid && !this.isLoading && this.hasChanges) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst response = await httpClient().post('Customer/SaveUser', this.user);\r\n\t\t\t\tthis.$store.commit('updateUserSettings', {\r\n\t\t\t\t\tfirstname: this.user.firstname,\r\n\t\t\t\t\tlastname: this.user.lastname,\r\n\t\t\t\t\tphone: this.user.phone,\r\n\t\t\t\t\tnewsletterSubscribed: this.user.newsletterSubscribed,\r\n\t\t\t\t});\r\n \tthis.$store.dispatch('setSnackbarText', 'Einstellungen erfolgreich gespeichert.');\r\n\t\t\t\tthis.lastUser = JSON.parse(JSON.stringify(this.user));\r\n\t\t\t} catch(err) {\r\n \tthis.$store.dispatch('setSnackbarErrorText', 'Einstellungen konnten nicht gespeichert werden.');\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async saveUsername() {\r\n\t\tif (this.isUsernameValid && !this.isLoading) {\r\n\t\t\tif (!this.usernameIsDifferent) {\r\n\t\t\t\tconsole.log('New email/username is the same as the current one');\r\n\t this.$store.dispatch('setSnackbarErrorText', 'Der neue Benutzername ist identisch zum jetzigen oder zum bereits geänderten Benutzernamen.');\r\n \t return;\r\n\t\t\t}\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst response = await httpClient().post(`Customer/RequestUserNameChange?newEMail=${encodeURI(this.newUsername)}`);\r\n\t\t\t\tthis.emailChangeWarningdialog = false;\r\n\t\t\t\tthis.emailChangeRegisteredDialog = true;\r\n\t\t\t\tthis.registeredChangedUserEmail = this.newUsername;\r\n\t\t\t} catch(err) {\r\n\t\t\t\tthis.emailChangeFailedDialog = true;\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async changePassword() {\r\n\t\tif (this.isLoading) return;\r\n\t\ttry {\r\n\t\t\tthis.isLoading = true;\r\n\t\t\tawait httpClient().post('Customer/ChangePassword');\r\n\t\t\tthis.changePasswordDialog = false;\r\n\t\t\tthis.$store.dispatch('setSnackbarText', 'E-Mail zur Passwortänderung wurde versendet.');\r\n\t\t} catch(err) {\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'E-Mail zur Passwortänderung konnte nicht versendet werden.');\r\n\t\t} finally {\r\n\t\t\tthis.isLoading = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async generateCode() {\r\n\t\ttry {\r\n\t\t\tthis.isLoading = true;\r\n\t\t\tconst response = await httpClient().post(`Customer/GenerateAppCode`);\r\n\t\t\tthis.user.appCode = response.data;\r\n\t\t} catch(err) {\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim Generieren des App Code. Bitte melden Sie sich bei unserem Helpdesk.');\r\n\t\t} finally {\r\n\t\t\tthis.isLoading = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async copyToClipboard() {\r\n\t\tif (this.user.appCode != null && this.user.appCode != '') {\r\n\t\t\tawait navigator.clipboard.writeText(this.user.appCode);\r\n\t\t\tthis.$store.dispatch('setSnackbarText', 'App Code erfolgreich in Zwischenablage gespeichert.');\r\n\t\t} else {\r\n\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserSettings.vue?vue&type=template&id=d1c42e56&scoped=true\"\nimport script from \"./UserSettings.vue?vue&type=script&lang=ts\"\nexport * from \"./UserSettings.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d1c42e56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[(!_vm.useCompanyName)?_c('span',[_vm._v(\"Persönliches / privates Konto\")]):_vm._e(),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.useCompanyName),expression:\"useCompanyName\"}],attrs:{\"label\":\"Firmenname\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading || !_vm.useCompanyName,\"rules\":_vm.companyNameRule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.companyName = _vm.customer.companyName.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.companyName),callback:function ($$v) {_vm.$set(_vm.customer, \"companyName\", $$v)},expression:\"customer.companyName\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.useCompanyName),expression:\"useCompanyName\"}],attrs:{\"label\":\"MwSt-Nummer / Umsatzsteuer-Id\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading || !_vm.useCompanyName,\"rules\":_vm.customerMwstNumberRule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.customerMwstNumber = _vm.customer.customerMwstNumber.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.customerMwstNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"customerMwstNumber\", $$v)},expression:\"customer.customerMwstNumber\"}}),_c('v-checkbox',{attrs:{\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"label\":\"Als Firmenkonto verwenden\",\"color\":\"accent\"},on:{\"change\":() => {\n\t\t\t\t\t\t\tthis.customer.companyName = _vm.useCompanyName ? '' : 'privat';\n\t\t\t\t\t\t\tif (!_vm.useCompanyName) this.customer.customerMwstNumber = '';\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t\t_vm.validate();\n\t\t\t\t\t\t}},model:{value:(_vm.useCompanyName),callback:function ($$v) {_vm.useCompanyName=$$v},expression:\"useCompanyName\"}})],1)],1),_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Strasse / Nr.\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.addressRequiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.street = _vm.customer.street.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.street),callback:function ($$v) {_vm.$set(_vm.customer, \"street\", $$v)},expression:\"customer.street\"}})],1)],1),_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\",\"wrap\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('v-text-field',{attrs:{\"label\":\"PLZ\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.correctPlzRule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.plz = _vm.customer.plz.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.plz),callback:function ($$v) {_vm.$set(_vm.customer, \"plz\", $$v)},expression:\"customer.plz\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"2\",\"xl\":\"2\"}},[_c('v-text-field',{attrs:{\"label\":\"Ort\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.addressRequiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.town = _vm.customer.town.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.town),callback:function ($$v) {_vm.$set(_vm.customer, \"town\", $$v)},expression:\"customer.town\"}})],1)],1),_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Land\",\"color\":\"accent\",\"disabled\":true},model:{value:(_vm.customer.country),callback:function ($$v) {_vm.$set(_vm.customer, \"country\", $$v)},expression:\"customer.country\"}})],1)],1),_c('v-row',{attrs:{\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Telefon (allgemein)\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.requiredStringMax35Rule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.generalPhone = _vm.customer.generalPhone.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.generalPhone),callback:function ($$v) {_vm.$set(_vm.customer, \"generalPhone\", $$v)},expression:\"customer.generalPhone\"}})],1)],1),_c('v-row',{attrs:{\"row\":\"\",\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"E-Mail (allgemein)\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.requiredEmailRule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.generalEmail = _vm.customer.generalEmail.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.generalEmail),callback:function ($$v) {_vm.$set(_vm.customer, \"generalEmail\", $$v)},expression:\"customer.generalEmail\"}})],1)],1),_c('v-row',{attrs:{\"row\":\"\",\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"E-Mail für zusätzliche Auftragsbenachrichtigungen\",\"color\":\"accent\",\"disabled\":!_vm.canUserChangeSettings || _vm.isLoading,\"rules\":_vm.optionalEmailRule},on:{\"blur\":() => {\n\t\t\t\t\t\t\t_vm.customer.defaultAdditionalOrderConfirmationEmail = _vm.customer.defaultAdditionalOrderConfirmationEmail.trim();\n\t\t\t\t\t\t\t_vm.saveCustomer();\n\t\t\t\t\t\t}},model:{value:(_vm.customer.defaultAdditionalOrderConfirmationEmail),callback:function ($$v) {_vm.$set(_vm.customer, \"defaultAdditionalOrderConfirmationEmail\", $$v)},expression:\"customer.defaultAdditionalOrderConfirmationEmail\"}}),_c('p',{staticClass:\"ma-0\"},[_c('small',[_vm._v(\"Wenn hier eine E-Mail Adresse eingetragen ist, wird diese standardmässig als zusätzliche E-Mail Adresse für Auftragsbenachrichtigungen verwendet.\")])])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { MwstDto } from './mwstDto';\r\nimport { UserInfoDto } from './userInfoDto';\r\nimport { AddressDto } from '@/dtos/addressDto'\r\n\r\nexport class CustomerInfoDto {\r\n public customerId: number = 0;\r\n public companyName: string = '';\r\n public street: string = '';\r\n public plz: string = '';\r\n public town: string = '';\r\n public country: string = '';\r\n public generalEmail: string = '';\r\n public generalPhone: string = '';\r\n public currency: string = '';\r\n public mwstRates: MwstDto[] = new Array();\r\n public deliveryAddresses: AddressDto[] = new Array();\r\n public invoiceAddresses: AddressDto[] = new Array();\r\n public regionId: number = 0;\r\n public regionName: string = '';\r\n public isCountryValidForDelivery: boolean = false;\r\n public defaultAdditionalOrderConfirmationEmail: string = '';\r\n public customerMwstNumber: string = '';\r\n public user: UserInfoDto = new UserInfoDto();\r\n}","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport httpClient from \"@/store/httpClient\";\r\nimport rules from \"@/store/rules\";\r\nimport { CustomerInfoDto } from \"@/dtos/customerInfoDto\";\r\nimport { CustomerSettingsDto } from \"@/dtos/customerSettingsDto\";\r\n\r\n@Component({})\r\nexport default class CustomerSettings extends Vue {\r\n\tprivate customer: CustomerInfoDto = new CustomerInfoDto();\r\n\tprivate lastCustomer: CustomerInfoDto = new CustomerInfoDto();\r\n\tprivate canUserChangeSettings: boolean = false;\r\n\tprivate isValid: boolean = false;\r\n\tprivate isLoading: boolean = false;\r\n\tprivate useCompanyName: boolean = false;\r\n\tprivate requiredStringMax35Rule = rules.requiredStringMax35Rule;\r\n\tprivate requiredEmailRule = rules.requiredEmailRule;\r\n\tprivate optionalEmailRule = rules.optionalEmailRule;\r\n\tprivate addressRequiredStringMax35Rule = rules.addressRequiredStringMax35Rule;\r\n\tprivate companyNameRule = [\r\n\t\t(v: string) => !!v || \"Angabe erforderlich\",\r\n\t\t(v: string) => v.replace(/\\s/g, \"\").length > 0 || \"Eingabe darf nicht nur Leerzeichen sein.\",\r\n\t\t(v: string) => !v || v.length <= 50 || \"Maximal 50 Zeichen erlaubt.\",\r\n\t\t(v: string) => !this.useCompanyName || v !== \"privat\" || \"Firmenname darf nicht 'privat' sein.\",\r\n\t];\r\n\tprivate correctPlzRule = [\r\n\t\t(v: string) => {\r\n\t\t\tconst isValid =\r\n\t\t\t\t(this.getCustomerCountry() !== \"Deutschland\" && this.getCustomerCountry() !== \"Schweiz\" && this.getCustomerCountry() !== \"Liechtenstein\") ||\r\n\t\t\t\t(this.getCustomerCountry() === \"Deutschland\" && v.length === 5 && parseInt(v) >= 1000 && parseInt(v) <= 99999) ||\r\n\t\t\t\t((this.getCustomerCountry() === \"Schweiz\" || this.getCustomerCountry() === \"Liechtenstein\") && v.length === 4 && parseInt(v) >= 1000 && parseInt(v) <= 9999);\r\n\r\n\t\t\treturn isValid || \"Muss eine gültige PLZ sein.\";\r\n\t\t},\r\n\t];\r\n\r\n\tprivate customerMwstNumberRule = [(v: string) => v.length <= 50 || \"Maximal 50 Zeichen erlaubt.\"];\r\n\r\n\tprivate mounted() {\r\n\t\tthis.loadCustomer();\r\n\t\tthis.setRights();\r\n\t}\r\n\r\n\tprivate get hasChanges() {\r\n\t\treturn (\r\n\t\t\tthis.lastCustomer.companyName !== this.customer.companyName ||\r\n\t\t\tthis.lastCustomer.street !== this.customer.street ||\r\n\t\t\tthis.lastCustomer.town !== this.customer.town ||\r\n\t\t\tthis.lastCustomer.plz !== this.customer.plz ||\r\n\t\t\tthis.lastCustomer.generalPhone !== this.customer.generalPhone ||\r\n\t\t\tthis.lastCustomer.generalEmail !== this.customer.generalEmail ||\r\n\t\t\tthis.lastCustomer.customerMwstNumber !== this.customer.customerMwstNumber ||\r\n\t\t\tthis.lastCustomer.defaultAdditionalOrderConfirmationEmail !== this.customer.defaultAdditionalOrderConfirmationEmail\r\n\t\t);\r\n\t}\r\n\r\n\tprivate loadCustomer() {\r\n\t\tthis.customer = JSON.parse(JSON.stringify(this.$store.state.customer));\r\n\t\tthis.useCompanyName = this.customer.companyName !== \"privat\";\r\n\t\tthis.lastCustomer = JSON.parse(JSON.stringify(this.customer));\r\n\t}\r\n\r\n\tprivate async setRights() {\r\n\t\tconst response = await httpClient().get(\"Customer/CanUserManageUsers\");\r\n\t\tthis.canUserChangeSettings = response.data;\r\n\t}\r\n\r\n\tprivate async saveCustomer() {\r\n\t\tif (this.isValid && !this.isLoading && this.hasChanges && !(this.useCompanyName && this.customer.companyName === \"\")) {\r\n\t\t\ttry {\r\n\t\t\t\tconsole.log(\"Saving customer...\");\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst settings: CustomerSettingsDto = {\r\n\t\t\t\t\tcustomerId: this.customer.customerId,\r\n\t\t\t\t\tcompanyName: this.customer.companyName,\r\n\t\t\t\t\tstreet: this.customer.street,\r\n\t\t\t\t\tplz: this.customer.plz,\r\n\t\t\t\t\ttown: this.customer.town,\r\n\t\t\t\t\tgeneralEmail: this.customer.generalEmail,\r\n\t\t\t\t\tgeneralPhone: this.customer.generalPhone,\r\n\t\t\t\t\tcustomerMwstNumber: this.customer.customerMwstNumber,\r\n\t\t\t\t\tdefaultAdditionalOrderConfirmationEmail: this.customer.defaultAdditionalOrderConfirmationEmail,\r\n\t\t\t\t};\r\n\t\t\t\tawait httpClient().post(\"Customer/SaveCustomerSettings\", settings);\r\n\t\t\t\tthis.$store.commit(\"updateCustomerSettings\", {\r\n\t\t\t\t\tcompanyName: this.customer.companyName,\r\n\t\t\t\t\tphone: this.customer.generalPhone,\r\n\t\t\t\t\temail: this.customer.generalEmail,\r\n\t\t\t\t\tcustomerMwstNumber: this.customer.customerMwstNumber,\r\n\t\t\t\t\tdefaultAdditionalOrderConfirmationEmail: this.customer.defaultAdditionalOrderConfirmationEmail,\r\n\t\t\t\t});\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarText\", \"Einstellungen erfolgreich gespeichert.\");\r\n\t\t\t\tthis.lastCustomer = JSON.parse(JSON.stringify(this.customer));\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Einstellungen konnten nicht gespeichert werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getCustomerCountry() {\r\n\t\treturn this.customer ? (this.customer.country ? this.customer.country : \"\") : \"\";\r\n\t}\r\n\r\n\tprivate validate() {\r\n\t\t(this.$refs.form as any).validate();\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSettings.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerSettings.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CustomerSettings.vue?vue&type=template&id=48d0a704&scoped=true\"\nimport script from \"./CustomerSettings.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomerSettings.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48d0a704\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Prop, Component, Vue, Watch } from 'vue-property-decorator';\r\nimport UserSettings from '@/views/Settings/UserSettings.vue'\r\nimport CustomerSettings from '@/views/Settings/CustomerSettings.vue'\r\nimport AddressesOverview from '@/views/Settings/AddressesOverview.vue'\r\nimport { AddressType } from '@/dtos/addressType'\r\nimport { ErpAddressType } from '@/dtos/erpAddressType';\r\n\r\n@Component({\r\n components: {\r\n UserSettings,\r\n CustomerSettings,\r\n AddressesOverview\r\n }\r\n})\r\nexport default class Settings extends Vue {\r\n @Prop()\r\n private tabName!: string;\r\n\r\n private tab = 0;\r\n private deliveryType: ErpAddressType = ErpAddressType.Delivery;\r\n\tprivate invoiceType: ErpAddressType = ErpAddressType.Invoice;\r\n\r\n private readonly tabTypes: { key: string, display: string }[] = [\r\n {\r\n key: \"user\",\r\n display: \"Benutzereinstellungen\",\r\n },\r\n {\r\n key: \"customer\",\r\n display: \"Kundenkonto\",\r\n },\r\n {\r\n key: \"delivery\",\r\n display: \"Lieferadressen\",\r\n },\r\n {\r\n key: \"invoice\",\r\n display: \"Rechnungsadressen\",\r\n },\r\n ]\r\n\r\n private mounted() {\r\n if(this.tabName && this.tabTypes.some((type:any) => type.key === this.tabName)){\r\n this.tab = this.tabTypes.findIndex((type:any) => type.key === this.tabName);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=2f4b1575&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f4b1575\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\"Diese Seite konnte nicht gefunden werden.\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\n\r\n@Component({\r\n components: {\r\n }\r\n})\r\nexport default class NotFoundComponent extends Vue {\r\n\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFoundComponent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFoundComponent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NotFoundComponent.vue?vue&type=template&id=3abef4e3\"\nimport script from \"./NotFoundComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./NotFoundComponent.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.userCanManageUsers && _vm.usersLoaded)?_c('v-row',[_c('v-col',{attrs:{\"xs\":\"12\"}},[_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"shrink\":\"\"},on:{\"click\":function($event){_vm.addUserDialog = true}}},[_vm._v(\" Benutzer hinzufügen \")]),_c('span',{staticStyle:{\"font-size\":\"0.8em\"}},[_c('br'),_vm._v(\"Hinweis: Um die E-Mail Adresse des aktuellen Benutzers zu ändern, verwenden Sie bitte die Funktion in den \"),_c('a',{on:{\"click\":_vm.goToUserSettings}},[_vm._v(\"Benutzereinstellungen\")]),_vm._v(\". \")])],1)],1):_vm._e(),(_vm.userCanManageUsers && _vm.usersLoaded)?_c('v-row',{attrs:{\"id\":\"userListe\",\"wrap\":\"\"}},_vm._l((_vm.sortedUsers),function(user){return _c('v-col',{key:user.userId,attrs:{\"cols\":\"12\",\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({ hover }){return [_c('v-container',{staticClass:\"userTile\",class:{'elevation-10' : hover}},[_c('v-overlay',{attrs:{\"absolute\":true},model:{value:(_vm.deleteOverlay),callback:function ($$v) {_vm.deleteOverlay=$$v},expression:\"deleteOverlay\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1),_c('v-row',{staticClass:\"ma-0 mb-2 align-center\"},[(user.confirmed)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"accent\"}},[_vm._v(\"mdi-account\")])],1):_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"large\":\"\",\"color\":\"red\"}},on),[_vm._v(\"mdi-timer-sand-full\")])]}}],null,true)},[_vm._v(\" Bestätigung des eingeladenen Benutzers noch ausstehend. \")])],1),(user.confirmed)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"10\"}},[_c('p',{staticClass:\"title ma-0 pa-0 truncate\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(user.firstname)+\" \"+_vm._s(user.lastname)+\" \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(user.firstname)+\" \"+_vm._s(user.lastname)+\" \")])],1)]):_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"10\"}},[_c('p',{staticClass:\"title ma-0 pa-0 truncate\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(user.username)+\" \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(user.username)+\" \")])],1)]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\",\"title\":\"Öffnet das Kontextmenü zum Benutzer.\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.userIsLoggedInUser(user.userId)},on:{\"click\":function($event){_vm.userToRemove = user; _vm.userDeleteWarningDialog = true}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-delete\")])],1),_c('v-list-item-title',[_vm._v(\" Löschen \")])],1)],1)],1)],1)],1),(user.confirmed)?_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(user.username)+\" \")])])],1):_vm._e(),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.savingClaim || _vm.userIsLoggedInUser(user.userId) || _vm.isOnlyTrueManageUser(user.canManageUsers) || !user.confirmed,\"label\":\"Benutzer verwalten\",\"color\":\"accent\",\"hide-details\":true,\"dense\":true},on:{\"change\":function($event){return _vm.saveClaim(user.userId, user.username, 'ManageUser', $event)}},model:{value:(user.canManageUsers),callback:function ($$v) {_vm.$set(user, \"canManageUsers\", $$v)},expression:\"user.canManageUsers\"}})],1)]}}],null,true)},[(_vm.userIsLoggedInUser(user.userId))?_c('span',[_vm._v(\" Die Rechte des eigenen Benutzers können nicht angepasst werden. \")]):(!user.confirmed)?_c('span',[_vm._v(\" Die Rechte können erst angepasst werden, wenn der Benutzer bestätigt ist. \")]):(_vm.isOnlyTrueManageUser(user.canManageUsers))?_c('span',[_vm._v(\" Es muss stets 1 Benutzer das Recht \\\"Benutzer verwalten\\\" haben. \")]):_c('span',[_vm._v(\" Der Benutzer kann weitere Benutzer hinzufügen, Benutzer löschen und die Rechte aller Benutzer bearbeiten. \")])])],1)],1),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.savingClaim || _vm.userIsLoggedInUser(user.userId) || _vm.isOnlyDirectOrderUser(user.canOrderDirectly) || !user.confirmed,\"label\":\"Bestellen\",\"color\":\"accent\",\"hide-details\":true,\"dense\":true},on:{\"change\":function($event){return _vm.saveClaim(user.userId, user.username, 'DirectOrder', $event)}},model:{value:(user.canOrderDirectly),callback:function ($$v) {_vm.$set(user, \"canOrderDirectly\", $$v)},expression:\"user.canOrderDirectly\"}})],1)]}}],null,true)},[(_vm.userIsLoggedInUser(user.userId))?_c('span',[_vm._v(\" Die Rechte des eigenen Benutzers können nicht angepasst werden. \")]):(!user.confirmed)?_c('span',[_vm._v(\" Die Rechte können erst angepasst werden, wenn der Benutzer bestätigt ist. \")]):(_vm.isOnlyDirectOrderUser(user.canOrderDirectly))?_c('span',[_vm._v(\" Es muss stets 1 Benutzer das Recht \\\"Bestellen\\\" haben. \")]):_c('span',[_vm._v(\" Der Benutzer kann zahlungspflichtig bestellen. \")])])],1)],1),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.savingClaim || _vm.userIsLoggedInUser(user.userId) || !user.confirmed,\"label\":\"Bestellung beantragen\",\"color\":\"accent\",\"hide-details\":true,\"dense\":true},on:{\"change\":function($event){return _vm.saveClaim(user.userId, user.username, 'IndirectOrder', $event)}},model:{value:(user.canOrderIndirectly),callback:function ($$v) {_vm.$set(user, \"canOrderIndirectly\", $$v)},expression:\"user.canOrderIndirectly\"}})],1)]}}],null,true)},[(_vm.userIsLoggedInUser(user.userId))?_c('span',[_vm._v(\" Die Rechte des eigenen Benutzers können nicht angepasst werden. \")]):(!user.confirmed)?_c('span',[_vm._v(\" Die Rechte können erst angepasst werden, wenn der Benutzer bestätigt ist. \")]):_c('span',[_vm._v(\" Der Benutzer kann Bestellungen vorbereiten und zur Bestätigung an Benutzer mit der entsprechenden Berechtigung senden. \")])])],1)],1),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.savingClaim || _vm.userIsLoggedInUser(user.userId) || !user.confirmed,\"label\":\"Lieferadressen ändern\",\"color\":\"accent\",\"hide-details\":true,\"dense\":true},on:{\"change\":function($event){return _vm.saveClaim(user.userId, user.username, 'ChangeDeliveryAddress', $event)}},model:{value:(user.canChangeDeliveryAddress),callback:function ($$v) {_vm.$set(user, \"canChangeDeliveryAddress\", $$v)},expression:\"user.canChangeDeliveryAddress\"}})],1)]}}],null,true)},[(_vm.userIsLoggedInUser(user.userId))?_c('span',[_vm._v(\" Die Rechte des eigenen Benutzers können nicht angepasst werden. \")]):(!user.confirmed)?_c('span',[_vm._v(\" Die Rechte können erst angepasst werden, wenn der Benutzer bestätigt ist. \")]):_c('span',[_vm._v(\" Der Benutzer kann die Lieferadressen ändern. \")])])],1)],1),_c('v-row',{staticClass:\"ma-0\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":_vm.savingClaim || _vm.userIsLoggedInUser(user.userId) || !user.confirmed,\"label\":\"Rechnungsadressen ändern\",\"color\":\"accent\",\"hide-details\":true,\"dense\":true},on:{\"change\":function($event){return _vm.saveClaim(user.userId, user.username, 'ChangeInvoiceAddress', $event)}},model:{value:(user.canChangeInvoiceAddress),callback:function ($$v) {_vm.$set(user, \"canChangeInvoiceAddress\", $$v)},expression:\"user.canChangeInvoiceAddress\"}})],1)]}}],null,true)},[(_vm.userIsLoggedInUser(user.userId))?_c('span',[_vm._v(\" Die Rechte des eigenen Benutzers können nicht angepasst werden. \")]):(!user.confirmed)?_c('span',[_vm._v(\" Die Rechte können erst angepasst werden, wenn der Benutzer bestätigt ist. \")]):_c('span',[_vm._v(\" Der Benutzer kann die Rechnungsadressen ändern. \")])])],1)],1)],1)]}}],null,true)})],1)}),1):(!_vm.isLoading)?_c('v-row',[_vm._v(\" Berechtigung zur Benutzerverwaltung nicht vorhanden. \")]):_vm._e(),_c('v-form',{ref:\"form\",model:{value:(_vm.isValidEmail),callback:function ($$v) {_vm.isValidEmail=$$v},expression:\"isValidEmail\"}},[_c('v-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.addUserDialog),callback:function ($$v) {_vm.addUserDialog=$$v},expression:\"addUserDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Benutzer hinzufügen\")]),_c('v-card-text',[_c('v-text-field',{attrs:{\"placeholder\":\"Email des neuen Benutzers\",\"rules\":_vm.validEmailRule,\"color\":\"accent\"},model:{value:(_vm.newUser.username),callback:function ($$v) {_vm.$set(_vm.newUser, \"username\", $$v)},expression:\"newUser.username\"}}),_vm._v(\" Rechte des neuen Benutzers \"),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Benutzer verwalten\",\"color\":\"accent\"},model:{value:(_vm.newUser.canManageUsers),callback:function ($$v) {_vm.$set(_vm.newUser, \"canManageUsers\", $$v)},expression:\"newUser.canManageUsers\"}})],1)]}}])},[_vm._v(\" Der Benutzer kann weitere Benutzer hinzufügen, Benutzer löschen und die Rechte aller Benutzer bearbeiten. \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Bestellen\",\"color\":\"accent\"},model:{value:(_vm.newUser.canOrderDirectly),callback:function ($$v) {_vm.$set(_vm.newUser, \"canOrderDirectly\", $$v)},expression:\"newUser.canOrderDirectly\"}})],1)]}}])},[_vm._v(\" Der Benutzer kann zahlungspflichtig bestellen. \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Bestellung beantragen\",\"color\":\"accent\"},model:{value:(_vm.newUser.canOrderIndirectly),callback:function ($$v) {_vm.$set(_vm.newUser, \"canOrderIndirectly\", $$v)},expression:\"newUser.canOrderIndirectly\"}})],1)]}}])},[_vm._v(\" Der Benutzer kann Bestellungen vorbereiten und zur Bestätigung an Benutzer mit der entsprechenden Berechtigung senden. \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Lieferadressen ändern\",\"color\":\"accent\"},model:{value:(_vm.newUser.canChangeDeliveryAddress),callback:function ($$v) {_vm.$set(_vm.newUser, \"canChangeDeliveryAddress\", $$v)},expression:\"newUser.canChangeDeliveryAddress\"}})],1)]}}])},[_vm._v(\" Der Benutzer kann die Lieferadressen ändern. \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"200\",\"content-class\":\"customTooltip\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"Rechnungsadressen ändern\",\"color\":\"accent\"},model:{value:(_vm.newUser.canChangeInvoiceAddress),callback:function ($$v) {_vm.$set(_vm.newUser, \"canChangeInvoiceAddress\", $$v)},expression:\"newUser.canChangeInvoiceAddress\"}})],1)]}}])},[_vm._v(\" Der Benutzer kann die Rechnungsadressen ändern. \")])],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.addUserDialog = false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\",\"disabled\":!_vm.isValidEmail},on:{\"click\":function($event){return _vm.addUser()}}},[_vm._v(\" Hinzufügen \")])],1)],1)],1)],1),(_vm.userToRemove != null)?_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.userDeleteWarningDialog),callback:function ($$v) {_vm.userDeleteWarningDialog=$$v},expression:\"userDeleteWarningDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"Sind Sie sicher?\")]),_c('v-card-text',[_vm._v(\" Soll der Benutzer \"+_vm._s(_vm.userToRemove.username)+\" wirklich aus dem Konto entfernt werden? \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.userDeleteWarningDialog=false}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.removeUserFromAccount()}}},[_vm._v(\" Entfernen \")])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class UserLoginDto {\r\n public firstname: string = '';\r\n public lastname: string = '';\r\n public username: string = '';\r\n public userId: string = '';\r\n\tpublic confirmed: boolean = false;\r\n\tpublic canManageUsers: boolean = false;\r\n\tpublic canChangeDeliveryAddress: boolean = false;\r\n\tpublic canChangeInvoiceAddress: boolean = false;\r\n\tpublic canOrderDirectly: boolean = false;\r\n\tpublic canOrderIndirectly: boolean = false;\r\n}","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '@/store/httpClient';\r\nimport { UserLoginDto } from '@/dtos/userLoginDto'\r\nimport { UserClaimDto } from '@/dtos/userClaimDto'\r\nimport rules from '@/store/rules'\r\n\r\n@Component({\r\n components: {\r\n }\r\n})\r\nexport default class UserManagement extends Vue {\r\n\tprivate users: Array = new Array();\r\n\tprivate currentUserId: string = '';\r\n private deleteOverlay: boolean = false;\r\n\tprivate userDeleteWarningDialog: boolean = false;\r\n\tprivate addUserDialog: boolean = false;\r\n\tprivate newUser: UserLoginDto = new UserLoginDto();\r\n\tprivate isValidEmail: boolean = false;\r\n\tprivate validEmailRule: any = rules.requiredEmailRule;\r\n\tprivate userToRemove: UserLoginDto | null = null;\r\n\tprivate savingClaim: boolean = false;\r\n\r\n private mounted() {\r\n\t\tthis.getCurrentUserId();\r\n\t\tthis.loadUsers();\r\n\t\tthis.newUser.canOrderIndirectly = true;\r\n }\r\n\r\n\t@Watch('addUserDialog')\r\n\tprivate validateForm() {\r\n\t\tif (this.addUserDialog === true) {\r\n\t\t\t(this.$refs.form as any).validate();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get usersLoaded(): boolean {\r\n\t\treturn this.users.length > 0;\r\n\t}\r\n\r\n\tprivate get isLoading(): boolean {\r\n\t\treturn this.$store.state.loading;\r\n\t}\r\n\r\n\t// Puts the logged in user at first position\r\n\t// Then sorts by confirmed/not confirmed\r\n\t// Then sorts by email alphabetically\r\n\tprivate get sortedUsers(): UserLoginDto[] {\r\n\t\tlet usersCopy = JSON.parse(JSON.stringify(this.users));\r\n\t\tlet currentUser = usersCopy.filter((u: UserLoginDto) => u.userId === this.currentUserId)[0];\r\n\t\tlet currentUserIndex = usersCopy.indexOf(currentUser);\r\n\t\tif (currentUserIndex > -1) {\r\n\t\t\tusersCopy.splice(currentUserIndex, 1);\r\n\t\t}\r\n\t\tusersCopy.sort((u1: UserLoginDto, u2: UserLoginDto) => {\r\n\t\t\tif (u1.confirmed && !u2.confirmed) return -1;\r\n\t\t\tif (!u1.confirmed && u2.confirmed) return 1;\r\n\r\n\t\t\tvar textA = u1.username.toUpperCase();\r\n\t\t\tvar textB = u2.username.toUpperCase();\r\n\t\t\treturn (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\r\n\t\t});\r\n\t\tif (currentUserIndex > -1) {\r\n\t\t\tusersCopy.unshift(currentUser);\r\n\t\t}\r\n\t\treturn usersCopy;\r\n\t}\r\n\r\n\tprivate get currentUser(): UserLoginDto {\r\n\t\tif (this.usersLoaded && this.currentUserId !== '') {\r\n\t\t\tlet user = this.users.filter((u: UserLoginDto) => u.userId === this.currentUserId);\r\n\t\t\tif (user.length > 0) {\r\n\t\t\t\treturn user[0];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new UserLoginDto();\r\n\t}\r\n\r\n\tprivate get userCanManageUsers() {\r\n\t\treturn this.currentUser.canManageUsers;\r\n\t}\r\n\r\n\tprivate userIsLoggedInUser(userId: string) {\r\n\t\treturn this.currentUserId === userId;\r\n\t}\r\n\r\n\tprivate isOnlyTrueManageUser(canManageUser: boolean) {\r\n\t\tif (!canManageUser) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet manageUserUsersCount = this.users.filter((u: UserLoginDto) => u.canManageUsers).length;\r\n\t\treturn manageUserUsersCount < 2\r\n\t}\r\n\r\n\tprivate isOnlyDirectOrderUser(canOrderDirectly: boolean) {\r\n\t\tif (!canOrderDirectly) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet directOrderUsersCount = this.users.filter((u: UserLoginDto) => u.canOrderDirectly).length;\r\n\t\treturn directOrderUsersCount < 2\r\n\t}\r\n\r\n\tprivate async getCurrentUserId() {\r\n\t\ttry {\r\n\t\t\tconst response = await httpClient().get('Customer/GetCurrentUserId');\r\n\t\t\tthis.currentUserId = response.data;\r\n\t\t} catch(err) {\r\n\t\t\tconsole.log('Error while getting current user id', err);\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim Laden der Benutzer-Id.');\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async loadUsers() {\r\n\t\ttry {\r\n\t\t\tthis.$store.commit('setLoading', true);\r\n\t\t\tconst response = await httpClient().get('Customer/GetUsersOfCustomer');\r\n\t\t\tthis.users = response.data;\r\n\t\t} catch(err) {\r\n\t\t\tconsole.log('Error while loading users', err);\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim Laden der Benutzer.');\r\n\t\t} finally {\r\n\t\t\tthis.$store.commit('setLoading', false);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async saveClaim(userId: string, username: string, claimType: string, claimValue: boolean) {\r\n\t\tconsole.log(`Setting claim ${claimType} to ${claimValue} for user ${username}...`);\r\n\t\ttry {\r\n\t\t\tthis.savingClaim = true;\r\n\t\t\tthis.updateLocalUser(userId, claimType, claimValue);\r\n\t\t\tlet claimDto: UserClaimDto = {\r\n\t\t\t\tuserId: userId,\r\n\t\t\t\tusername: username,\r\n\t\t\t\tclaimType: claimType,\r\n\t\t\t\tclaimValue: claimValue ? 'true' : 'false'\r\n\t\t\t};\t\t\t\r\n\t\t\tconst response = await httpClient().post('Customer/SaveUserClaim', claimDto);\r\n\t\t\tif (response.status === 200) {\r\n\t\t\t\tthis.$store.dispatch('setSnackbarText', 'Berechtigung erfolgreich gespeichert.');\r\n\t\t\t} else {\r\n\t\t\t\tthrow `Error status code: ${response.status}`;\r\n\t\t\t}\r\n\t\t} catch(err) {\r\n\t\t\tconsole.log('Error while saving user claim', err);\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim Speichern der Berechtigung.');\r\n\t\t} finally {\r\n\t\t\tthis.savingClaim = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateLocalUser(userId: string, claimType: string, claimValue: boolean) {\r\n\t\tlet user = this.users.find((u:UserLoginDto) => u.userId === userId);\r\n\t\tif (!user) return;\r\n\t\tswitch (claimType) {\r\n\t\t\tcase 'ManageUser':\r\n\t\t\t\tuser.canManageUsers = claimValue;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'DirectOrder':\r\n\t\t\t\tuser.canOrderDirectly = claimValue;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'IndirectOrder':\r\n\t\t\t\tuser.canOrderIndirectly = claimValue;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'ChangeDeliveryAddress':\r\n\t\t\t\tuser.canChangeDeliveryAddress = claimValue;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'ChangeInvoiceAddress':\r\n\t\t\t\tuser.canChangeInvoiceAddress = claimValue;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async addUser() {\r\n\t\tlet successful = false;\r\n\t\ttry {\r\n\t\t\tthis.$store.commit('setLoading', true);\r\n\t\t\tconst response = await httpClient().post(`Customer/InviteUser?invitedByUsername=${this.currentUser.username}`, this.newUser);\r\n\t\t\tif (response.status === 200) {\r\n\t\t\t\tthis.$store.dispatch('setSnackbarText', 'Einladung erfolgreich an Benutzer gesendet.');\r\n\t\t\t\tthis.addUserDialog = false;\r\n\t\t\t\tthis.newUser = new UserLoginDto();\r\n\t\t\t\tthis.newUser.canOrderIndirectly = true;\r\n\t\t\t\tsuccessful = true;\r\n\t\t\t} else {\r\n\t\t\t\tthrow `Error status code: ${response.status}`;\r\n\t\t\t}\r\n\t\t} catch(err) {\r\n\t\t\tconsole.error('Error while adding user', err);\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim versenden der Einladung an den Benutzer.');\r\n\t\t} finally {\r\n\t\t\tthis.$store.commit('setLoading', false);\r\n\t\t}\r\n\t\t// Reload users to get the newly invited one\r\n\t\tif (successful) {\r\n\t\t\tawait this.loadUsers();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async removeUserFromAccount() {\r\n\t\ttry {\r\n\t\t\tthis.$store.commit('setLoading', true);\r\n\t\t\tawait httpClient().post(`Customer/removeUserFromAccount?username=${this.userToRemove?.username}`);\r\n\t\t\tawait this.loadUsers();\r\n\t\t\tthis.userDeleteWarningDialog = false;\r\n\t\t\tthis.userToRemove = null;\r\n\t\t} catch(err) {\r\n\t\t\tconsole.error('Error while removing user', err);\r\n\t\t\tthis.$store.dispatch('setSnackbarErrorText', 'Fehler beim Löschen des Benutzers.');\r\n\t\t} finally {\r\n\t\t\tthis.$store.commit('setLoading', false);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate goToUserSettings() {\r\n\t\tthis.$router.push({ \r\n\t\t\tname: 'Settings', \r\n\t\t\tparams: { \r\n\t\t\t\ttab: 'user', \r\n\t\t\t} \r\n\t\t});\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=54707d68&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=ts\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=54707d68&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54707d68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(!_vm.isLoading && !_vm.order.orderId)?_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_vm._v(\" Der Auftrag konnte nicht gefunden werden. \")])],1)],1):(_vm.order.orderId > 0)?_c('v-container',[_c('h2',[_vm._v(\"Stornierung für Auftrag #\"+_vm._s(_vm.order.orderId)+\" beantragen\")]),(_vm.orderProcessedInMeantime)?_c('v-row',[_c('v-col',{staticClass:\"red--text\",attrs:{\"cols\":\"12\"}},[_c('p',[_vm._v(\" Leider hat die Verarbeitung des Auftrags inzwischen begonnen. \")])])],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"mb-0\"},[_vm._v(\" Dieser Auftrag wird bereits bearbeitet. Eine Stornierung kann aber trotzdem beantragt werden.\"),_c('br'),_vm._v(\" Wir klären die bereits entstandenen Kosten ab und kontaktieren Sie per E-Mail. Sie entscheiden dann, welche Positionen des Auftrags Sie definitiv stornieren möchten. \"),_c('br'),_vm._v(\" Selbst wenn nach der Kostenabklärung auf die Stornierung verzichtet wird, ist eine Bearbeitungsgebühr von \"),_c('strong',[_vm._v(_vm._s(_vm.order.currency)+\" \"+_vm._s(_vm.fixCost > 0 ? _vm.fixCost : \"...\")+\".-\")]),_vm._v(\" fällig, sobald Sie eine Stornierung beantragen.\"),_c('br'),_c('br'),_vm._v(\" Bitte selektieren Sie die zu stornierenden Artikel: \")])])],1),_c('v-simple-table',{staticStyle:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},on:{\"change\":_vm.toggleAllPositions},model:{value:(_vm.toggleAll),callback:function ($$v) {_vm.toggleAll=$$v},expression:\"toggleAll\"}})],1),_c('th',[_vm._v(\"Position\")]),_c('th',[_vm._v(\"Menge\")]),_c('th',[_vm._v(\"Vorschau\")]),_c('th',[_vm._v(\"Beschreibung\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Preis / Stk\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Preis Total\")])])]),_c('tbody',_vm._l((_vm.order.positions),function(pos){return _c('tr',{key:pos.position},[_c('td',[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(pos.isSelected),callback:function ($$v) {_vm.$set(pos, \"isSelected\", $$v)},expression:\"pos.isSelected\"}})],1),_c('td',[_vm._v(\" \"+_vm._s(pos.position)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(pos.quantity)+\" \")]),_c('td',{staticClass:\"pa-1\"},[_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"90px\",\"height\":\"90px\",\"src\":_vm.getThumbnailUrl(pos.blexonArticleId)}})],1),_c('td',[_c('b',[_vm._v(_vm._s(pos.customerArticleName))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"+_vm._s(pos.materialname)+\" \")]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(pos.pricePerUnit))+\" \")]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")((pos.pricePerUnit * pos.quantity)))+\" \")])])}),0)]},proxy:true}])}),_c('v-divider'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\",\"label\":'Ich akzeptiere die pauschale Bearbeitungsgebühr von ' + _vm.order.currency \n\t\t\t\t\t\t+ ' ' + _vm.fixCost + '.-, welche bei der Beantragung der Stornierung anfällt.'},model:{value:(_vm.acceptingCosts),callback:function ($$v) {_vm.acceptingCosts=$$v},expression:\"acceptingCosts\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"color\":\"red\",\"hide-details\":\"\",\"label\":'OPTIONAL! Ich möchte die ausgewählten Positionen, unabhängig von den entstandenen Kosten, definitiv stornieren. ' + \n\t\t\t\t\t\t'Ich bestätige, alle Stornierungskosten für die Positionen und die Stornierungspauschale zu übernehmen ' + \n\t\t\t\t\t\t'und auf die Teile zu verzichten.'},model:{value:(_vm.forceCancellation),callback:function ($$v) {_vm.forceCancellation=$$v},expression:\"forceCancellation\"}})],1)],1),_c('v-row',{staticClass:\"pa-0 mx-0 my-3\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"mr-3\",on:{\"click\":_vm.goToOrders}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"black--text\",attrs:{\"color\":_vm.forceCancellation ? 'red' : 'accent',\"disabled\":!_vm.cancellationRequestIsValid},on:{\"click\":function($event){return _vm.requestOrderCancellation()}}},[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.forceCancellation ? 'Definitiv stornieren' : 'Stornierung beantragen')+\" \")],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\timport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\n\timport httpClient from \"../../store/httpClient\";\r\n\r\n\t@Component\r\n\texport default class RequestCancellation extends Vue {\r\n\t\t@Prop()\r\n\t\tprivate orderId!: number;\r\n\t\t@Prop()\r\n\t\tprivate orderProcessedInMeantime!: boolean;\r\n\t\tprivate acceptingCosts: boolean = false;\r\n\t\tprivate forceCancellation: boolean = false;\r\n\t\tprivate toggleAll: boolean = false;\r\n\t\tprivate order: any = {};\r\n\t\tprivate fixCost: number = -1;\r\n\r\n\t\tprivate async mounted() {\r\n\t\t\tif (!this.order || this.order.orderId !== this.orderId) {\r\n\t\t\t\tawait this.loadOrder();\r\n\t\t\t}\r\n\t\t\tif (this.fixCost === -1) {\r\n\t\t\t\tawait this.loadFixCost();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate get isLoading() {\r\n\t\t\treturn this.$store.state.loading;\r\n\t\t}\r\n\t\tprivate set isLoading(state: boolean) {\r\n\t\t\tthis.$store.commit(\"setLoading\", state);\r\n\t\t}\r\n\r\n\t\tprivate get cancellationRequestIsValid() {\r\n\t\t\treturn (\r\n\t\t\t\t!this.isLoading &&\r\n\t\t\t\tthis.acceptingCosts &&\r\n\t\t\t\tthis.order != null &&\r\n\t\t\t\tthis.order.positions != null &&\r\n\t\t\t\tthis.order.positions.some((p: any) => p.isSelected)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tprivate async loadFixCost() {\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await httpClient().get(`order/GetFixCostOfCancellation`);\r\n\t\t\t\tthis.fixCost = response.data;\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Stornierungspauschale konnte nicht geladen werden.\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate async loadOrder() {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst response = await httpClient().get(`order/getOrderConfirmation?orderId=${this.orderId}`);\r\n\t\t\t\tlet orderData = response.data;\r\n\t\t\t\torderData.positions.forEach((pos: any) => {\r\n\t\t\t\t\tpos.isSelected = false;\r\n\t\t\t\t});\r\n\t\t\t\tthis.order = {\r\n\t\t\t\t\torderId: orderData.blexonOrderId,\r\n\t\t\t\t\tfertigerId: orderData.fertigerId,\r\n\t\t\t\t\tcurrency: orderData.currency,\r\n\t\t\t\t\tpositions: orderData.positions.filter((p: any) => p.materialname !== null),\r\n\t\t\t\t};\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Auftragspositionen konnten nicht geladen werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate async requestOrderCancellation() {\r\n\t\t\tif (!this.cancellationRequestIsValid) return false;\r\n\t\t\tconsole.log(\"requesting order cancellation...\");\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\r\n\t\t\t\tlet orderPositions = this.order.positions\r\n\t\t\t\t\t.filter((p: any) => p.isSelected)\r\n\t\t\t\t\t.map((p: any) => ({\r\n\t\t\t\t\t\tarticleId: parseInt(p.blexonArticleId),\r\n\t\t\t\t\t\tposition: p.position,\r\n\t\t\t\t\t}));\r\n\r\n\t\t\t\tawait httpClient().post(\r\n\t\t\t\t\t`Order/RequestOrderCancellation?orderId=${this.order.orderId}&force=${this.forceCancellation}`,\r\n\t\t\t\t\torderPositions\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarText\", \"Stornierung wurde beantragt.\");\r\n\r\n\t\t\t\t// Reload cancellations to get the updated list\r\n\t\t\t\tthis.$store.dispatch('reloadCancellationRequests');\t\t\t\t\r\n\t\t\t\tthis.goToOrders();\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Stornierung konnte nicht beantragt werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate toggleAllPositions() {\r\n\t\t\tthis.order.positions.forEach((p: any) => {\r\n\t\t\t\tp.isSelected = this.toggleAll;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate getThumbnailUrl(articleId: number) {\r\n\t\t\treturn this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n\t\t}\r\n\r\n\t\tprivate goToOrders() {\r\n\t\t\tthis.$router.push(\"/Orders\");\r\n\t\t}\r\n\t}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestCancellation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestCancellation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RequestCancellation.vue?vue&type=template&id=0e085246&scoped=true\"\nimport script from \"./RequestCancellation.vue?vue&type=script&lang=ts\"\nexport * from \"./RequestCancellation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RequestCancellation.vue?vue&type=style&index=0&id=0e085246&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e085246\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoading && !_vm.cancellation.blexonOrderId)?_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1)],1)],1):(!_vm.isLoading && !_vm.cancellation.blexonOrderId)?_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_vm._v(\" Der Stornierungsantrag konnte nicht gefunden werden. \")])],1)],1):(!_vm.isLoading && _vm.cancellation.state != 1)?_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"12\"}},[_vm._v(\" Dieser Stornierungsantrag wurde bereits bearbeitet. \")])],1)],1):_c('v-container',[_c('h2',[_vm._v(\"Stornierung für Auftrag #\"+_vm._s(_vm.cancellation.blexonOrderId)+\" bestätigen\")]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{staticClass:\"mb-0\"},[_vm._v(\" Sie haben beantragt, gewisse Positionen dieser Bestellung zu stornieren.\"),_c('br'),_vm._v(\" Die Kosten für die Stornierung sind unten pro Position aufgelistet. Sie können die Positionen auswählen, die sie stornieren möchten. Die Kosten werden entsprechend angepasst. Nicht stornierte Positionen werden normal weiterverarbeitet. Die Stornierungspauschale für die getätigten Abklärungen im Zusammenhang mit der Stornierung ist in jedem Fall fällig und ist in den Kosten enthalten. \")])])],1),_c('v-simple-table',{staticStyle:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},on:{\"change\":_vm.toggleAllPositions},model:{value:(_vm.toggleAll),callback:function ($$v) {_vm.toggleAll=$$v},expression:\"toggleAll\"}})],1),_c('th',[_vm._v(\"Artikel Id\")]),_c('th',[_vm._v(\"Position\")]),_c('th',[_vm._v(\"Vorschau\")]),_c('th',[_vm._v(\"Beschreibung\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Stornierungskosten\")])])]),_c('tbody',[_vm._l((_vm.cancellation.positions),function(pos){return _c('tr',{key:pos.ArticleId},[_c('td',[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(pos.selectedForCancellation),callback:function ($$v) {_vm.$set(pos, \"selectedForCancellation\", $$v)},expression:\"pos.selectedForCancellation\"}})],1),_c('td',[_vm._v(\" \"+_vm._s(pos.articleId)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(pos.position)+\" \")]),_c('td',{staticClass:\"pa-1\"},[_c('v-img',{attrs:{\"contain\":\"\",\"width\":\"90px\",\"height\":\"90px\",\"src\":_vm.getThumbnailUrl(pos.articleId)}})],1),_c('td',[_vm._v(\" \"+_vm._s(_vm.getArticleName(pos.position))+\" \")]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm.getShownCancellationCost(pos.selectedForCancellation, pos.cancellationCost))+\" \")])])}),_c('tr',[_c('td'),_c('td'),_c('td'),_c('td'),_c('td',[_vm._v(\"Stornierungspauschale\")]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.cancellation.fixCosts))+\" \")])]),_c('tr',[_c('td'),_c('td'),_c('td'),_c('td'),_c('td',[_c('b',[_vm._v(\"Total\")])]),_c('td',{staticStyle:{\"text-align\":\"right\"}},[_c('b',[_vm._v(_vm._s(_vm.orderData.currency)+\" \"+_vm._s(_vm._f(\"round2Decimal\")(_vm.totalCostOfCancellation)))])])])],2)]},proxy:true}])}),_c('v-row',{staticClass:\"pa-0 mx-0 my-3\"},[_c('v-btn',{on:{\"click\":_vm.goToOrders}},[_vm._v(\" Zurück \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"blexon-button\",on:{\"click\":function($event){return _vm.confirmCancellation(false)}}},[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_c('span',[_vm._v(\"Nicht stornieren\")])],1),(_vm.selectedSomePositions)?_c('v-btn',{staticClass:\"ml-3 blexon-button\",on:{\"click\":function($event){return _vm.confirmCancellation(true)}}},[(_vm.isLoading)?_c('v-progress-circular',{attrs:{\"size\":\"15\",\"indeterminate\":\"\"}}):_vm._e(),_c('span',[_vm._v(\"Ausgewählte Positionen stornieren\")])],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\timport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\n\timport httpClient from \"../../store/httpClient\";\r\n\r\n\t@Component\r\n\texport default class CancellationConfirmation extends Vue {\r\n\t\t@Prop()\r\n\t\tprivate orderId!: number;\r\n\t\tprivate isLoading: boolean = false;\r\n\t\tprivate cancellation: any = {};\r\n\t\tprivate orderData: any = {};\r\n\t\tprivate toggleAll: boolean = true;\r\n\r\n\t\tprivate async mounted() {\r\n\t\t\tawait this.loadOrderData();\r\n\t\t\tif (this.orderCancellationRequests === null || this.request.length <= 0) {\r\n\t\t\t\tawait this.loadCancellationRequest();\r\n\t\t\t} else {\r\n\t\t\t\tthis.cancellation = this.request;\r\n\t\t\t}\r\n\t\t\tthis.cancellation.positions.forEach((p: any) => p.selectedForCancellation = true);\r\n\t\t}\r\n\r\n\t\tprivate get orderCancellationRequests() {\r\n\t\t\treturn this.$store.state.orderCancellations;\r\n\t\t}\r\n\t\tprivate get request() {\r\n\t\t\treturn this.orderCancellationRequests.filter((o: any) => o.blexonOrderId == this.orderId)[0];\r\n\t\t}\r\n\r\n\t\tprivate get selectedSomePositions() {\r\n\t\t\treturn this.cancellation && this.cancellation.positions.some((p: any) => p.selectedForCancellation);\r\n\t\t}\r\n\r\n\t\tprivate get totalCostOfCancellation() {\r\n\t\t\tif (!this.cancellation) {\r\n\t\t\t\treturn \"-\";\r\n\t\t\t} else {\r\n\t\t\t\tlet cost =\r\n\t\t\t\t\tparseFloat(this.cancellation.fixCosts) +\r\n\t\t\t\t\tthis.cancellation.positions\r\n\t\t\t\t\t\t.filter((p: any) => p.selectedForCancellation)\r\n\t\t\t\t\t\t.reduce((next: number, cost: any) => next + parseFloat(cost.cancellationCost), 0);\r\n\t\t\t\treturn cost.toFixed(2);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate getArticleName(position: number) {\r\n\t\t\tif (!this.orderData.positions) return '';\r\n\t\t\treturn this.orderData.positions.filter((p: any) => p.position === position)[0].customerArticleName;\r\n\t\t}\r\n\r\n\t\tprivate toggleAllPositions() {\r\n\t\t\tthis.cancellation.positions.forEach((p: any) => {\r\n\t\t\t\tp.selectedForCancellation = this.toggleAll;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tprivate getThumbnailUrl(articleId: number) {\r\n\t\t\treturn this.$store.getters.getThumbnailUrl(articleId, undefined);\r\n\t\t}\r\n\r\n\t\tprivate getShownCancellationCost(selected: boolean, cost: number) {\r\n\t\t\treturn selected ? cost.toFixed(2) : '0.00';\r\n\t\t}\r\n\r\n\t\tprivate async loadCancellationRequest() {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst response = await httpClient().post(\"order/GetOrderCancellationRequestsForOrders\", [this.orderId]);\r\n\t\t\t\tthis.cancellation = response.data[0];\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Stornierungsdaten konnten nicht geladen werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate async loadOrderData() {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tconst response = await httpClient().get(`order/getOrderConfirmation?orderId=${this.orderId}`);\r\n\t\t\t\tthis.orderData = response.data;\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Auftragsdaten konnten nicht geladen werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate async confirmCancellation(confirmed: boolean) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.isLoading = true;\r\n\t\t\t\tif (!confirmed) {\r\n\t\t\t\t\tthis.cancellation.positions.forEach((p:any) => p.selectedForCancellation = false);\r\n\t\t\t\t}\r\n\t\t\t\t// Don't wait for the cancellation because it might take a long time\r\n\t\t\t\t// if the order has to be recalculated\r\n\t\t\t\thttpClient().post(`order/ConfirmCancellation`, this.cancellation);\r\n\t\t\t\t// Wait 2 seconds so that the state of the cancellation will already\r\n\t\t\t\t// be set to \"busy\" when reloading the orders/cancellations in the order view.\r\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 2000));\r\n\t\t\t\tthis.goToOrders();\r\n\t\t\t} catch (err) {\r\n\t\t\t\tconsole.log(`Fehler beim Laden der Stornierungsanfrage: ${err}`);\r\n\t\t\t\tthis.$store.dispatch(\"setSnackbarErrorText\", \"Stornierung konnte nicht bestätigt werden.\");\r\n\t\t\t} finally {\r\n\t\t\t\tthis.isLoading = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprivate goToOrders() {\r\n\t\t\tthis.$router.push({ name: \"Orders\" });\r\n\t\t}\r\n\t}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CancellationConfirmation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CancellationConfirmation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CancellationConfirmation.vue?vue&type=template&id=06198ff6&scoped=true\"\nimport script from \"./CancellationConfirmation.vue?vue&type=script&lang=ts\"\nexport * from \"./CancellationConfirmation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CancellationConfirmation.vue?vue&type=style&index=0&id=06198ff6&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06198ff6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}}):_vm._e(),(!_vm.loading)?_c('v-form',{ref:\"form\",model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-container',{attrs:{\"fluid\":\"\",\"pa-0\":\"\",\"ma-0\":\"\"}},[_c('h1',{staticClass:\"font-weight-light\"},[_vm._v(\"Beanstandung zu Auftrag \"+_vm._s(_vm.ticketDto.orderId))]),_c('v-stepper',{model:{value:(_vm.currentStep),callback:function ($$v) {_vm.currentStep=$$v},expression:\"currentStep\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.currentStep > 1,\"step\":\"1\",\"editable\":true}},[_vm._v(\" Positionen auswählen \")]),_vm._l((_vm.selectedPositions),function(complaint,index){return [_c('v-divider',{key:'d' + index}),_c('v-stepper-step',{key:index,attrs:{\"color\":complaint.valid ? 'accent': 'error',\"complete\":_vm.currentStep > index + 2,\"editable\":true,\"step\":index + 2}},[_vm._v(\" \"+_vm._s(_vm.selectedPositions.length > 2 ? 'Pos' : 'Position')+\" \"+_vm._s(complaint.position)+\" \")])]}),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.currentStep > _vm.selectedPositions.length + 2,\"step\":_vm.selectedPositions.length + 2,\"editable\":_vm.canWeiter(),\"color\":_vm.formValid ? 'accent': 'error'}},[_vm._v(\" Kontaktdaten \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":_vm.selectedPositions.length + 3,\"color\":\"accent\",\"editable\":_vm.canWeiter()}},[_vm._v(\" Bestätigung \")])],2),_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('choose-position',{attrs:{\"positions\":_vm.ticketDto.complains,\"ticketClosed\":_vm.ticketBlocked},on:{\"changed\":function($event){_vm.hasChanges = true}}})],1),_vm._l((_vm.selectedPositions),function(position,index){return _c('v-stepper-content',{key:position.position,attrs:{\"step\":index + 2}},[(!_vm.loading)?_c('edit-ticket-position-component',{attrs:{\"complaint\":position,\"ticket\":_vm.ticketDto},on:{\"validChanged\":function($event){position.valid = $event},\"changed\":function($event){_vm.hasChanges = true}}}):_vm._e()],1)}),_c('v-stepper-content',{attrs:{\"step\":_vm.selectedPositions.length + 2}},[_c('div',[_c('p',[_vm._v(\" Wir senden Ihnen eine E-Mail an \"),_c('b',[_vm._v(_vm._s(_vm.ticketDto.customerEmail))]),_vm._v(\", sobald sich der Status dieser Beanstandung ändert. Bei Rückfragen rufen wir Sie unter \"),_c('b',[_vm._v(_vm._s(_vm.ticketDto.customerPhone))]),_vm._v(\" an. \")]),_c('p',[_vm._v(\" Falls Sie für die Bearbeitung dieser Beanstandung anders kontaktiert werden möchten, können Sie alternative Kontaktdaten angeben: \")]),_c('v-btn',{staticClass:\"mx-0 blexon-button\",attrs:{\"disabled\":_vm.ticketBlocked},on:{\"click\":function($event){_vm.ticketDto.useAlternativeContactInfo = !_vm.ticketDto.useAlternativeContactInfo; _vm.hasChanges=true; _vm.validateForm()}}},[_vm._v(\" \"+_vm._s(_vm.altContactButtonText)+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.ticketDto.useAlternativeContactInfo),expression:\"ticketDto.useAlternativeContactInfo\"}],staticClass:\"mt-5\"},[_c('v-text-field',{attrs:{\"label\":\"Alternative E-Mail Adresse\",\"color\":\"accent\",\"rules\":_vm.requiredAltContactEmailRule,\"disabled\":_vm.ticketBlocked},on:{\"input\":function($event){_vm.validateForm(); _vm.hasChanges=true},\"blur\":function($event){_vm.ticketDto.alternativeEmail = _vm.ticketDto.alternativeEmail.trim();}},model:{value:(_vm.ticketDto.alternativeEmail),callback:function ($$v) {_vm.$set(_vm.ticketDto, \"alternativeEmail\", $$v)},expression:\"ticketDto.alternativeEmail\"}}),_c('v-text-field',{attrs:{\"label\":\"Alternative Telefonnummer\",\"color\":\"accent\",\"rules\":_vm.requiredAltContactRule,\"disabled\":_vm.ticketBlocked},on:{\"input\":function($event){_vm.validateForm(); _vm.hasChanges=true},\"blur\":function($event){_vm.ticketDto.alternativePhone = _vm.ticketDto.alternativePhone.trim()}},model:{value:(_vm.ticketDto.alternativePhone),callback:function ($$v) {_vm.$set(_vm.ticketDto, \"alternativePhone\", $$v)},expression:\"ticketDto.alternativePhone\"}})],1)],1)]),_c('v-stepper-content',{attrs:{\"step\":_vm.selectedPositions.length + 3}},[_c('v-layout',{attrs:{\"column\":\"\"}},[(!_vm.canWeiter() && !_vm.ticketBlocked)?_c('v-flex',[_c('p',[_vm._v(\" Bitte ergänzen Sie die fehlenden Angaben, um das Ticket zu erstellen. \")])]):_c('v-flex',[_c('v-simple-table',[[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"50px\"}},[_vm._v(\"Position\")]),_c('th',{staticStyle:{\"max-width\":\"120px\"}},[_vm._v(\"Bild\")]),_c('th',[_vm._v(\"Blexon Id\")]),_c('th',[_vm._v(\"# Beanstandete\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Beanstandung\")]),_c('th',[_vm._v(\"Erwartung\")])])]),_c('tbody',_vm._l((_vm.selectedPositions),function(position,index){return _c('tr',{key:index},[_c('td',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(position.position)+\" \")]),_c('td',[_c('v-img',{staticStyle:{\"margin\":\"5px\"},attrs:{\"contain\":\"\",\"max-height\":\"120px\",\"max-width\":\"120px\",\"src\":_vm.getThumbnailUrl(position.part.partId)}})],1),_c('td',[_vm._v(\" \"+_vm._s(position.part.partId)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(position.numberOfWrongParts)+\" / \"+_vm._s(position.part.menge)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(position.part.description)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getComplainType(position.complainType))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getExpectationDescription(position.expectationType, position.expectation))+\" \")])])}),0)]],2)],1),_c('v-flex',{attrs:{\"mt-5\":\"\"}},[_c('p',{staticClass:\"title\"},[_vm._v(\" Korrespondenz an: \")])]),(_vm.ticketDto.useAlternativeContactInfo)?_c('v-flex',[_c('p',[_vm._v(\" \"+_vm._s(_vm.ticketDto.alternativeEmail)+\" | \"+_vm._s(_vm.ticketDto.alternativePhone)+\" \")])]):_c('v-flex',[_c('p',[_vm._v(\" \"+_vm._s(_vm.ticketDto.customerEmail)+\" | \"+_vm._s(_vm.ticketDto.customerPhone)+\" \")])])],1)],1)],2)],1)],1):_vm._e(),(!_vm.loading)?_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep > 1),expression:\"currentStep > 1\"}],staticClass:\"mx-0 blexon-button\",on:{\"click\":function($event){_vm.currentStep--}}},[_vm._v(\" Zurück \")])],1),_c('v-col',{attrs:{\"align\":\"center\"}},[_c('v-btn',{staticClass:\"mx-0 blexon-button\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" Abbrechen \")])],1),_c('v-col',{attrs:{\"align\":\"right\"}},[_c('v-layout',{attrs:{\"column\":\"\"}},[_c('v-flex',{attrs:{\"shrink\":\"\"}},[_c('v-btn',{staticClass:\"mx-0 blexon-button\",attrs:{\"disabled\":!_vm.canWeiter() || _vm.saving},on:{\"click\":function($event){return _vm.weiter()}}},[(_vm.saving)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"indeterminate\":\"\",\"size\":\"20\"}}):_vm._e(),(_vm.currentStep < _vm.selectedPositions.length + 3)?_c('span',[_vm._v(\"Weiter\")]):_c('span',[_vm._v(\"Abschliessen\")])],1)],1),(_vm.ticketBlocked)?_c('v-flex',{attrs:{\"shrink\":\"\"}},[_vm._v(\" Die Beanstandung ist bereits verarbeitet. Wenden Sie sich an info@blexon.com für weitere Unterstützung. \")]):_vm._e()],1)],1)],1)],1):_vm._e(),_c('v-dialog',{attrs:{\"max-width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.seiteVerlassenDialog),callback:function ($$v) {_vm.seiteVerlassenDialog=$$v},expression:\"seiteVerlassenDialog\"}},[_c('v-card',[_c('v-card-title',[_c('b',[_vm._v(\"Datenverlust Warnung\")])]),_c('v-card-text',[_vm._v(\" Änderungen werden beim Verlassen verworfen. \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.seiteVerlassenDialog = false; _vm.next(false)}}},[_vm._v(\" Abbrechen \")]),_c('v-btn',{staticClass:\"blexon-button\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.next()}}},[_vm._v(\" Ok \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('p',[_vm._v(\" Bitte wählen Sie alle Positionen aus, welche von dieser Meldung betroffen sind. \")]),_c('v-simple-table',{staticClass:\"elevation-1\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"20px\"}}),_c('th',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"50px\"}},[_vm._v(\"Position\")]),_c('th',{staticStyle:{\"max-width\":\"100px\"}},[_vm._v(\"Bild\")]),_c('th',[_vm._v(\"Beschreibung\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Menge\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Stückpreis\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Total\")])])]),_c('tbody',_vm._l((_vm.positions),function(position,index){return _c('tr',{key:index},[_c('td',{staticStyle:{\"width\":\"20px\"}},[_c('v-checkbox',{attrs:{\"hide-details\":\"\",\"disabled\":_vm.ticketClosed,\"color\":\"accent\"},on:{\"change\":function($event){return _vm.$emit('changed')}},model:{value:(position.part.selectedForComplaint),callback:function ($$v) {_vm.$set(position.part, \"selectedForComplaint\", $$v)},expression:\"position.part.selectedForComplaint\"}})],1),_c('td',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"50px\"}},[_vm._v(\" \"+_vm._s(position.position)+\" \")]),_c('td',{staticStyle:{\"max-width\":\"100px\"}},[_c('v-img',{staticStyle:{\"margin\":\"5px\"},attrs:{\"contain\":\"\",\"max-height\":\"80px\",\"src\":_vm.getThumbnailUrl(position.part.partId)}})],1),_c('td',[_c('b',[_vm._v(_vm._s(position.part.description))]),_vm._v(\" \"),_c('br'),_vm._v(\" PartId: \"+_vm._s(position.part.partId)+\" \"),_c('br'),_vm._v(\" Material: \"+_vm._s(position.part.materialBezeichnung)+\" \")]),_c('td',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"100px\"}},[_vm._v(\" \"+_vm._s(position.part.menge)+\" \")]),_c('td',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"100px\"}},[_vm._v(\" \"+_vm._s(_vm.formatPrice(position.part.customerPricePerPart))+\" \")]),_c('td',{staticClass:\"text-right\",staticStyle:{\"max-width\":\"100px\"}},[_vm._v(\" \"+_vm._s(_vm.formatPrice(position.part.customerPricePerPart * position.part.menge))+\" \")])])}),0)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { ComplaintDto } from '../../dtos/ticket/complaintDto';\r\n\r\n@Component\r\nexport default class ChoosePosition extends Vue {\r\n @Prop()\r\n private positions!: ComplaintDto[];\r\n @Prop()\r\n private ticketClosed!: boolean;\r\n\r\n private formatPrice(price: number) {\r\n return price.toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '\\'');\r\n }\r\n\r\n private getThumbnailUrl(partId: string) {\r\n return this.$store.getters.getThumbnailUrl(partId, undefined);\r\n }\r\n}\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum ComplainType {\r\n None = 0,\r\n CutqualityLow = 1,\r\n Scratches = 2,\r\n MissingCuts = 3,\r\n WrongBending = 4,\r\n OutOfTolerance = 5,\r\n TransportDamage = 6,\r\n Missing = 7,\r\n Other = 8,\r\n WrongGrainDirection = 9,\r\n PowderCoating = 10,\r\n Weldline = 11,\r\n Feature = 12\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChoosePosition.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChoosePosition.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ChoosePosition.vue?vue&type=template&id=3be87b98&scoped=true\"\nimport script from \"./ChoosePosition.vue?vue&type=script&lang=ts\"\nexport * from \"./ChoosePosition.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3be87b98\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',[_c('img',{staticStyle:{\"max-height\":\"120px\",\"max-width\":\"120px\"},attrs:{\"src\":_vm.getThumbnailUrl(_vm.complaint.part.partId)}})]),_c('div',{staticClass:\"ml-5\"},[_c('h2',[_vm._v(_vm._s(_vm.complaint.part.description))]),_c('p',[_vm._v(\"Id: \"+_vm._s(_vm.complaint.part.partId))]),_c('p',[_vm._v(\"Material: \"+_vm._s(_vm.complaint.part.materialBezeichnung))])])]),_c('p',[_vm._v(\" Damit wir Ihre Beanstandung schnell und unkompliziert bearbeiten können, brauchen wir zu jeder Position einige Angaben. \")]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('h3',[_c('v-icon',{staticClass:\"pr-3\",attrs:{\"color\":\"accent\",\"medium\":\"\"}},[_vm._v(\" mdi-help \")]),_vm._v(\" Welcher Art ist ihre Beanstandung? \")],1),_c('v-select',{attrs:{\"rules\":_vm.requiredChoiceRule,\"disabled\":_vm.isReadonly,\"color\":\"accent\",\"return-object\":false,\"items\":_vm.beanstandungsTypen,\"label\":\"Bitte auswählen\"},on:{\"change\":function($event){_vm.validateForm(); _vm.$emit('changed')}},model:{value:(_vm.complaint.complainType),callback:function ($$v) {_vm.$set(_vm.complaint, \"complainType\", $$v)},expression:\"complaint.complainType\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.partsAreMissing),expression:\"!partsAreMissing\"}]},[_c('h3',[_c('v-icon',{staticClass:\"pr-3\",attrs:{\"color\":\"accent\",\"medium\":\"\"}},[_vm._v(\"mdi-upload\")]),_vm._v(\" Laden Sie Fotos hoch, welche die Beanstandung möglichst klar zeigen \")],1),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-wrap\":\"wrap\"}},[_vm._l((_vm.complaint.files),function(image,index){return _c('div',{key:index,staticClass:\"mr-3\",staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"width\":\"120px\",\"border\":\"1px solid lightgray\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('v-img',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"src\":_vm.getComplaintImageUri(image.guid),\"height\":\"120px\",\"width\":\"120px\",\"contain\":\"\"},on:{\"click\":function($event){return _vm.onImageClick(index)}}})],1),_c('v-btn',{staticClass:\"blexon-button\",staticStyle:{\"align-self\":\"center\"},attrs:{\"icon\":\"\",\"disabled\":_vm.isReadonly,\"title\":\"Bild löschen\"},on:{\"click\":function($event){_vm.deleteImage(index); _vm.$emit('changed')}}},[_c('v-icon',[_vm._v(\"mdi-delete\")])],1)],1)}),(!_vm.uploadingImages)?_c('v-btn',{staticClass:\"ma-3 blexon-button\",staticStyle:{\"align-self\":\"center\"},attrs:{\"fab\":\"\",\"disabled\":_vm.isReadonly},on:{\"click\":function($event){$event.stopPropagation();return _vm.$refs.upload.click()}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1):_c('v-progress-circular',{staticStyle:{\"align-self\":\"center\"},attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],2),(_vm.complaint.files.length < 1)?_c('p',{staticClass:\"caption\"},[_vm._v(\"Mindestens ein Bild muss hochgeladen werden.\")]):_vm._e(),_c('input',{ref:\"upload\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"multiple\":\"\",\"accept\":\"image/png, image/jpeg\"},on:{\"change\":function($event){_vm.uploadFiles($event.target.files); _vm.$emit('changed')}}}),_c('v-dialog',{attrs:{\"width\":\"100%\"},model:{value:(_vm.showGallery),callback:function ($$v) {_vm.showGallery=$$v},expression:\"showGallery\"}},[(_vm.showGallery)?_c('v-carousel',{attrs:{\"interval\":\"1000000\",\"dark\":\"\"},model:{value:(_vm.currentImage),callback:function ($$v) {_vm.currentImage=$$v},expression:\"currentImage\"}},_vm._l((_vm.complaint.files),function(image,i){return _c('v-carousel-item',{key:i},[_c('v-img',{attrs:{\"src\":_vm.getComplaintImageUri(image.guid),\"height\":\"100%\",\"width\":\"100%\",\"contain\":\"\"}})],1)}),1):_vm._e()],1)],1),(_vm.complaint.part.menge !== 1)?_c('div',[_c('h3',[_c('v-icon',{staticClass:\"pr-3\",attrs:{\"color\":\"accent\",\"medium\":\"\"}},[_vm._v(\"mdi-help\")]),_vm._v(\" Wie viele Teile dieser Position sind betroffen? \")],1),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"flex-start\",\"align-items\":\"baseline\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"disabled\":_vm.isReadonly},on:{\"click\":function($event){_vm.setMaxParts(); _vm.$emit('changed')}}},[_vm._v(\" Alle \")]),_c('v-text-field',{staticClass:\"shrink ml-3\",attrs:{\"disabled\":_vm.isReadonly,\"rules\":_vm.requiredNumberRule,\"type\":\"number\",\"color\":\"accent\",\"label\":\"Anzahl Teile\"},on:{\"change\":function($event){return _vm.$emit('changed')}},model:{value:(_vm.complaint.numberOfWrongParts),callback:function ($$v) {_vm.$set(_vm.complaint, \"numberOfWrongParts\", $$v)},expression:\"complaint.numberOfWrongParts\"}}),_c('span',[_vm._v(\"/ \"+_vm._s(_vm.complaint.part.menge))])],1)]):_vm._e(),_c('h3',[_c('v-icon',{staticClass:\"pr-3\",attrs:{\"color\":\"accent\",\"medium\":\"\"}},[_vm._v(\"mdi-help\")]),_vm._v(\" Was beanstanden Sie? \")],1),_c('v-textarea',{attrs:{\"rows\":\"3\",\"disabled\":_vm.isReadonly,\"label\":\"Beanstandung\",\"color\":\"accent\",\"rules\":_vm.requiredRule},on:{\"change\":function($event){return _vm.$emit('changed')},\"blur\":function($event){_vm.complaint.complainDescription = _vm.complaint.complainDescription.trim()}},model:{value:(_vm.complaint.complainDescription),callback:function ($$v) {_vm.$set(_vm.complaint, \"complainDescription\", $$v)},expression:\"complaint.complainDescription\"}}),_c('h3',[_c('v-icon',{staticClass:\"pr-3\",attrs:{\"color\":\"accent\",\"medium\":\"\"}},[_vm._v(\"mdi-help\")]),_vm._v(\" Was erwarten Sie von uns? \")],1),_c('v-radio-group',{attrs:{\"row\":\"\"},on:{\"change\":function($event){_vm.validateForm(), _vm.$emit('changed')}},model:{value:(_vm.complaint.expectationType),callback:function ($$v) {_vm.$set(_vm.complaint, \"expectationType\", $$v)},expression:\"complaint.expectationType\"}},_vm._l((_vm.expectationTypes),function(item){return _c('v-radio',{key:item.value,attrs:{\"color\":\"accent\",\"disabled\":_vm.isReadonly,\"label\":item.text,\"value\":item.value}})}),1),_c('v-textarea',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.complaint.expectationType !== _vm.ersatzExpectation),expression:\"complaint.expectationType !== ersatzExpectation\"}],attrs:{\"rows\":\"3\",\"disabled\":_vm.isReadonly,\"label\":\"Erwartung\",\"color\":\"accent\",\"rules\":_vm.requiredExpectationDescription},on:{\"change\":function($event){return _vm.$emit('changed')},\"blur\":function($event){_vm.complaint.expectation = _vm.complaint.expectation.trim()}},model:{value:(_vm.complaint.expectation),callback:function ($$v) {_vm.$set(_vm.complaint, \"expectation\", $$v)},expression:\"complaint.expectation\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport class FileDto {\r\n public id: number = 0;\r\n public filename: string = '';\r\n public mimetype: string = '';\r\n public filedata: string = '';\r\n public guid: string = '';\r\n}\r\n","import { ComplainType } from './complainType';\r\n\r\nexport interface IComplainType {\r\n text: string;\r\n value: ComplainType;\r\n}\r\n\r\nconst values: IComplainType[] = [\r\n {\r\n text: 'Masse ausserhalb der Toleranz',\r\n value: ComplainType.OutOfTolerance,\r\n },\r\n {\r\n text: 'Abkantung fehlerhaft',\r\n value: ComplainType.WrongBending,\r\n },\r\n {\r\n text: 'Schnittqualität nicht zufriedenstellend',\r\n value: ComplainType.CutqualityLow,\r\n },\r\n {\r\n text: 'Oberfläche übermässig zerkratzt',\r\n value: ComplainType.Scratches,\r\n },\r\n {\r\n text: 'Fehlende Ausschnitte',\r\n value: ComplainType.MissingCuts,\r\n },\r\n {\r\n text: 'Falsche Schliffrichtung',\r\n value: ComplainType.WrongGrainDirection,\r\n },\r\n {\r\n text: 'Transportschaden',\r\n value: ComplainType.TransportDamage,\r\n },\r\n {\r\n text: 'Teile fehlen in Lieferung',\r\n value: ComplainType.Missing,\r\n },\r\n {\r\n text: 'Pulverbeschichtung fehlerhaft',\r\n value: ComplainType.PowderCoating,\r\n },\r\n {\r\n text: 'Schweißnaht fehlerhaft',\r\n value: ComplainType.Weldline,\r\n },\r\n {\r\n text: 'Gewinde, Senkungen oder Durchzüge fehlerhaft',\r\n value: ComplainType.Feature,\r\n },\r\n {\r\n text: 'Andere Beanstandung',\r\n value: ComplainType.Other,\r\n },\r\n];\r\n\r\nexport default values;\r\n\r\n","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nexport enum ComplaintExpectationType {\r\n Ersatzlieferung = 0,\r\n Other = 1,\r\n}\r\n","import { ComplaintExpectationType } from './complaintExpectationType';\r\n\r\nexport interface IComplaintExpectationType {\r\n text: string;\r\n value: ComplaintExpectationType;\r\n}\r\n\r\nconst values: IComplaintExpectationType[] = [\r\n {\r\n text: 'Ersatzlieferung',\r\n value: ComplaintExpectationType.Ersatzlieferung,\r\n },\r\n {\r\n text: 'Andere Erwartung...',\r\n value: ComplaintExpectationType.Other,\r\n },\r\n];\r\n\r\nexport default values;\r\n\r\n","/* Type of complaint about a product */\r\nexport enum TicketState {\r\n Legacy = 0,\r\n Open = 1,\r\n Resolved = 2,\r\n Closed = 3,\r\n}","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport { FileDto } from '../../dtos/ticket/fileDto';\r\nimport ComplainTypes from '../../dtos/ticket/IComplainType';\r\nimport { IComplainType } from '../../dtos/ticket/IComplainType';\r\nimport { ComplainType } from '../../dtos/ticket/complainType';\r\nimport ComplaintExpectationTypes from '../../dtos/ticket/IComplaintExpectationType';\r\nimport { IComplaintExpectationType } from '../../dtos/ticket/IComplaintExpectationType';\r\nimport { ComplaintExpectationType } from '../../dtos/ticket/complaintExpectationType';\r\nimport { ComplaintDto } from '../../dtos/ticket/complaintDto';\r\nimport rules from '@/store/rules'\r\nimport { TicketState } from '@/dtos/ticket/ticketState';\r\nimport { TicketDto } from '@/dtos/ticket/ticketDto';\r\n\r\n@Component({\r\n components: {},\r\n})\r\nexport default class EditTicketPositionComponent extends Vue {\r\n @Prop()\r\n private complaint!: ComplaintDto;\r\n @Prop()\r\n private ticket!: TicketDto;\r\n private valid: boolean = false;\r\n private showGallery: boolean = false;\r\n private uploadingImages: boolean = false;\r\n private currentImage: number = 0;\r\n private source: any = '';\r\n private expectationTypes: IComplaintExpectationType[] = ComplaintExpectationTypes;\r\n private ersatzExpectation: ComplaintExpectationType = ComplaintExpectationType.Ersatzlieferung;\r\n private requiredRule = rules.requiredRule;\r\n\r\n private requiredExpectationDescription = [\r\n (value: string) => ((this.complaint.expectationType === this.ersatzExpectation) || (value !== undefined && value !== null && value !== '')) || 'Muss angegeben werden.',\r\n ];\r\n\r\n private requiredChoiceRule = [\r\n (value: ComplainType) => (value !== ComplainType.None) || 'Muss angegeben werden.',\r\n ];\r\n\r\n private requiredNumberRule = [\r\n (value: number) => !!value || 'Wert angeben',\r\n (value: number) => value >= 1 || 'Mindestens 1',\r\n (value: number) => value <= this.complaint.part.menge || `Maximal ${this.complaint.part.menge}`,\r\n ];\r\n\r\n private get beanstandungsTypen() : IComplainType[] {\r\n return ComplainTypes.filter(t => \r\n (t.value != ComplainType.PowderCoating || this.complaint.part.powderCoatingTreatmentDto != null) &&\r\n (t.value != ComplainType.Feature || this.complaint.part.featureDtos.length > 0) &&\r\n (t.value != ComplainType.Weldline || this.complaint.part.weldlinesAsText != null));\r\n }\r\n\r\n private beforeMount() {\r\n if (this.complaint !== null && \r\n this.complaint.numberOfWrongParts === 0) {\r\n this.complaint.numberOfWrongParts = 1;\r\n }\r\n }\r\n\r\n private mounted() {\r\n (this.$refs.form as any).validate();\r\n }\r\n\r\n private get partsAreMissing() {\r\n const result: boolean = this.complaint.complainType === ComplainType.Missing;\r\n return result;\r\n }\r\n\r\n private async uploadFiles(files: FileList) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n if (files.length + this.complaint.files.length > 10) {\r\n this.$store.commit('setSnackbarErrorText', 'Sie können maximal 10 Bilder hochladen.');\r\n return;\r\n }\r\n this.uploadingImages = true;\r\n await this.$nextTick()\r\n for (const file of files) {\r\n const data = new FormData();\r\n data.append('file', file);\r\n const config = {\r\n header : {\r\n 'Content-Type' : 'multipart/form-data',\r\n },\r\n onUploadProgress: (progressEvent: any) => {\r\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\r\n console.log(`Upload Progress: ${percentCompleted}`);\r\n },\r\n };\r\n\r\n try {\r\n const response = await httpClient().post(\r\n 'Ticket/UploadImage',\r\n data,\r\n config,\r\n );\r\n const newImage: FileDto = new FileDto();\r\n newImage.guid = response.data;\r\n this.complaint.files.push(newImage);\r\n } catch {\r\n this.$store.commit('setSnackbarErrorText', 'Bild kann nicht gelesen werden. ' +\r\n 'Bitte verwenden Sie ein Bild im Format jpg, png oder gif. ' +\r\n 'Bei Problemen wenden Sie sich bitte an info@blexon.com.');\r\n }\r\n }\r\n\r\n this.uploadingImages = false;\r\n this.validateForm();\r\n }\r\n\r\n private onImageClick(index: number) {\r\n this.currentImage = index;\r\n this.showGallery = true;\r\n }\r\n\r\n private deleteImage(index: number) {\r\n this.complaint.files.splice(index, 1);\r\n }\r\n\r\n private getThumbnailUrl(partId: string) {\r\n return this.$store.getters.getThumbnailUrl(partId, undefined);\r\n }\r\n\r\n private getComplaintImageUri(guid: string) {\r\n return process.env.VUE_APP_HELPDESK_BACKEND + 'api/File/GetImage?guid=' + guid;\r\n }\r\n\r\n private setMaxParts() {\r\n this.complaint.numberOfWrongParts = this.complaint.part.menge;\r\n }\r\n\r\n private get isReadonly() {\r\n return this.ticket.state != TicketState.Open\r\n }\r\n\r\n private validateForm() {\r\n if (this.partsAreMissing) {\r\n this.valid = (this.$refs.form as any).validate();\r\n } else {\r\n this.valid = ((this.$refs.form as any).validate() &&\r\n (this.complaint.files !== null && this.complaint.files.length > 0));\r\n }\r\n }\r\n\r\n @Watch('valid')\r\n private onValidChanged() {\r\n this.$emit('validChanged', this.valid);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditTicketPositionComponent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditTicketPositionComponent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./EditTicketPositionComponent.vue?vue&type=template&id=4a432b21&scoped=true\"\nimport script from \"./EditTicketPositionComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./EditTicketPositionComponent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./EditTicketPositionComponent.vue?vue&type=style&index=0&id=4a432b21&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a432b21\",\n null\n \n)\n\nexport default component.exports","/**\r\n * This is a TypeGen auto-generated file.\r\n * Any changes made to this file can be lost when this file is regenerated.\r\n */\r\n\r\nimport { ComplaintDto } from './complaintDto';\r\nimport { TicketState } from './ticketState';\r\n\r\nexport class TicketDto {\r\n public id: number = 0;\r\n public state: TicketState = TicketState.Legacy;\r\n public orderId: string = '';\r\n public customerId: string = '';\r\n public fertigerId: number = 0;\r\n public customerName: string = '';\r\n public customerPhone: string = '';\r\n public customerEmail: string = '';\r\n public useAlternativeContactInfo: boolean = false;\r\n public alternativePhone: string = '';\r\n public alternativeEmail: string = '';\r\n public manufacturerName: string = '';\r\n public createdAt: Date = new Date();\r\n public complains: ComplaintDto[] = new Array();\r\n public newDueDate: Date = new Date();\r\n public customerRepairCollectionDate: Date = new Date();\r\n}\r\n","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport httpClient from '../../store/httpClient';\r\nimport ChoosePosition from './ChoosePosition.vue';\r\nimport EditTicketPositionComponent from './EditTicketPositionComponent.vue';\r\nimport ComplainTypes from '../../dtos/ticket/IComplainType';\r\nimport { ComplaintExpectationType } from '../../dtos/ticket/complaintExpectationType';\r\nimport { TicketDto } from '../../dtos/ticket/ticketDto';\r\nimport { TicketState } from '@/dtos/ticket/ticketState';\r\n\r\nComponent.registerHooks([\r\n 'beforeRouteLeave',\r\n]);\r\n@Component({\r\n components: {\r\n ChoosePosition,\r\n EditTicketPositionComponent,\r\n },\r\n})\r\nexport default class CreateTicketView extends Vue {\r\n @Prop()\r\n private orderId!: string;\r\n private ticketDto: TicketDto = new TicketDto();\r\n private currentStep: number = 1;\r\n private saving: boolean = false;\r\n private formValid: boolean = false;\r\n private hasChanges: boolean = false;\r\n private next: any;\r\n private loading: boolean = false;\r\n private seiteVerlassenDialog: boolean = false;\r\n\r\n private requiredAltContactRule = [\r\n (value: string) => (this.isAlternativeContact() === false || (value !== undefined && value !== null && value !== '')) || 'Muss angegeben werden.',\r\n ];\r\n\r\n private requiredAltContactEmailRule = [\r\n (value: string) => (this.isAlternativeContact() === false || (value !== undefined && value !== null && value !== '')) || 'Muss angegeben werden.',\r\n (value: string) => (this.isAlternativeContact() === false || (this.validateEmail(value))) || 'Keine gültige Email.',\r\n ];\r\n\r\n private async mounted() {\r\n this.loadTicketDto();\r\n }\r\n\r\n private get altContactButtonText() {\r\n if (this.isAlternativeContact()) {\r\n return 'Standard Kontaktdaten verwenden';\r\n } else {\r\n return 'Alternative Kontaktdaten verwenden';\r\n }\r\n }\r\n\r\n private validateEmail(email: string) {\r\n const re = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n const matches = re.exec(email);\r\n return matches !== null && matches[0] === matches.input;\r\n }\r\n\r\n private isAlternativeContact() {\r\n return this.ticketDto.useAlternativeContactInfo;\r\n }\r\n\r\n private get selectedPositions() {\r\n return this.ticketDto.complains.filter((c) => c.part.selectedForComplaint === true);\r\n }\r\n\r\n private getComplainType(value: number) {\r\n const selectedValue = ComplainTypes.filter((t) => t.value === value)[0];\r\n if (selectedValue !== undefined) {\r\n return selectedValue.text;\r\n }\r\n return '';\r\n }\r\n\r\n private getExpectationDescription(typeValue: ComplaintExpectationType, stringValue: string) {\r\n if (typeValue === ComplaintExpectationType.Ersatzlieferung) {\r\n return 'Ersatzlieferung';\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n private getThumbnailUrl(partId: string) {\r\n return this.$store.getters.getThumbnailUrl(partId, undefined);\r\n }\r\n\r\n private get ticketBlocked() {\r\n if (this.ticketDto != null && this.ticketDto.state != TicketState.Open) {\r\n return true\r\n }\r\n return false;\r\n }\r\n\r\n private canWeiter(): boolean {\r\n // Wenn noch nichts ausgewählt ist, kann man nicht weiter\r\n if (this.selectedPositions.length <= 0) {\r\n return false;\r\n }\r\n if (this.currentStep === this.selectedPositions.length + 3 &&\r\n (this.ticketDto.complains.some((c) => c.part.selectedForComplaint && !c.valid) ||\r\n !this.formValid ||\r\n this.ticketBlocked)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private async weiter() {\r\n if (this.currentStep < this.selectedPositions.length + 3) {\r\n this.currentStep++;\r\n } else {\r\n try {\r\n this.saving = true;\r\n await httpClient().post('Ticket/SaveTicket', this.ticketDto);\r\n this.$store.dispatch('setSnackbarText', 'Beanstandung wurde erfolgreich gespeichert.');\r\n this.hasChanges = false;\r\n this.close();\r\n } catch(err) {\r\n this.$store.dispatch('setSnackbarErrorText', 'Fehler beim Speichern. Bitte wenden Sie sich an info@blexon.com.');\r\n } finally {\r\n this.saving = false;\r\n }\r\n }\r\n }\r\n\r\n private close() {\r\n this.$router.push({name: 'Catalogue'});\r\n }\r\n\r\n private async loadTicketDto() {\r\n try {\r\n this.loading = true;\r\n const response = await httpClient().get(`Ticket/GetTicket?orderId=${this.orderId}`);\r\n this.ticketDto = response.data;\r\n } catch {\r\n this.$store.dispatch('setSnackbarErrorText', 'Ticket kann nicht erstellt werden. Auftrag nicht gefunden.');\r\n this.hasChanges = false;\r\n this.$router.push('/Orders')\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n private validateForm() {\r\n this.formValid = (this.$refs.form as any).validate();\r\n }\r\n\r\n private beforeRouteLeave(to: any, from: any, next: any) {\r\n if (this.hasChanges) {\r\n this.next = next;\r\n this.seiteVerlassenDialog = true;\r\n } else {\r\n next();\r\n }\r\n } \r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTicket.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTicket.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CreateTicket.vue?vue&type=template&id=4a97f0b6\"\nimport script from \"./CreateTicket.vue?vue&type=script&lang=ts\"\nexport * from \"./CreateTicket.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport VueRouter, { RouteConfig } from 'vue-router'\r\nimport Catalogue from './views/Catalogue/Catalogue.vue'\r\nimport Assembly from './views/Catalogue/Assembly.vue'\r\nimport Orders from './views/OrderHistory/Orders.vue'\r\nimport Checkout from './views/Checkout/Checkout.vue'\r\nimport Settings from './views/Settings/Settings.vue'\r\nimport NotFoundComponent from './views/NotFoundComponent.vue'\r\nimport UserManagement from './views/Settings/UserManagement.vue'\r\nimport RequestCancellation from '@/views/OrderHistory/RequestCancellation.vue'\r\nimport CancellationConfirmation from '@/views/OrderHistory/CancellationConfirmation.vue'\r\nimport CreateTicket from '@/views/OrderHistory/CreateTicket.vue'\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/Settings/:tab?',\r\n name: 'Settings',\r\n props: (route) => ({\r\n tabName: route.params.tab,\r\n }),\r\n component: Settings\r\n },\r\n {\r\n path: '/UserManagement',\r\n name: 'UserManagement',\r\n component: UserManagement\r\n },\r\n {\r\n path: '/Catalogue',\r\n name: 'Catalogue',\r\n component: Catalogue\r\n },\r\n {\r\n path: '/Catalogue/Assembly/:assemblyId?',\r\n name: 'Assembly',\r\n props: (route) => ({\r\n assemblyId: route.params.assemblyId,\r\n }),\r\n component: Assembly\r\n },\r\n {\r\n path: '/Orders',\r\n name: 'Orders',\r\n component: Orders \r\n },\r\n {\r\n path: '/Checkout',\r\n name: 'Checkout',\r\n component: Checkout\r\n },\r\n {\r\n path: '/RequestCancellation/:orderId/:orderProcessedInMeantime',\r\n name: 'RequestCancellation',\r\n props: (route) => ({ \r\n orderId: route.params.orderId, \r\n orderProcessedInMeantime: (String(route.params.orderProcessedInMeantime).toLowerCase() === 'true')\r\n }),\r\n component: RequestCancellation,\r\n },\r\n {\r\n path: '/CancellationConfirmation/:orderId/',\r\n name: 'CancellationConfirmation',\r\n props: (route) => ({ \r\n orderId: route.params.orderId\r\n }),\r\n component: CancellationConfirmation,\r\n },\r\n {\r\n path: '/Ticket/:orderId/',\r\n name: 'CreateOrEditTicket',\r\n props: (route) => ({ \r\n orderId: route.params.orderId\r\n }),\r\n component: CreateTicket,\r\n },\r\n {\r\n path: '/',\r\n redirect: to => {\r\n return { path: '/Catalogue', name: 'Catalogue', component: Catalogue }\r\n }\r\n },\r\n {\r\n path: '*',\r\n component: NotFoundComponent,\r\n }\r\n]\r\n\r\nconst router = new VueRouter({\r\n routes\r\n})\r\n\r\n// router.beforeEach((to, from, next) => {\r\n// console.log('to:'); \r\n// console.log(to);\r\n// console.log('from:');\r\n// console.log(from);\r\n// next();\r\n// })\r\n\r\nVue.use(VueRouter)\r\nexport default router\r\n","import { CustomerInfoDto } from './../dtos/customerInfoDto';\r\nimport { PowderCoatingTreatmentDto } from '@/dtos/powderCoatingTreatmentDto';\r\nimport { CustomerArticleDto } from './../dtos/customerArticleDto';\r\nimport { UserManager} from 'oidc-client';\r\nimport httpClient from './httpClient';\r\nimport * as signalR from '@microsoft/signalr';\r\nimport { SavedCartDto } from '@/dtos/savedCartDto';\r\nimport { PriceState } from '@/dtos/priceState';\r\nimport { SavedCartPosition } from '@/dtos/savedCartPosition';\r\nimport { CartItem } from '@/dtos/cartItem';\r\nimport { Cart } from '@/dtos/cart';\r\n\r\nexport default {\r\n async bootstrap(context: any) {\r\n return new Promise((resolve, reject) => {\r\n console.log('start bootstrap application');\r\n const queryString = window.location.search;\r\n const urlParams = new URLSearchParams(queryString);\r\n var signInUser = urlParams.get('signInUser');\r\n if (signInUser != null) {\r\n // Der Benutzer soll automatisch eingeloggt werden.\r\n // Dazu speichern wir den Logincode, damit wir den noch haben,\r\n // nach dem Logout. Das Logout macht ein redirect, was\r\n // sich leider nicht verhindern lässt.\r\n var url = process.env.VUE_APP_KUNDENPORTAL_URL;\r\n url = url?.substr(0, url.length - 3);\r\n window.sessionStorage.setItem('loginCodeUrl', `${url}?loginCode=${encodeURIComponent(signInUser)}`);\r\n var client = new UserManager(context.state.oidc.config);\r\n context.commit('storeOidcInstance', client);\r\n context.state.oidc.instance.signoutRedirect();\r\n resolve();\r\n }\r\n var loginCode = urlParams.get('loginCode');\r\n if (loginCode != null) {\r\n // Nun wurden wir nach dem Ausloggen auf logout.html weitergeleitet\r\n // und von dort wieder hierher. Da ein LoginCode gespeichert war,\r\n // wird der hier mitgeschickt.\r\n context.state.oidc.config.display = loginCode;\r\n // Mit dem LoginCode im der Displayeigenschaft, macht der identity server\r\n // ein sofortiges Login.\r\n }\r\n var client = new UserManager(context.state.oidc.config);\r\n // Add event when token expires. This is just for monitoring\r\n // at the beginning. Can be removed later.\r\n client.events.addAccessTokenExpiring(function(){\r\n console.log(\"shop token expiring...\");\r\n });\r\n context.commit('storeOidcInstance', client);\r\n console.log('checking user authentication');\r\n context.state.oidc.instance.getUser().then((user: any) => {\r\n if (user === null || user.expired) {\r\n console.log('user is not authenticated - redirect to signin');\r\n // Store the actually requested url so we can redirect\r\n // after authentication to this page.\r\n if (signInUser == null && loginCode == null) {\r\n // Die Return url enthält den LoginCode, deshalb\r\n // speichern wir sie nicht, wenn der Benutzer mit einem Logincode\r\n // einloggt.\r\n window.sessionStorage.setItem('returnUrl', window.location.href);\r\n }\r\n context.state.oidc.instance.signinRedirect();\r\n } else {\r\n console.log('user authenticated');\r\n context.commit('storeOidcUser', user);\r\n resolve();\r\n }\r\n });\r\n });\r\n },\r\n\r\n // MISC\r\n // **************************************************\r\n\r\n /**\r\n * Loads the configured file size limits from the backend\r\n * end stores it in the state.\r\n * @param context \r\n */\r\n async loadFileSizeLimits(context: any) {\r\n const response = await httpClient().get('Article/GetFileSizeLimits');\r\n context.commit('setFileSizeLimits', response.data);\r\n },\r\n\r\n\r\n // USER / CUSTOMER\r\n // **************************************************\r\n\r\n async checkAccess(context: any) {\r\n console.log('check access');\r\n const response = await httpClient().get(`Customer/CheckAccess`);\r\n },\r\n\r\n setCustomerInfo(context: any, customerInfo: CustomerInfoDto) {\r\n context.commit('setCustomerInfo', customerInfo);\r\n context.commit('setIsAdditionalEmailSelected', customerInfo.defaultAdditionalOrderConfirmationEmail && customerInfo.defaultAdditionalOrderConfirmationEmail.length > 0);\r\n context.commit('setAdditionalOrderConfirmationEmail', customerInfo.defaultAdditionalOrderConfirmationEmail);\r\n },\r\n\r\n logout(context: any) {\r\n console.log('logout user. Redirecting user to signout');\r\n context.state.oidc.instance.signoutRedirect();\r\n },\r\n\r\n /**\r\n * Loads all users of the current customer from the backend and transforms\r\n * it to suit the article filter for users.\r\n * @param context \r\n */\r\n async loadUsers(context: any) {\r\n const response = await httpClient().get('Customer/GetUsersOfCustomer');\r\n let loadedUsers = response.data.map((user: any) => {\r\n return { userId: user.userId, name: `${user.firstname} ${user.lastname}`};\r\n });\r\n loadedUsers.splice(0, 0, { userId: '-1', name: 'Allen Benutzern'});\r\n context.commit('setUsers', loadedUsers);\r\n },\r\n\r\n // ARTICLES\r\n // **************************************************\r\n\r\n /**\r\n * Loads all articles that are not in the state yet.\r\n * @param context \r\n * @param articleIds Ids of articles to load.\r\n * @returns \r\n */\r\n async loadMissingArticles(context: any, articleIds: number[]){\r\n // Find missing articles\r\n articleIds = articleIds.filter((a) => !context.state.articles.some((sa: CustomerArticleDto) => sa.articleId == a));\r\n if (articleIds.length <= 0) {\r\n return;\r\n }\r\n\r\n try {\r\n context.state.loading = true;\r\n let response = await httpClient().post('article/GetArticlesById', articleIds);\r\n response.data.forEach((article: any) => {\r\n article.calculatingMessage = '';\r\n });\r\n context.commit('addOrUpdateArticles', response.data);\r\n } catch(err) {\r\n console.error(`Failed to load missing articles. Error: ${err}`);\r\n } finally {\r\n context.state.loading = false;\r\n }\r\n },\r\n async updateArticleById(context: any, articleId: number){\r\n try {\r\n let response = await httpClient().post('article/GetArticlesById', [articleId]);\r\n response.data.forEach((article: any) => {\r\n article.calculatingMessage = '';\r\n });\r\n context.commit('addOrUpdateArticles', response.data);\r\n } catch(err) {\r\n console.log(`Failed to update article ${articleId}. Error: ${err}`);\r\n }\r\n },\r\n async deleteArticle(context: any, data: any) {\r\n context.commit('deleteArticle', data.articleId);\r\n if (data.refreshCart) {\r\n const response = await httpClient().get('cart/GetCartsOfCustomer');\r\n context.commit('setSavedCarts', response.data);\r\n }\r\n },\r\n async updateArticlePrice(context: any, articleId: number) {\r\n try{\r\n context.commit('updatePriceStateOfArticle', { articleId: articleId, priceState: PriceState.Calculating });\r\n await httpClient().get(`article/UpdatePriceOfArticle?articleId=${articleId}`);\r\n // Article will be updated via SignalR\r\n } catch(err) {\r\n console.error(`Failed to update prices of article ${articleId}. Error: ${err}`);\r\n context.commit('updatePriceStateOfArticle', { articleId: articleId, priceState: PriceState.Failed });\r\n }\r\n },\r\n\r\n getArticleById(context: any, articleId: number) {\r\n return context.state.articles.filter((a: CustomerArticleDto) => a.articleId === articleId)[0];\r\n },\r\n\r\n async blexonisieren(context: any, payload: any) {\r\n payload.article.calculating = payload.validate;\r\n await httpClient().post(\r\n 'Article/AssignWerkstoffToArticle?' +\r\n `articleId=${payload.article.articleId}` +\r\n `&werkstoffId=${payload.article.werkstoffId}` +\r\n `&thickness=${payload.article.thickness}` +\r\n `&validate=${payload.validate}`\r\n );\r\n context.commit('moveImportingToMain', payload.article);\r\n },\r\n\r\n replaceArticle(context:any, articleConstruct: any) {\r\n const oldArticleId: number = articleConstruct.oldArticleId;\r\n const cartIndex = context.state.currentCart.cartItems.findIndex((c:CartItem) => c.articleId == oldArticleId);\r\n // Entferne Artikel aus dem persistierten Warenkorb, wenn vorhanden\r\n if (cartIndex >= 0) {\r\n context.dispatch('updateCurrentCartOnServer', [ { articleId: articleConstruct.oldArticleId, quantity: 0 } ]);\r\n }\r\n context.commit(\"replaceArticle\", articleConstruct);\r\n },\r\n\r\n // ORDER / OFFER\r\n // **************************************************\r\n\r\n resetOrderAfterSuccess(context: any){\r\n console.log('resetting after successful creation of order');\r\n context.commit('setCurrentOfferToNull');\r\n context.dispatch('emptyCart');\r\n },\r\n\r\n setOfferDeliveryChoice(context: any, newType: string){\r\n context.commit('setOfferDeliveryChoice', newType);\r\n if (newType === \"delivery\" && context.state.offer.defaultManufacturerId) {\r\n context.commit('changeSelectedManufacturer', context.state.offer.defaultManufacturerId);\r\n }\r\n },\r\n\r\n async reloadOrders(context: any) {\r\n const response = await httpClient().get(`order/getOrdersOfCustomer?` +\r\n `from=0` +\r\n `&take=50`);\r\n context.commit('setOrders', {\r\n reload: true,\r\n orders: response.data\r\n });\r\n },\r\n\r\n async reloadCancellationRequests(context: any) {\r\n const response = await httpClient().post('order/GetOrderCancellationRequestsForOrders', \r\n context.state.orders.map((o: any) => o.orderId));\r\n context.commit(\"setOrderCancellations\", response.data);\r\n },\r\n\r\n // CART\r\n // **************************************************\r\n\r\n async addToCart(context: any, newCartItem: any) {\r\n context.commit('addToCart', newCartItem);\r\n context.dispatch('updateCurrentCartOnServer', [ newCartItem ]);\r\n },\r\n\r\n async removeArticleFromCart(context: any, articleId: number){\r\n context.commit(\"removeArticleFromCart\", articleId);\r\n context.dispatch('updateCurrentCartOnServer', [ { articleId: articleId, quantity: 0 } ]);\r\n },\r\n\r\n async setAmountOfCartItem(context: any, payload: any){\r\n context.commit(\"setAmountOfCartItem\", payload);\r\n context.dispatch('updateCurrentCartOnServer', [ { articleId: payload.articleId, quantity: payload.quantity } ]);\r\n },\r\n\r\n async initializeCart(context: any, userAddresses: any) {\r\n context.commit(\"initializeCart\", userAddresses);\r\n try {\r\n const response = await httpClient().get('Cart/GetCurrentCart');\r\n let currentCart: any = response.data;\r\n context.dispatch(\"setCurrentCart\", currentCart);\r\n } catch {\r\n console.log('Failed to load current cart');\r\n }\r\n },\r\n\r\n async setCurrentCart(context:any, currentCartFromServer: any) {\r\n // Load missing articles\r\n await context.dispatch('loadMissingArticles', currentCartFromServer.positions.map((p: CartItem) => p.articleId));\r\n // Remove articles that are not in the cart on the server\r\n const positionsToRemove = context.state.currentCart.cartItems.filter((local:any) =>\r\n !currentCartFromServer.positions.some((server:any) => server.articleId === local.articleId)\r\n );\r\n positionsToRemove.forEach((p:any) => context.commit(\"removeArticleFromCart\", p.articleId));\r\n // Add or update items with data from the server if it's different that the local values\r\n currentCartFromServer.positions.forEach((serverPos: CartItem) => {\r\n const localPos = context.state.currentCart.cartItems.find((pos:any) => pos.articleId === serverPos.articleId)\r\n if (localPos) {\r\n if (localPos.quantity != serverPos.quantity) {\r\n context.commit(\"setAmountOfCartItem\", { articleId: serverPos.articleId, quantity: serverPos.quantity });\r\n }\r\n } else {\r\n let newCartItem = new CartItem();\r\n newCartItem.articleId = serverPos.articleId;\r\n newCartItem.quantity = serverPos.quantity;\r\n context.commit('addToCart', newCartItem);\r\n }\r\n }) \r\n },\r\n\r\n loadSavedCartIntoCurrentCart(context: any, savedCartpositions: SavedCartPosition[]){\r\n savedCartpositions.forEach((item) => {\r\n context.dispatch('addArticleFromSavedCartToCurrentCart', { articleId: item.articleId, quantity: item.quantity }); \r\n });\r\n },\r\n\r\n addArticleFromSavedCartToCurrentCart(context: any, articleData: any) {\r\n let cartItem = (context.state.currentCart as Cart).cartItems.find((i) => i.articleId === articleData.articleId);\r\n if (cartItem != undefined) {\r\n cartItem.quantity = cartItem.quantity + parseInt(articleData.quantity);\r\n } else {\r\n cartItem = {\r\n articleId: articleData.articleId,\r\n quantity: parseInt(articleData.quantity),\r\n };\r\n context.commit('addToCart', cartItem);\r\n }\r\n context.dispatch('updateCurrentCartOnServer', [ cartItem ]);\r\n },\r\n\r\n async emptyCart(context:any){\r\n context.commit(\"emptyCart\");\r\n context.dispatch(\"emptyCurrentCartOnServer\");\r\n },\r\n\r\n async updateCurrentCartOnServer(context: any, updatedCartItems: any) {\r\n try {\r\n await httpClient().post(\"Cart/UpdateCurrentCartPositions\", updatedCartItems);\r\n } catch {\r\n console.error('Failed to update persistant current car');\r\n }\r\n },\r\n\r\n async emptyCurrentCartOnServer(context: any) {\r\n try {\r\n await httpClient().post('Cart/EmptyCurrentCart');\r\n } catch {\r\n console.error('Failed to empty persisted current cart');\r\n }\r\n },\r\n\r\n\r\n // SAVED CART\r\n // **************************************************\r\n\r\n async saveNewSavedCart(context: any, cart: SavedCartDto) {\r\n try {\r\n const response = await httpClient().post('Cart/SaveCart', cart);\r\n let newCartId: number = response.data;\r\n cart.id = newCartId;\r\n context.commit('saveNewSavedCart', cart);\r\n } catch {\r\n console.log('Failed to save cart with id' + cart.id);\r\n }\r\n },\r\n async deleteSavedCart(context: any, cartId: number){\r\n try {\r\n await httpClient().post(`Cart/DeleteCart?cartId=${cartId}`);\r\n context.commit('deleteSavedCart', cartId);\r\n } catch {\r\n console.log('Failed to delete saved cart with id ' + cartId);\r\n }\r\n },\r\n async setAmountOfSavedCartItem(context: any, data: any) {\r\n try {\r\n await httpClient().post(`Cart/SetCartArticleQuantity?cartId=${data.cartId}&articleId=${data.articleId}&quantity=${data.quantity}`);\r\n context.commit('setAmountOfSavedCartItem', data);\r\n const output = `Die Anzahl für Artikel ${data.articleId} wurde in der Stückliste auf ${data.quantity} Stk. festgelegt.`;\r\n context.dispatch('setSnackbarText', output);\r\n } catch(err) {\r\n console.error(`Failed to set amount of article in saved cart. Error: ${err}`);\r\n context.dispatch('setSnackbarErrorText', 'Stückzahl konnte nicht angepasst werden.');\r\n }\r\n },\r\n async removeArticleFromSavedCart(context: any, data: any) {\r\n try {\r\n await httpClient().post(`Cart/RemoveArticleFromSavedCart?cartId=${data.cartId}&articleId=${data.articleId}`);\r\n context.commit('removeArticleFromSavedCart', data);\r\n } catch(err) {\r\n console.error(`Failed to remove article from saved cart. Error: ${err}`);\r\n context.dispatch('setSnackbarErrorText', 'Artikel konnte nicht aus Stückliste entfernt werden.');\r\n }\r\n },\r\n async addArticleToSavedCart(context: any, data: any) {\r\n try {\r\n const articleId = data.articleId;\r\n const amount = data.amount;\r\n const customerArticleName = data.customerArticleName;\r\n const index = context.state.savedCarts.findIndex((cart:SavedCartDto) => cart.id == context.state.currentSavedCartId);\r\n if (index >= 0) {\r\n const cart = context.state.savedCarts[index];\r\n const articleIndex = cart.positions\r\n .findIndex((item: SavedCartPosition) => item.articleId === articleId);\r\n if (articleIndex >= 0) {\r\n // Menge anpassen\r\n await context.dispatch('setAmountOfSavedCartItem', {\r\n cartId: context.state.currentSavedCartId,\r\n articleId: articleId,\r\n quantity: amount,\r\n });\r\n } else {\r\n context.commit('addArticleToSavedCart', {\r\n cartId: context.state.currentSavedCartId,\r\n articleId: articleId,\r\n quantity: amount,\r\n customerArticleName: customerArticleName,\r\n });\r\n await httpClient().post('Cart/SaveCart', cart);\r\n }\r\n }\r\n else {\r\n console.error(`Cart with id ${context.state.currentSavedCartId} kann nicht gefunden werden.`);\r\n }\r\n } catch(err) {\r\n console.error(`Failed to add article from cart to saved cart. Error: ${err}`);\r\n context.dispatch('setSnackbarErrorText', 'Artikel konnte nicht der Stückliste hinzugefügt werden.');\r\n }\r\n },\r\n\r\n // ADDRESSES\r\n // **************************************************\r\n\r\n async deleteAddress(context: any, addressId: number) {\r\n try {\r\n await httpClient().post(`Customer/DeleteAddress?addressId=${addressId}`, null);\r\n context.dispatch('setSnackbarText', 'Adresse wurde gelöscht.');\r\n // Reload customer data for new addresses and refresh\r\n const response = await httpClient().get(\"Customer/GetCustomer\");\r\n\t\t\tcontext.commit(\"setCustomerInfo\", response.data);\r\n // Adjust order addresses that could still contain the deleted address\r\n \r\n } catch(err) {\r\n console.error(`Failed to delete address. Error: ${err}`);\r\n context.dispatch('setSnackbarErrorText', 'Adresse konnte nicht gelöscht werden.');\r\n }\r\n },\r\n async setAddressAsUserPreferred(context: any, addressData: any) {\r\n try {\r\n await httpClient().post(`Customer/SetAddressAsUserPreferred?addressId=${addressData.id}`, null);\r\n context.dispatch('setSnackbarText', 'Adresse wurde als Favorit markiert.');\r\n context.commit('setAddressAsUserPreferred', addressData);\r\n } catch(err) {\r\n console.error(`Failed to set address as user preferred address. Error: ${err}`);\r\n context.dispatch('setSnackbarErrorText', 'Adresse konnte nicht als Favorit markiert werden.');\r\n }\r\n },\r\n \r\n // SNACKBAR\r\n // **************************************************\r\n \r\n setSnackbarText(context: any, text: any) {\r\n context.commit('setSnackbarText', text);\r\n context.dispatch('showSnackbar');\r\n },\r\n setSnackbarErrorText(context: any, text: any) {\r\n context.commit('setSnackbarErrorText', text);\r\n context.dispatch('showSnackbar');\r\n },\r\n setSnackbarArticleText(context: any, data: any) {\r\n context.commit('setSnackbarArticleText', data);\r\n context.dispatch('showSnackbar');\r\n },\r\n showSnackbar(context: any) {\r\n /*\r\n Das Problem mit der Snackbar...\r\n Früher wurde die Snackbar getoggled über den Text. Wenn der Text leer war, wurde sie nicht angezeigt.\r\n Das geht nicht mehr, da inzwischen nicht nur Text in der Snackbar angezeigt wird.\r\n Die Snackbar hat ein timeout Attribut. Wird das v-model der Snackbar auf \"true\" gesetzt, stellt sie sich\r\n automatisch wieder auf \"false\" nach Ablauf des timeouts.\r\n Das ist ein Problem, wenn eine neue Snackbar angezeigt werden soll, wenn noch eine aktiv ist,\r\n denn das timeout wird nicht resettet, wenn man einfach das v-model auf \"false\" und dann wieder \"true\" setzt.\r\n Der einzige (mir bekannte) Weg, ist das timeout attribut zu verändern. (Steht auch so in der Vuetify Doku)\r\n Das resettet das timeout.\r\n Deshalb die folgende Umsetzung:\r\n - Wenn bereits eine Snackbar angezeigt wird (showSnackbar = true)\r\n - Blende die Snackbar kurz aus (visuelle Unterstützung -> jetzt kommt eine neue Snackbar!)\r\n - Nach 250ms blende die neue Snackbar ein (Content wurde vorher bereits entsprechend angepasst)\r\n - Modifiziere das timeout attribut um +- 1ms, sodass das timeout resettet wird\r\n - Wenn keine Snackbar angezeigt wird, zeige die Snackbar an.\r\n */\r\n if (context.state.showSnackbar) {\r\n context.commit('setShowSnackbar', false);\r\n setTimeout(() => {\r\n context.commit('adjustSnackbarTimeout');\r\n context.commit('setShowSnackbar', true);\r\n }, 250);\r\n } else {\r\n context.commit('setShowSnackbar', true);\r\n }\r\n },\r\n /**\r\n * Deletes pending orders which are in the current shopping cart\r\n * @param context \r\n */\r\n async deletePendingOrdersInCart(context: any) {\r\n for (const order of context.state.pendingOrders) {\r\n if (order.isInCart) {\r\n try {\r\n await httpClient().delete(`order/DeletePendingOrder?cartId=${order.id}`);\r\n context.commit('removePendingOrder', order.id)\r\n } catch(e) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n },\r\n\r\n async startArticleCalculatingPollingTimer(context: any) {\r\n const intervalId = setInterval(() => {\r\n let d = new Date();\r\n let calculatingArticleIds = context.getters.calculatingArticleIds;\r\n if (calculatingArticleIds.length > 0) {\r\n context.dispatch('pollArticleData', calculatingArticleIds );\r\n }\r\n }, 60_000);\r\n context.commit('setArticleCalculatingPollingTimerId', intervalId);\r\n },\r\n \r\n async pollArticleData(context: any, articleIds: any) {\r\n console.log(`Polling article data of calculating articles: ${articleIds.join(\", \")}`);\r\n try {\r\n articleIds.forEach((id: any) => context.dispatch('updateArticleById', id)); \r\n } catch(e) {\r\n console.error('Failed to poll data of calculating articles');\r\n }\r\n },\r\n\r\n\r\n // SIGNAL R\r\n // **************************************************\r\n setupSignalR(context: any) {\r\n //@ts-ignore\r\n const connection = new signalR.HubConnectionBuilder()\r\n .withUrl(process.env.VUE_APP_eventUrl + 'signalhub', { accessTokenFactory: () => {\r\n const userString = window.localStorage\r\n .getItem(`oidc.user:${process.env.VUE_APP_authorityUrl}:BlexonKundenportalClient`);\r\n //@ts-ignore\r\n const user = JSON.parse(userString);\r\n return user.access_token;\r\n }\r\n })\r\n .configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n\r\n async function start() {\r\n try {\r\n await connection.start();\r\n console.log(\"Signal connected\");\r\n } catch (err) {\r\n console.log(err);\r\n setTimeout(() => start(), 5000);\r\n }\r\n };\r\n\r\n connection.onclose(async () => {\r\n console.log(\"signalR closed\");\r\n await start();\r\n });\r\n\r\n connection.on(\"ArticleUpdated\", (message: any) => {\r\n var article = JSON.parse(message.jsonObject);\r\n console.log(`Article ${article.articleId} was updated`);\r\n context.commit('updateArticle', article);\r\n });\r\n\r\n connection.on(\"ArticleReplaced\", async (message: any) => {\r\n console.log('Article replace message received...');\r\n var articleConstruct = JSON.parse(message.jsonObject);\r\n context.dispatch('replaceArticle', articleConstruct);\r\n // Reload saved carts because articles might have been replaced in them\r\n const response = await httpClient().get('cart/GetCartsOfCustomer');\r\n console.log('Reloaded saved carts.');\r\n context.commit('setSavedCarts', response.data);\r\n });\r\n\r\n connection.on(\"ArticleUpdatedAdministrators\", (message: any) => {\r\n // This method is intentionally empty\r\n // SignalR sends updates concerning ALL articles to Administrators\r\n // If this message is not caught by this method, it results in a warning\r\n // in the console, which clutters the console.log up.\r\n // Users don't see this warning but we still decided to let the\r\n // message run into the void.\r\n });\r\n\r\n connection.on(\"ArticleReplacedAdministrators\", (message: any) => {\r\n // This method is intentionally empty\r\n // SignalR sends updates concerning ALL articles to Administrators\r\n // If this message is not caught by this method, it results in a warning\r\n // in the console, which clutters the console.log up.\r\n // Users don't see this warning but we still decided to let the\r\n // message run into the void.\r\n });\r\n\r\n connection.on(\"MessageForArticle\", (articleId: number, message: string) => {\r\n context.commit('setCalculatingMessage', {\r\n articleId: articleId,\r\n message: message\r\n });\r\n });\r\n\r\n connection.on(\"KundenportalError\", (message: any) => {\r\n console.log('SignalR Event KundenportalError caught');\r\n context.commit('setBannerErrorMessage', message);\r\n });\r\n\r\n connection.on(\"SignOut\", async (message: any) => {\r\n console.log('SignOut message received...');\r\n context.dispatch('logout');\r\n });\r\n\r\n connection.on(\"CurrentCart\", async (message: any) => {\r\n context.dispatch('setCurrentCart', JSON.parse(message.jsonObject));\r\n });\r\n\r\n // Start the connection.\r\n start(); \r\n }\r\n};\r\n","import { AddressDto } from './addressDto';\r\nimport { CartItem } from './cartItem';\r\n\r\nexport class Cart {\r\n public cartItems: Array = new Array();\r\n \r\n public deliveryAddress: AddressDto = new AddressDto();\r\n public invoiceAddress: AddressDto = new AddressDto();\r\n public hasChanged: boolean = false;\r\n}","import { DeliveryType } from './deliveryType';\r\nimport { ManufacturingOfferDto } from './manufacturingOfferDto';\r\nimport { OfferFailReason } from './offerFailReason';\r\nimport { OrderDiscountDto } from './orderDiscountDto';\r\n\r\nexport class OfferDto {\r\n public calculationId: number = 0;\r\n public orderDiscounts: OrderDiscountDto[] = [];\r\n public manufacturingOffers: ManufacturingOfferDto[] = new Array();\r\n public selectedManufacturerId: number = 0;\r\n public deliveryType: DeliveryType = DeliveryType.Post;\r\n public offerFailReason: OfferFailReason = OfferFailReason.None;\r\n public deliveryDate: Date = new Date();\r\n public customKommissionsnummer: string = '';\r\n public deliveryChoice: string = 'delivery';\r\n public defaultManufacturerId?: number = 0;\r\n\r\n}","import { CartItem } from './../dtos/cartItem';\r\nimport { ArticleDataDto } from './../dtos/articleDataDto';\r\nimport { CustomerOrderDto } from './../dtos/customerOrderDto';\r\nimport { CustomerInfoDto } from './../dtos/customerInfoDto';\r\nimport { CustomerArticleDto } from './../dtos/customerArticleDto';\r\nimport { Cart } from '@/dtos/cart';\r\nimport { WerkstoffDto } from '@/dtos/werkstoffDto';\r\nimport { OfferDto } from '@/dtos/offerDto';\r\nimport { AddressDto } from '@/dtos/addressDto';\r\nimport { ManufacturingOfferDto } from '@/dtos/manufacturingOfferDto';\r\nimport { MaterialDto } from '@/dtos/materialDto';\r\nimport { SavedCartDto } from '@/dtos/savedCartDto';\r\nimport { SavedCartPosition } from '@/dtos/savedCartPosition';\r\nimport { PendingOrderDto } from '@/dtos/pendingOrderDto';\r\nimport { PowderCoatingTreatmentDto } from '@/dtos/powderCoatingTreatmentDto';\r\nimport { ArticleState } from '@/dtos/articleState';\r\nimport { PriceModel } from '@/dtos/priceModel';\r\nimport { OfferFailReason } from '@/dtos/offerFailReason';\r\n\r\nexport default {\r\n // USER\r\n storeOidcUser(state: any, user: any) {\r\n state.oidc.user = user;\r\n },\r\n storeOidcInstance(state: any, client: any) {\r\n state.oidc.instance = client;\r\n },\r\n setCustomerInfo(state: any, payload: CustomerInfoDto) {\r\n state.customer = payload;\r\n },\r\n updateUserSettings(state: any, data: any) {\r\n state.customer.user.firstname = data.firstname;\r\n state.customer.user.lastname = data.lastname;\r\n state.customer.user.phone = data.phone;\r\n state.customer.user.newsletterSubscribed = data.newsletterSubscribed;\r\n },\r\n updateCustomerSettings(state: any, data: any) {\r\n state.customer.companyName = data.companyName;\r\n state.customer.generalPhone = data.phone;\r\n state.customer.generalEmail = data.email;\r\n state.customer.defaultAdditionalOrderConfirmationEmail = data.defaultAdditionalOrderConfirmationEmail;\r\n state.customer.customerMwstNumber = data.customerMwstNumber;\r\n },\r\n addOrUpdateCustomerDeliveryAddress(state: any, address: any) {\r\n const addressIndex = state.customer.deliveryAddresses.findIndex((a:AddressDto) => a.id == address.id);\r\n if (addressIndex >= 0) {\r\n state.customer.deliveryAddresses.splice(addressIndex, 1, address);\r\n } else {\r\n state.customer.deliveryAddresses.push(address);\r\n }\r\n },\r\n addOrUpdateCustomerInvoiceAddress(state: any, address: any) {\r\n const addressIndex = state.customer.invoiceAddresses.findIndex((a:AddressDto) => a.id == address.id);\r\n if (addressIndex >= 0) {\r\n state.customer.invoiceAddresses.splice(addressIndex, 1, address);\r\n } else {\r\n state.customer.invoiceAddresses.push(address);\r\n }\r\n },\r\n setOrderDeliveryAddress(state: any, address: any) {\r\n const oldDeliverytown = state.currentCart.deliveryAddress.town;\r\n const oldZip = state.currentCart.deliveryAddress.zip;\r\n state.currentCart.deliveryAddress = address;\r\n state.refreshCartAddresses = true;\r\n if (oldDeliverytown !== state.currentCart.deliveryAddress.town\r\n || oldZip !== state.currentCart.deliveryAddress.zip){\r\n state.currentCart.hasChanged = true;\r\n }\r\n },\r\n setOrderInvoiceAddress(state: any, address: any) {\r\n state.currentCart.invoiceAddress = address;\r\n state.refreshCartAddresses = true;\r\n },\r\n setAddressAsUserPreferred(state: any, addressInfo: any) {\r\n if (addressInfo.type == 'delivery') {\r\n state.customer.user.preferredDeliveryAddressId = addressInfo.id;\r\n } else {\r\n state.customer.user.preferredInvoiceAddressId = addressInfo.id;\r\n }\r\n },\r\n setIsAdditionalEmailSelected(state: any, value: boolean) {\r\n state.isAdditionalEmailSelected = value;\r\n },\r\n setAdditionalOrderConfirmationEmail(state: any, value: string) {\r\n state.additionalOrderConfirmationEmail = value;\r\n },\r\n setUsers(state: any, users: any[]) {\r\n state.users = users;\r\n },\r\n setUnseenHintIds(state: any, unseenHintIds: any[]) {\r\n state.unseenHintIds = unseenHintIds;\r\n },\r\n removeUnseenHintId(state: any, hintId: any) {\r\n const index = state.unseenHintIds.indexOf(hintId);\r\n if (index > -1) {\r\n state.unseenHintIds.splice(index, 1);\r\n }\r\n },\r\n // LOADING\r\n setLoading(state: any, isLoading: boolean) {\r\n state.loading = isLoading;\r\n },\r\n // SNACKBAR\r\n setShowSnackbar(state: any, show: any) {\r\n state.showSnackbar = show;\r\n },\r\n setSnackbarText(state: any, text: any) { \r\n state.snackbar.color = 'accent';\r\n state.snackbar.articleId = 0;\r\n state.snackbar.text = text;\r\n },\r\n setSnackbarErrorText(state: any, text: any) {\r\n state.snackbar.color = 'red';\r\n state.snackbar.articleId = 0;\r\n state.snackbar.text = text;\r\n },\r\n setSnackbarArticleText(state: any, data: any) {\r\n state.snackbar.color = 'accent';\r\n state.snackbar.articleId = data.articleId;\r\n state.snackbar.text = data.text;\r\n },\r\n adjustSnackbarTimeout(state: any) {\r\n let newValue = state.snackbarTimeout % 2 === 0 ? state.snackbarTimeout + 1 : state.snackbarTimeout -1\r\n state.snackbarTimeout = newValue;\r\n },\r\n\r\n // BANNER MESSAGES\r\n setBannerErrorMessage(state: any, message: string) {\r\n state.bannerErrorMessage = message;\r\n },\r\n // CATALOGUE\r\n setCatalogueSearchTerm(state: any, term: string) {\r\n state.catalogueSearchTerm = term;\r\n },\r\n setActiveCatalogueSortTypeValue(state: any, enumValue: number) {\r\n state.activeCatalogueSortTypeValue = enumValue;\r\n },\r\n setCatalogueUserId(state: any, userId: string) {\r\n state.catalogueUserId = userId;\r\n },\r\n // ARTICLES\r\n addOrUpdateArticles(state: any, articles: CustomerArticleDto[]){\r\n // Add new articles that weren't in the list before\r\n // Replace already existing articles to keep them updated\r\n articles.forEach((a) => {\r\n const articleIndex = state.articles.findIndex((stateArticle:CustomerArticleDto) => stateArticle.articleId == a.articleId);\r\n if (articleIndex >= 0){\r\n state.articles.splice(articleIndex, 1, a);\r\n } else {\r\n state.articles.push(a);\r\n }\r\n });\r\n },\r\n setCatalogueArticles(state: any, payload: any){\r\n if (payload.reload) {\r\n state.catalogueArticles = payload.articles\r\n .map((article: CustomerArticleDto) => article.articleId); \r\n } else {\r\n let newArticleids: number[] = payload.articles\r\n .filter((newArticle: CustomerArticleDto) => \r\n !(state.catalogueArticles as number[]).some((stateId) => stateId == newArticle.articleId))\r\n .map((newArticle: CustomerArticleDto) => newArticle.articleId);\r\n state.catalogueArticles = state.catalogueArticles.concat(newArticleids);\r\n }\r\n },\r\n addCatalogueArticleOnTop(state: any, articleId: number) {\r\n const index = state.catalogueArticles.findIndex((a:number) => a == articleId);\r\n if (index >= 0) {\r\n state.catalogueArticles.splice(index, 1);\r\n }\r\n state.catalogueArticles.unshift(articleId);\r\n },\r\n setImportingArticles(state: any, articles: CustomerArticleDto[]){\r\n state.importingArticles = articles;\r\n },\r\n addImportingArticle(state: any, article: any){\r\n state.importingArticles.unshift(article);\r\n },\r\n nextTemporaryImportId(state: any) {\r\n state.temporaryImportId--;\r\n },\r\n updateImportingArticle(state: any, payload: any) {\r\n const index = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == payload.newArticle.articleId);\r\n const indexOldArticle = state.importingArticles.indexOf(payload.articleToReplace);\r\n if (index >= 0) {\r\n // Der Artikel ist schon mit Artikel Id drin. Das ist selten aber möglich.\r\n // Dann müssen wir den alten Artikel mit negativem Index nur entfernen\r\n console.log(`Remove importing article at index ${indexOldArticle}`);\r\n state.importingArticles.splice(indexOldArticle, 1);\r\n } else {\r\n // neu einfügen\r\n console.log(`Replace importing article at index ${indexOldArticle}`);\r\n state.importingArticles.splice(indexOldArticle, 1, payload.newArticle);\r\n }\r\n },\r\n addOrRemoveSelectedArticleId(state: any, id: number) {\r\n if (state.selectedArticleIds.includes(id)) {\r\n state.selectedArticleIds.splice(state.selectedArticleIds.indexOf(id), 1);\r\n } else {\r\n state.selectedArticleIds.push(id);\r\n }\r\n },\r\n\r\n /**\r\n * Several articles and assemblies can be selected at once. This\r\n * clears this selection.\r\n */\r\n clearSelectedArticleIds(state: any) {\r\n state.selectedArticleIds = [];\r\n },\r\n \r\n moveImportingToMain(state:any, article: any) {\r\n state.articles.push(article);\r\n state.importingArticles.splice(state.importingArticles.indexOf(article), 1)\r\n state.catalogueArticles.unshift(article.articleId);\r\n },\r\n updateArticle(state: any, article: CustomerArticleDto) {\r\n // Überprüfen, ob Artikel noch im \"Import\" Status ist, bzw. ob schon ein Werkstoff ausgewählt wurde\r\n if (article.werkstoffId <= 0) {\r\n const index = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == article.articleId);\r\n if (index >= 0) {\r\n // ersetzen\r\n console.log('Replace importing article by signal');\r\n state.importingArticles.splice(index, 1, article);\r\n } else {\r\n // neu einfügen\r\n console.log('Insert importing article by signal');\r\n state.importingArticles.unshift(article);\r\n }\r\n } else {\r\n var index = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == article.articleId);\r\n if (index >= 0) {\r\n // Hier muss der Artikel raus\r\n state.importingArticles.splice(index, 1);\r\n }\r\n index = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == article.articleId);\r\n const catalogueIndex = state.catalogueArticles.findIndex((a:number) => a == article.articleId);\r\n if (index >= 0) {\r\n // ersetzen\r\n state.articles.splice(index, 1, article);\r\n if (catalogueIndex >= 0) {\r\n state.catalogueArticles.splice(catalogueIndex, 1, article.articleId)\r\n }\r\n } else {\r\n // neu einfügen\r\n state.articles.push(article);\r\n state.catalogueArticles.unshift(article.articleId);\r\n }\r\n // If this article is in the cart, invalidate the current offer because it might show wrong information.\r\n const cartIndex = state.currentCart.cartItems.findIndex((item: CartItem) => item.articleId === article.articleId);\r\n if (cartIndex >= 0) {\r\n state.offerInvalidForCartUpdate = true;\r\n state.currentCart.hasChanged = true\r\n }\r\n }\r\n },\r\n deleteArticle(state: any, articleId: number) {\r\n const importIndex = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n const cartIndex = state.currentCart.cartItems.findIndex((c:CartItem) => c.articleId == articleId);\r\n const catalogueIndex = state.catalogueArticles.findIndex((a:number) => a == articleId);\r\n if (importIndex >= 0) {\r\n // Finde und lösche Artikel, wenn in Importing\r\n state.importingArticles.splice(importIndex, 1);\r\n } else if (articleIndex >= 0) {\r\n // Entferne Artikel aus dem Warenkorb, wenn vorhanden\r\n if (cartIndex >= 0) {\r\n state.currentCart.cartItems.splice(cartIndex, 1);\r\n // invalidate potential offers if that happens\r\n state.offerInvalidForCartUpdate = true;\r\n state.currentCart.hasChanged = true\r\n }\r\n // Finde und lösche Artikel aus Katalog, wenn vorhanden\r\n if (catalogueIndex >= 0) {\r\n state.catalogueArticles.splice(catalogueIndex, 1);\r\n }\r\n // Finde und lösche Artikel aus der Main-Liste (hier muss er vorhanden sein)\r\n const removedArticles = state.articles.splice(articleIndex, 1) as CustomerArticleDto[];\r\n if (removedArticles.length === 1 && removedArticles[0].parentArticleId > 0) {\r\n // Der Artikel ist ein Subartikel einer Baugruppe.\r\n // Der Artikel muss auch aus der Baugruppe gelöscht werden. (sonst müsste man die Baugruppe neu laden)\r\n const parentAssemblyArticle = state.articles.find((a:CustomerArticleDto) => a.articleId == removedArticles[0].parentArticleId) as CustomerArticleDto;\r\n const indexOfSubArticle = parentAssemblyArticle.subArticleIds.findIndex((id:number) => id == articleId);\r\n if (indexOfSubArticle >= 0) {\r\n parentAssemblyArticle.subArticleIds.splice(indexOfSubArticle, 1);\r\n }\r\n }\r\n } else {\r\n console.error(`Artikel ${articleId} konnte nicht gefunden und gelöscht werden.`);\r\n }\r\n },\r\n replaceArticle(state:any, articleConstruct: any) {\r\n const oldArticleId: number = articleConstruct.oldArticleId;\r\n const newArticle: CustomerArticleDto = articleConstruct.newArticle;\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == oldArticleId);\r\n const cartIndex = state.currentCart.cartItems.findIndex((c:CartItem) => c.articleId == oldArticleId);\r\n const catalogueIndex = state.catalogueArticles.findIndex((a:number) => a == oldArticleId);\r\n if (articleIndex >= 0){\r\n state.articles.splice(articleIndex, 1, newArticle);\r\n } else {\r\n state.articles.push(newArticle);\r\n }\r\n // Entferne Artikel aus dem Warenkorb, wenn vorhanden\r\n if (cartIndex >= 0) {\r\n state.currentCart.cartItems.splice(cartIndex, 1);\r\n // invalidate potential offers if that happens\r\n state.offerInvalidForCartUpdate = true;\r\n state.currentCart.hasChanged = true\r\n }\r\n // Finde und ersetze Artikel aus Katalog, wenn vorhanden\r\n if (catalogueIndex >= 0) {\r\n state.catalogueArticles.splice(catalogueIndex, 1, newArticle.articleId);\r\n }\r\n },\r\n setCalculatingMessage(state: any, payload: any) {\r\n const importIndex = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == payload.articleId);\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == payload.articleId);\r\n if (importIndex >= 0) {\r\n (state.importingArticles[importIndex] as CustomerArticleDto).calculatingMessage = payload.message;\r\n } else if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).calculatingMessage = payload.message;\r\n }\r\n },\r\n updatePriceStateOfArticle(state: any, payload: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == payload.articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).priceState = payload.priceState;\r\n }\r\n },\r\n saveArticleData(state: any, articleData: ArticleDataDto) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleData.articleId);\r\n const importIndex = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == articleData.articleId); \r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).customerArticleId = articleData.customerArticleId;\r\n (state.articles[articleIndex] as CustomerArticleDto).customerArticleName = articleData.customerArticleName;\r\n } else if (importIndex >= 0) {\r\n (state.importingArticles[importIndex] as CustomerArticleDto).customerArticleId = articleData.customerArticleId;\r\n (state.importingArticles[importIndex] as CustomerArticleDto).customerArticleName = articleData.customerArticleName;\r\n }\r\n },\r\n setThicknessOfArticle(state: any, payload: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == payload.articleId);\r\n const importArticleIndex = state.importingArticles.findIndex((a:CustomerArticleDto) => a.articleId == payload.articleId);\r\n if (importArticleIndex >= 0) {\r\n (state.importingArticles[importArticleIndex] as CustomerArticleDto).thickness = payload.thickness;\r\n } else if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).thickness = payload.thickness;\r\n }\r\n },\r\n setArticleStateToLocked(state: any, articleId: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).locked = true;\r\n }\r\n },\r\n setArticleStateToUnlocked(state: any, articleId: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).locked = false;\r\n }\r\n },\r\n setArticleStateToCalculating(state: any, articleId: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).calculating = true;\r\n }\r\n },\r\n setFileSizeLimits(state: any, fileSizeLimits: any) {\r\n state.fileSizeLimits = fileSizeLimits;\r\n },\r\n setPowders(state: any, powders: any) {\r\n state.powders = powders;\r\n },\r\n addOrUpdateTreatmentForArticle(state: any, treatment: PowderCoatingTreatmentDto) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == treatment.articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).powderCoatingTreatment = treatment;\r\n }\r\n },\r\n deleteTreatmentForArticle(state: any, articleId: any) {\r\n const articleIndex = state.articles.findIndex((a:CustomerArticleDto) => a.articleId == articleId);\r\n if (articleIndex >= 0) {\r\n (state.articles[articleIndex] as CustomerArticleDto).powderCoatingTreatment = undefined;\r\n }\r\n },\r\n setHasMoreArticlesToLoad(state: any, hasMoreToLoad: boolean) {\r\n state.hasMoreArticlesToLoad = hasMoreToLoad;\r\n },\r\n setArticleCalculatingPollingTimerId(state: any, id: number) {\r\n state.articleCalculatingPollingTimerId = id;\r\n },\r\n\r\n\r\n // CART\r\n initializeCart(state: any, userAddresses: any){\r\n let userDelivery = userAddresses.delivery;\r\n let userInvoice = userAddresses.invoice;\r\n let newCart = new Cart();\r\n newCart.deliveryAddress = new AddressDto();\r\n newCart.deliveryAddress.id = userDelivery.id;\r\n newCart.deliveryAddress.givenName = userDelivery.givenName;\r\n newCart.deliveryAddress.surname = userDelivery.surname;\r\n newCart.deliveryAddress.companyName = userDelivery.companyName;\r\n newCart.deliveryAddress.street = userDelivery.street;\r\n newCart.deliveryAddress.zip = userDelivery.zip;\r\n newCart.deliveryAddress.town = userDelivery.town;\r\n newCart.deliveryAddress.phone = userDelivery.phone;\r\n newCart.deliveryAddress.eMail = '';\r\n newCart.deliveryAddress.customerId = userDelivery.customerId;\r\n newCart.deliveryAddress.country = userDelivery.country;\r\n newCart.deliveryAddress.type = userDelivery.type;\r\n newCart.deliveryAddress.isBilledDigitally = true;\r\n newCart.deliveryAddress.isDefault = userDelivery.isDefault;\r\n\r\n newCart.invoiceAddress = new AddressDto();\r\n newCart.invoiceAddress.id = userInvoice.id;\r\n newCart.invoiceAddress.givenName = userInvoice.givenName;\r\n newCart.invoiceAddress.surname = userInvoice.surname;\r\n newCart.invoiceAddress.companyName = userInvoice.companyName;\r\n newCart.invoiceAddress.street = userInvoice.street;\r\n newCart.invoiceAddress.zip = userInvoice.zip;\r\n newCart.invoiceAddress.town = userInvoice.town;\r\n newCart.invoiceAddress.phone = '';\r\n newCart.invoiceAddress.eMail = userInvoice.eMail;\r\n newCart.invoiceAddress.customerId = userInvoice.customerId;\r\n newCart.invoiceAddress.country = userInvoice.country;\r\n newCart.invoiceAddress.type = userInvoice.type;\r\n newCart.invoiceAddress.isBilledDigitally = true;\r\n newCart.invoiceAddress.isDefault = userInvoice.isDefault;\r\n newCart.hasChanged = true;\r\n newCart.cartItems = new Array();\r\n state.currentCart = newCart;\r\n },\r\n emptyCart(state:any){\r\n state.currentCart.hasChanged = true;\r\n state.currentCart.cartItems = new Array();\r\n },\r\n\r\n addToCart(state: any, newItem: CartItem) {\r\n let itemAlreadyInCart = state.currentCart.cartItems\r\n .find((item: CartItem) => item.articleId === newItem.articleId);\r\n if (itemAlreadyInCart === undefined) {\r\n state.currentCart.cartItems.push(newItem);\r\n } else {\r\n state.currentCart.cartItems.splice(\r\n state.currentCart.cartItems.indexOf(itemAlreadyInCart),\r\n 1,\r\n newItem);\r\n }\r\n state.currentCart.hasChanged = true;\r\n },\r\n removeArticleFromCart(state: any, articleId: number){\r\n const cartIndex = state.currentCart.cartItems\r\n .findIndex((item:CartItem) => item.articleId == articleId);\r\n if(cartIndex >= 0) {\r\n state.currentCart.cartItems.splice(cartIndex, 1);\r\n state.currentCart.hasChanged = true;\r\n } else {\r\n console.log(`Artikel ${articleId} konnte nicht im Warenkorb gefunden werden.`); \r\n }\r\n },\r\n setAmountOfCartItem(state: any, payload: any){\r\n (state.currentCart.cartItems\r\n .find((item: CartItem) => item.articleId === payload.articleId).quantity as number) = payload.quantity;\r\n state.currentCart.hasChanged = true;\r\n },\r\n setRefreshCardAddressesToggle(state: any, value: any) {\r\n state.refreshCartAddresses = value;\r\n },\r\n // SAVED CARTS\r\n setSavedCarts(state: any, carts: SavedCartDto[]) {\r\n state.savedCarts = carts;\r\n },\r\n saveNewSavedCart(state: any, cart: SavedCartDto) {\r\n state.savedCarts.splice(0, 0, cart);\r\n },\r\n deleteSavedCart(state: any, cartId: number) {\r\n const index = state.savedCarts\r\n .findIndex((cart:SavedCartDto) => cart.id == cartId);\r\n if (index >= 0) {\r\n state.savedCarts.splice(index, 1);\r\n }\r\n },\r\n setAmountOfSavedCartItem(state: any, data: any){\r\n const index = state.savedCarts.findIndex((cart:SavedCartDto) => cart.id == data.cartId);\r\n if (index >= 0) {\r\n const articleIndex = state.savedCarts[index].positions\r\n .findIndex((item: SavedCartPosition) => item.articleId === data.articleId);\r\n if (articleIndex >= 0) {\r\n state.savedCarts[index].positions[articleIndex].quantity = data.quantity;\r\n }\r\n }\r\n },\r\n removeArticleFromSavedCart(state: any, data: any) {\r\n const index = state.savedCarts.findIndex((cart:SavedCartDto) => cart.id == data.cartId);\r\n if (index >= 0) {\r\n const articleIndex = state.savedCarts[index].positions\r\n .findIndex((item: SavedCartPosition) => item.articleId === data.articleId);\r\n if (articleIndex >= 0) {\r\n state.savedCarts[index].positions.splice(articleIndex, 1);\r\n }\r\n }\r\n },\r\n addArticleToSavedCart(state: any, data: any) {\r\n const index = state.savedCarts.findIndex((cart:SavedCartDto) => cart.id == data.cartId);\r\n if (index >= 0) {\r\n var positions = state.savedCarts[index].positions;\r\n const articleIndex = positions\r\n .findIndex((item: SavedCartPosition) => item.articleId === data.articleId);\r\n if (articleIndex < 0) {\r\n var positionNr = 0;\r\n if (positions.length > 0) {\r\n positionNr = positions[positions.length - 1].positionNr;\r\n }\r\n // Artikel hinzufügen\r\n positions.push({\r\n articleId: data.articleId,\r\n quantity: data.quantity,\r\n position: positionNr,\r\n customerArticleName: data.customerArticleName,\r\n });\r\n }\r\n }\r\n },\r\n setCurrentSavedCartId(state: any, id: any) {\r\n state.currentSavedCartId = id;\r\n },\r\n // WERKSTOFFE\r\n setWerkstoffe(state: any, werkstoffe: WerkstoffDto[]) {\r\n state.werkstoffe = werkstoffe;\r\n },\r\n // FEATURES\r\n setPowderCoatingAvailability(state: any, isAvailable: boolean) {\r\n state.isPowderCoatingAvailable = isAvailable;\r\n },\r\n // ORDERS\r\n setOrders(state: any, payload: any){\r\n // Add new orders that weren't in the list before\r\n // Replace already existing orders to keep them updated\r\n if (payload.reload) {\r\n state.orders = payload.orders;\r\n } else {\r\n payload.orders.forEach((o:CustomerOrderDto) => {\r\n const orderIndex = state.orders.findIndex((order:CustomerOrderDto) => order.orderId == o.orderId);\r\n if (orderIndex >= 0){\r\n state.orders.splice(orderIndex, 1, o);\r\n } else {\r\n state.orders.push(o);\r\n }\r\n });\r\n }\r\n },\r\n setOrderSuccessful(state: any, successful: boolean){\r\n state.orderSuccessful = successful;\r\n },\r\n setCurrentOfferCalculating(state: any, value: boolean) {\r\n state.currentOfferCalculating = value;\r\n },\r\n setOrderCancellations(state: any, cancellations: any) {\r\n state.orderCancellations = cancellations\r\n },\r\n addOrUpdateCancellation(state: any, cancellation: any) {\r\n const cancellationIndex = state.orderCancellations.findIndex((c:any) => c.blexonOrderId == cancellation.blexonOrderId);\r\n if (cancellationIndex >= 0){\r\n state.orderCancellations.splice(cancellationIndex, 1, cancellation);\r\n } else {\r\n state.orderCancellations.push(cancellation);\r\n }\r\n },\r\n // OFFER\r\n setCurrentOfferToNull(state: any){\r\n state.offer = null;\r\n },\r\n updateOffer(state: any, newOffer: OfferDto){\r\n let newDeliveryDate: Date = new Date();\r\n let defaultManufacturer: ManufacturingOfferDto | undefined = newOffer.manufacturingOffers\r\n .find((offer: any) => offer.manufacturerId == newOffer.selectedManufacturerId);\r\n if(defaultManufacturer !== undefined) {\r\n newDeliveryDate = defaultManufacturer.datesOfDelivery[0];\r\n }\r\n let newClientOffer = new OfferDto();\r\n newClientOffer.calculationId = newOffer.calculationId\r\n newClientOffer.manufacturingOffers = newOffer.manufacturingOffers;\r\n newClientOffer.orderDiscounts = newOffer.orderDiscounts;\r\n newClientOffer.selectedManufacturerId = newOffer.selectedManufacturerId;\r\n newClientOffer.deliveryType = newOffer.deliveryType;\r\n newClientOffer.deliveryDate = newDeliveryDate;\r\n newClientOffer.customKommissionsnummer = '';\r\n newClientOffer.deliveryChoice = 'delivery';\r\n newClientOffer.defaultManufacturerId = defaultManufacturer?.manufacturerId;\r\n state.offer = newClientOffer;\r\n state.currentCart.hasChanged = false;\r\n state.offerValidTimerSeconds = state.offerValidTimerTotalSeconds;\r\n },\r\n setOfferFailed(state: any, hasFailed: boolean){\r\n state.offerFailed = hasFailed;\r\n },\r\n setOfferFailReason(state: any, reason: OfferFailReason){\r\n state.offerFailReason = reason;\r\n },\r\n setOfferDeliveryDate(state: any, newDate: Date){\r\n state.offer.deliveryDate = newDate;\r\n },\r\n setOfferDeliveryChoice(state: any, newType: string){\r\n state.offer.deliveryChoice = newType;\r\n },\r\n setCustomKommissionsnummer(state: any, kommissionsNummer: string){\r\n state.offer.customKommissionsnummer = kommissionsNummer;\r\n },\r\n setOfferInvalidForCartUpdate(state: any, value: boolean){\r\n state.offerInvalidForCartUpdate = value;\r\n },\r\n restartOfferValidTimer(state: any){\r\n state.offerValidTimerSeconds = state.offerValidTimerTotalSeconds;\r\n },\r\n decrementOfferValidTimer(state: any){\r\n if(state.offerValidTimerSeconds > 0){\r\n state.offerValidTimerSeconds--;\r\n }\r\n },\r\n setOfferDecrementTimerId(state: any, newId: number) {\r\n state.offerDecrementTimerId = newId;\r\n },\r\n changeSelectedManufacturer(state: any, manufacturerId: any){\r\n state.offer.selectedManufacturerId = manufacturerId;\r\n state.offer.deliveryDate = state.offer.manufacturingOffers\r\n .find((offer: any) => offer.manufacturerId == state.offer.selectedManufacturerId)?.datesOfDelivery[0];\r\n },\r\n setPendingOrders(state: any, orders: any) {\r\n for (const order of orders) {\r\n order.isInCart = false;\r\n if (state.pendingOrders.find((o: PendingOrderDto) => o.id == order.id) == undefined) {\r\n state.pendingOrders.push(order);\r\n }\r\n }\r\n },\r\n removePendingOrder(state: any, orderId: any) {\r\n var index = state.pendingOrders.indexOf((p: PendingOrderDto) => p.id == orderId);\r\n state.pendingOrders.splice(index, 1);\r\n },\r\n setCurrentPriceModel(state: any, model: PriceModel) {\r\n state.currentPriceModel = model;\r\n state.currentCart.hasChanged = true;\r\n },\r\n setAcceptedAGB(state: any, accepted: boolean) {\r\n state.acceptedAGB = accepted;\r\n },\r\n setAcceptedNachAufwand(state: any, accepted: boolean) {\r\n state.acceptedNachAufwand = accepted;\r\n },\r\n setRampenabholungSelectionValid(state: any, value: boolean) {\r\n state.rampenabholungSelectionValid = value;\r\n },\r\n};\r\n","import { AddressDto } from '@/dtos/addressDto';\r\nimport { PriceListDto } from './../dtos/priceListDto';\r\nimport { PowderDto } from './../dtos/powderDto';\r\nimport { PriceDto } from \"./../dtos/priceDto\";\r\nimport { CartItem } from \"@/dtos/cartItem\";\r\nimport { CustomerArticleDto } from \"@/dtos/customerArticleDto\";\r\nimport { ManufacturingOfferDto } from \"@/dtos/manufacturingOfferDto\";\r\nimport moment from \"moment\";\r\nimport { SurfaceColorDto } from '@/dtos/surfaceColorDto';\r\nimport { PriceModel } from '@/dtos/priceModel';\r\nimport PriceModelDefault from '@/dtos/priceModel';\r\nimport { OrderDiscountDto } from '@/dtos/orderDiscountDto';\r\nimport { MwstDto } from '@/dtos/mwstDto';\r\n\r\nexport default {\r\n\tcustomerId(state: any) {\r\n\t\tif (state.customer != null) {\r\n\t\t\treturn state.customer.customerId;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\tarticleById: (state: any) => (articleId: number) => {\r\n\t\treturn state.articles.find((a: CustomerArticleDto) => a.articleId === articleId);\r\n\t},\r\n\ttotalOfItemInCart: (state: any) => (articleId: number) => {\r\n\t\tvar currentCartItem: CartItem = state.currentCart.cartItems.find((item: CartItem) => item.articleId == articleId);\r\n\t\tvar currentArticle: CustomerArticleDto = state.articles.find(\r\n\t\t\t(article: CustomerArticleDto) => article.articleId == articleId\r\n\t\t);\r\n\t\tvar modelPrices = currentArticle.priceLists.length <= 0 ? new Array()\r\n\t\t\t: currentArticle.priceLists.filter((pl: PriceListDto) => pl.priceModel == PriceModel.Standard)[0].prices;\r\n\t\tif (modelPrices !== null && modelPrices.length > 0) {\r\n\t\t\tvar relevantPrices: PriceDto[] = modelPrices\r\n\t\t\t\t.filter((price) => price.quantity <= currentCartItem.quantity)\r\n\t\t\t\t.sort((a, b) => a.quantity - b.quantity);\r\n\t\t\tvar correctPrice: PriceDto = relevantPrices[relevantPrices.length - 1];\r\n\t\t\treturn (correctPrice.price as number) * (currentCartItem.quantity as number);\r\n\t\t}\r\n\t\treturn 0.0;\r\n\t},\r\n\tquantityOfItemInCart: (state: any) => (articleId: number) => {\r\n\t\tvar currentCartItem: CartItem = state.currentCart.cartItems.find((item: CartItem) => item.articleId == articleId); \r\n\t\treturn currentCartItem != undefined ? currentCartItem.quantity : 0;\r\n\t},\r\n\ttotalOfAllItemsInCart(state: any, getters: any) {\r\n\t\tvar totalPrice = 0.0;\r\n\t\tfor (var i = 0; i < state.currentCart.cartItems.length; i++) {\r\n\t\t\ttotalPrice += getters.totalOfItemInCart(state.currentCart.cartItems[i].articleId);\r\n\t\t}\r\n\t\treturn totalPrice;\r\n\t},\r\n\tisCartValid(state: any) {\r\n\t\tif (!state.currentCart || state.currentCart.cartItems == null || state.currentCart.cartItems.length == 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tfor (var i = 0; i < state.currentCart.cartItems.length; i++) {\r\n\t\t\tvar currentArticle: CustomerArticleDto = state.articles.find(\r\n\t\t\t\t(article: CustomerArticleDto) => article.articleId == state.currentCart.cartItems[i].articleId\r\n\t\t\t);\r\n\t\t\tif (currentArticle == null \r\n\t\t\t\t|| currentArticle.calculating\r\n\t\t\t\t|| currentArticle.migrated \r\n\t\t\t\t|| !currentArticle.priceLists || currentArticle.priceLists.length <= 0\r\n\t\t\t\t|| currentArticle.priceLists.filter((pl: PriceListDto) => pl.priceModel == state.currentPriceModel)[0].prices.length != 19) \r\n\t\t\t{\r\n\t\t\t\t// if (!currentArticle) return false; // This fixes an exception but makes the experience for the user worse\r\n\t\t\t\tif (!currentArticle.priceLists || currentArticle.priceLists.length <= 0) {\r\n\t\t\t\t\tcurrentArticle.priceState = 1;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\tselectedManufacturer(state: any) {\r\n\t\treturn state.offer.manufacturingOffers.find(\r\n\t\t\t(manufacturer: ManufacturingOfferDto) => manufacturer.manufacturerId == state.offer.selectedManufacturerId\r\n\t\t);\r\n\t},\r\n\tamountOfItemsInCart(state: any) {\r\n\t\treturn state.currentCart.cartItems.length;\r\n\t},\r\n\twaehrung(state: any) {\r\n\t\treturn state.customer.currency;\r\n\t},\r\n\tinvoiceCharge(state: any) {\r\n\t\tif (state.offer === null) return 0.0;\r\n\t\treturn state.currentCart.invoiceAddress.isBilledDigitally ? 0.0 : 2.0;\r\n\t},\r\n\tmwstRatio: (state: any) => (date: Date) => {\r\n\t\treturn state.customer.mwstRates\r\n\t\t\t.filter((r: MwstDto) => {\r\n\t\t\t\tlet rateDate = new Date(r.validFrom);\r\n\t\t\t\tlet givenDate = new Date(date);\r\n\t\t\t\treturn rateDate.setHours(0,0,0,0) <= givenDate.setHours(0,0,0,0);\r\n\t\t\t})\r\n\t\t\t.sort((a: MwstDto, b: MwstDto) => {\r\n\t\t\t\tlet aDate = new Date(a.validFrom);\r\n\t\t\t\tlet bDate = new Date(b.validFrom);\r\n\t\t\t\treturn bDate.getTime() - aDate.getTime();\r\n\t\t\t})\r\n\t\t\t[0].rate;\r\n\t},\r\n\tdeliveryCost(state: any, getters: any) {\r\n\t\tif (state.offer === null) return 0.0;\r\n\t\tif (state.offer.deliveryChoice === \"delivery\") {\r\n\t\t\treturn getters.selectedManufacturer.deliveryCost;\r\n\t\t}\r\n\t\treturn 0.0;\r\n\t},\r\n\torderDiscount: (state: any) => (priceModel: PriceModel) => {\r\n\t\tif (state.offer !== null && state.offer !== undefined) {\r\n\t\t\tvar orderDiscount = state.offer.orderDiscounts.filter((d:OrderDiscountDto) => d.priceModel === priceModel)[0]\r\n\t\t\treturn orderDiscount;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\tcostMwst: (state: any, getters: any) => (priceModel: PriceModel, date: Date) => {\r\n\t\tlet mwst =\r\n\t\t\t(parseFloat(getters.totalOfAllItemsInCart) +\r\n\t\t\t\tparseFloat(getters.orderDiscount(priceModel).discount) +\r\n\t\t\t\tparseFloat(getters.deliveryCost) +\r\n\t\t\t\tparseFloat(getters.invoiceCharge)) *\r\n\t\t\t((getters.mwstRatio(date) as number) / 100);\r\n\t\tmwst = Math.round(mwst * 100) / 100;\r\n\t\treturn mwst;\r\n\t},\r\n\tnettoOffer: (state: any, getters: any) => (priceModel: PriceModel) => {\r\n\t\treturn (\r\n\t\t\tparseFloat(getters.totalOfAllItemsInCart) +\r\n\t\t\tparseFloat(getters.orderDiscount(priceModel).discount) +\r\n\t\t\tparseFloat(getters.deliveryCost) +\r\n\t\t\tparseFloat(getters.invoiceCharge)\r\n\t\t);\r\n\t},\r\n\ttotalOffer: (state: any, getters: any) => (priceModel: PriceModel, date: Date) => {\r\n\t\treturn (\r\n\t\t\tparseFloat(getters.totalOfAllItemsInCart) +\r\n\t\t\tparseFloat(getters.orderDiscount(priceModel).discount) +\r\n\t\t\tparseFloat(getters.deliveryCost) +\r\n\t\t\tparseFloat(getters.invoiceCharge) +\r\n\t\t\tparseFloat(getters.costMwst(priceModel, date))\r\n\t\t);\r\n\t},\r\n\timportingArticles(state: any) {\r\n\t\treturn state.importingArticles;\r\n\t},\r\n\ttemporaryImportId(state: any) {\r\n\t\treturn state.temporaryImportId;\r\n\t},\r\n\tgetThumbnailUrl: (state: any) => (articleId: number, lastChange: any) => {\r\n\t\tif (lastChange == undefined) {\r\n\t\t\tlastChange = moment().toJSON();\r\n\t\t}\r\n\t\tvar token = state.customer.customerId * articleId * 1234;\r\n\t\tvar tokenAsString = token.toString();\r\n\r\n\t\treturn (\r\n\t\t\tprocess.env.VUE_APP_erpUrl + `article/getthumbnail?id=${articleId}&time=${lastChange}&token=${tokenAsString}`\r\n\t\t);\r\n\t},\r\n\tgetAllSurfaceColors(state: any) {\r\n\t\tif (state.powders.length <= 0) return [];\r\n\t\t// Get colors from powders\r\n\t\tlet colors = state.powders.filter((it: PowderDto) => it.available).map((it: PowderDto) => it.surfaceColor);\r\n\t\t// Remove duplicates\r\n\t\tcolors = colors.filter((it: SurfaceColorDto, index: any, self: any) => self.findIndex((t: any) => t.id === it.id) === index);\r\n\t\treturn colors;\r\n\t},\r\n\tarticlesInCart(state: any) {\r\n\t\treturn state.articles\r\n\t\t\t.filter((article: CustomerArticleDto) => \r\n\t\t\t\tstate.currentCart.cartItems.some((item: CartItem) => \r\n\t\t\t\t\titem.articleId === article.articleId)\r\n\t\t\t)\r\n\t\t\t.sort((a: CustomerArticleDto, b: CustomerArticleDto) => {\r\n\t\t\t\tlet aIndex = state.currentCart.cartItems.findIndex((item: CartItem) => item.articleId === a.articleId);\r\n\t\t\t\tlet bIndex = state.currentCart.cartItems.findIndex((item: CartItem) => item.articleId === b.articleId);\r\n\t\t\t\treturn aIndex - bIndex;\r\n\t\t\t});\r\n\t},\r\n\tavailablePriceModels(state: any, getters: any) {\r\n\t\tif (getters.articlesInCart.length <= 0) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn PriceModelDefault.allPriceModels.filter((p:any) => \r\n\t\t\tgetters.articlesInCart[0].priceLists.some((pl:PriceListDto) => pl.priceModel == p.value));\r\n\t},\r\n\t/**\r\n\t * Gets a value indicating if there is more than one price model available in this\r\n\t * region.\r\n\t * This only works, if there are articles loaded. \r\n\t * @param state current state of store\r\n\t * @returns true, if there is at least one article with two price lists.\r\n\t */\r\n\thasPriceModels(state: any)\r\n\t{\r\n\t\treturn state.articles.find((a: CustomerArticleDto) => a.priceLists && a.priceLists.length > 1) != undefined;\r\n\t},\t\r\n\tcustomerDeliveryAddressCount(state:any) {\r\n\t\tif (state.customer) {\r\n\t\t\treturn state.customer.deliveryAddresses.length;\r\n\t\t}\r\n\t},\r\n\tcustomerInvoiceAddressCount(state:any) {\r\n\t\tif (state.customer) {\r\n\t\t\treturn state.customer.invoiceAddresses.length;\r\n\t\t}\r\n\t},\r\n\tcustomerDefaultDeliveryAddress(state: any) {\r\n\t\tif (state.customer) {\r\n\t\t\tconst address = state.customer.deliveryAddresses.filter((a:any) => a.isDefault)[0];\r\n\t\t\treturn address ?? new AddressDto();\r\n\t\t} else {\r\n\t\t\treturn new AddressDto();\r\n\t\t}\r\n\t},\r\n\tcustomerDefaultInvoiceAddress(state: any) {\r\n\t\tif (state.customer) {\r\n\t\t\tconst address = state.customer.invoiceAddresses.filter((a:any) => a.isDefault)[0];\r\n\t\t\treturn address ?? new AddressDto();\r\n\t\t} else {\r\n\t\t\treturn new AddressDto();\r\n\t\t}\r\n\t},\r\n\tcustomerIsCountryValidForDelivery(state: any) {\r\n\t\tif (state.customer) {\r\n\t\t\treturn state.customer.isCountryValidForDelivery;\r\n\t\t} else {\r\n\t\t\tconsole.log('customer is undefined');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t},\r\n\tuserPreferredDeliveryAddress(state: any) {\r\n\t\tif (state.customer && state.customer.user.preferredDeliveryAddressId > 0) {\r\n\t\t\tconst address = state.customer.deliveryAddresses.filter((a:any) => a.id == state.customer.user.preferredDeliveryAddressId)[0];\r\n\t\t\treturn address ?? new AddressDto();\r\n\t\t} else {\r\n\t\t\treturn new AddressDto();\r\n\t\t}\r\n\t},\r\n\tuserPreferredInvoiceAddress(state:any) {\r\n\t\tif (state.customer && state.customer.user.preferredInvoiceAddressId > 0) {\r\n\t\t\tconst address = state.customer.invoiceAddresses.filter((a:any) => a.id == state.customer.user.preferredInvoiceAddressId)[0];\r\n\t\t\treturn address ?? new AddressDto();\r\n\t\t} else {\r\n\t\t\treturn new AddressDto();\r\n\t\t}\r\n\t},\r\n\tisMaintenance(state:any) {\r\n\t\treturn state.bannerErrorMessage && state.bannerErrorMessage.startsWith('Maintenance')\r\n\t},\r\n\tcanArticleChangePowderCoating: (state: any) => (article: CustomerArticleDto) => {\r\n // Gesperrte können nicht geändert werden, da das eine Neukalkulation verursacht \r\n // und zu Problemen führen kann, wenn auch das Helpdesk eine Neukalkulation macht.\r\n if (article.locked) {\r\n return false;\r\n }\r\n\r\n // Wir müssen das Ergebnis der Kalkulation abwarten. Darum können diese nicht geändert werden.\r\n if (article.calculating) {\r\n return false;\r\n }\r\n\r\n // Gravuren werden von Pulverbeschichtung überdeckt, darum darf Pulverbeschichtung nicht ausgewählt werden.\r\n // Es sei denn, Pulverbeschichtung ist schon ausgewählt.\r\n if (article.hasEngravings && article.powderCoatingTreatment === null) {\r\n return false;\r\n }\r\n\r\n // Entweder muss der Artikel Löcher/Aussparungen für das Aufhängen haben\r\n // oder es muss bereits eine Pulverbeschichtung existieren (alte Artikel)\r\n // oder der manuelle Override muss aktiviert sein (im Helpdesk)\r\n if (!article.hasCutoutForPowdercoating \r\n && article.powderCoatingTreatment === null\r\n && !article.hasPowderCoatingOverride) {\r\n return false;\r\n }\r\n return true;\r\n\t},\r\n\tcalculatingArticleIds(state: any) {\r\n\t\treturn state.articles\r\n\t\t\t.filter((article: CustomerArticleDto) => article.calculating)\r\n\t\t\t.map((article: CustomerArticleDto) => article.articleId);\r\n\t},\r\n\r\n\r\n};\r\n","import { CatalogueSortingType } from \"./../dtos/catalogueSortingType\";\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport actions from \"./actions\";\r\nimport mutations from \"./mutations\";\r\nimport getters from \"./getters\";\r\nimport Oidc from \"oidc-client\";\r\nimport { OfferFailReason } from \"@/dtos/offerFailReason\";\r\n\r\nVue.use(Vuex);\r\nconst authorityUrl = process.env.VUE_APP_authorityUrl;\r\nconst redirectUri = process.env.VUE_APP_redirectUri;\r\nconst postLogoutRedirectUri = process.env.VUE_APP_postLogoutRedirectUri;\r\n\r\n// STATE\r\nconst state = {\r\n\t// ------ GLOBAL ------\r\n\r\n\t// Application version from package.json file\r\n\tpackageJson: JSON.parse(unescape(process.env.PACKAGE_JSON || \"%7B%7D\")),\r\n\t// Boolean für globalen Ladebalken unter der Header-Leiste\r\n\tloading: false,\r\n\t\r\n\t// ------ SNACKBAR ------\r\n\r\n\t// Die Snackbar\r\n\tsnackbar: { \r\n\t\ttext: '', \r\n\t\tcolor: 'accent',\r\n\t\tarticleId: 0, // wenn angegeben -> Thumbnail des Artikels in Snackbar\r\n\t},\r\n\t// If ture, the snackbar is shown\r\n\tshowSnackbar: false,\r\n\t// Timeout für snackbars (Wie lange sie angezeigt werden sollen)\r\n\tsnackbarTimeout: 6000, // 6 Sekunden\r\n\r\n\t// ------ BENACHRICHTIGUNGS-BANNER ------\r\n\r\n\t// Broadcasted Störungsmeldung\r\n\tbannerErrorMessage: '',\r\n\r\n\t// ------ CUSTOMER ------\r\n\r\n\t// [CustomerInfoDto] Customer mit den nötigen Informationen fürs display im Client (Kundennummer / Lieferadressen...)\r\n\tcustomer: null,\r\n\t// These are the users for the article filter. This array includes the dummy entry to filter for all users.\r\n\tusers: [],\r\n\t// Settings für das Paging der Kunden\r\n\tpagination: {\r\n\t\tsortBy: \"registriertAm\",\r\n\t\tdescending: true,\r\n\t\trowsPerPage: 100,\r\n\t},\r\n\tisAdditionalEmailSelected: false,\r\n additionalOrderConfirmationEmail: '',\r\n\tunseenHintIds: [],\r\n\r\n\r\n\t// ------ ARTICLE CATALOGUE ------\r\n\r\n\t// [CustomerArticleDto] Berechnete Katalogartikel des eingeloggten Kunden\r\n\tarticles: [],\r\n\t// [CustomerArticleDto] Artikel, welche noch mit gewähltem Werkstoff berechnet werden müssen\r\n\timportingArticles: [],\r\n\t// [number[]] Ids von Artikeln, welche im Katalog derzeit angezeigt werden\r\n\tcatalogueArticles: [],\r\n\t// [number[]] Ids von Artikeln, welche momentan ausgewählt sind (multi-selection)\r\n\tselectedArticleIds: [],\r\n\t// [string] Catalogue Suchbegriff. Ist im state, damit Katalogartikel gefiltert angezeigt werden können\r\n\tcatalogueSearchTerm: \"\",\r\n\t// [number] Value des Enums für die aktuelle Sortierung der Artikel im Katalog\r\n\tactiveCatalogueSortTypeValue: CatalogueSortingType.LastChangeDescending,\r\n\t// [string] User id of currently selected user in the catalogue filter\r\n\tcatalogueUserId: '-1',\r\n\t// [WerkstoffDto] Werkstoffe in genereller Form (z.B. Aluminium)\r\n\twerkstoffe: [],\r\n\t// [boolean] Indicates whether powder coating is available in the region\r\n\tisPowderCoatingAvailable: false,\r\n\t// Id welche beim Import kurz vergeben wird, bis die Blexon Id eintrifft.\r\n\t// so werden nicht eindeutige Ids vermieden.\r\n\ttemporaryImportId: -1,\r\n\t// [FileSizeLimit[]] Grenzen für Grösse von Dateitypen für den Artikelupload.\r\n\tfileSizeLimits: [],\r\n\t// [PowderDto[]] Powders for powder coating.\r\n\tpowders: [],\r\n\t// [boolean] Indicates whether or not there is more to load in the catalogue\r\n\thasMoreArticlesToLoad: true,\r\n\t// [number] The id of the timer that polls calculating articles if there are any.\r\n\tarticleCalculatingPollingTimerId: null,\r\n\r\n\t// ------ ORDERS / BESTELLUNGEN ------\r\n\r\n\t// [CustomerOrderDto] Bestellungen des Kunden als OrderTrackings\r\n\torders: [],\r\n\t// Settings für das Pageing der Aufträge\r\n\torderSorting: {\r\n\t\tsortBy: \"receivedAt\",\r\n\t\tdescending: true,\r\n\t\trowsPerPage: 30,\r\n\t},\r\n\t// [OrderCancellationRequestDto[]] Open cancellation requests for this customer\r\n\torderCancellations: null,\r\n\r\n\t// ------ ORDER PROCESS ------\r\n\r\n\t// [PendingOrderDto] Offene Bestellungen welche noch nicht definitiv bestellt wurden.\r\n\tpendingOrders: [],\r\n\t// [Boolean] True wenn Auftragserstellung erfolgreich abgeschlossen. Benutzt für entsprechende Anzeige\r\n\torderSuccessful: false,\r\n\t// [Boolean] True wenn das Angebot zurzeit berechnet wird.\r\n\tcurrentOfferCalculating: false,\r\n\t// [Boolean] Can be toggled to refresh addresses in the cart.\r\n\trefreshCartAddresses: false,\r\n\r\n\t// ------ CART ------\r\n\r\n\t// [Cart] -> [CartItems] Warenkorb mit allen darin enthaltenen Artikeln / Adressen\r\n\tcurrentCart: null,\r\n\t// [SavedCart] -> [positions: SavedCartPosition] Stücklisten des Kunden (ehem. gespeicherte Warenkörbe)\r\n\tsavedCarts: null,\r\n\t// Id der zuletzt ausgewählten Stückliste\r\n\tcurrentSavedCartId: 0,\r\n\t\r\n\t// ------ OFFER ------\r\n\r\n\t// [OfferDto] Berechnete Offerte für die Artikel im Warenkorb. Enthält die CalculationId\r\n\toffer: null,\r\n\t// [Boolean] True wenn Angebotserstellung fehlgeschlagen. Benutzt für entsprechende Anzeige\r\n\tofferFailed: false,\r\n\t// [OfferFailReason] The reason why the order failed.\r\n\tofferFailReason: OfferFailReason.None,\r\n\t// How many seconds in total the offer is valid (1h --> 3600sec)\r\n\tofferValidTimerTotalSeconds: 900,\r\n\t// How many seconds longer is the current offer valid. If 0 --> invalid offer\r\n\tofferValidTimerSeconds: 0,\r\n\t// [number] Offer timer interval id. Has to be handled here otherwise context is lost.\r\n\tofferDecrementTimerId: 0,\r\n\t// [PriceModel] Currently selected price model. Defaults to \"Standard\" (= 0).\r\n\tcurrentPriceModel: 0,\r\n\t// [Boolean] If an article in the cart is updated the current offer is invalidated because it could show wrong information.\r\n\tofferInvalidForCartUpdate: false,\r\n\t// [Boolean] The customer has accepted the agb.\r\n\tacceptedAGB: false,\r\n\t// [Boolean] The customer has accepted the the unknown transport cost.\r\n\tacceptedNachAufwand: false,\r\n\t// [Boolean] Indicating if the customer chose Rampenabholung but didn't make a valid selection.\r\n\trampenabholungSelectionValid: false,\r\n\r\n\toidc: {\r\n\t\tuser: null,\r\n\t\tauthenticated: false,\r\n\t\tinstance: null,\r\n\t\ttoken: null,\r\n\t\tconfig: {\r\n\t\t\t//@ts-ignore\r\n\t\t\tuserStore: new Oidc.WebStorageStateStore(),\r\n\t\t\tauthority: authorityUrl,\r\n\t\t\t// Client application's identifier as registered on the Identityserver\r\n\t\t\tclient_id: \"BlexonKundenportalClient\",\r\n\t\t\t// Redirect URI of your client application to receive a response from the Identityserver\r\n\t\t\tredirect_uri: redirectUri,\r\n\t\t\t// The Identityserver post-logout redirect URI.\r\n\t\t\tpost_logout_redirect_uri: postLogoutRedirectUri,\r\n\t\t\t// The type of response desired from the Identityserver\r\n\t\t\tresponse_type: \"id_token token\",\r\n\t\t\t// The scope being requested from the Identityserver\r\n\t\t\tscope: \"openid profile KundenportalApi EventApi offline_access\",\r\n\t\t\tsilent_redirect_uri: window.location.origin + \"/silent-renew.html\",\r\n\t\t\taccessTokenExpiringNotificationTime: 601200, // 7 Tage minus 1 Stunde\r\n\t\t\tautomaticSilentRenew: true,\r\n\t\t\tfilterProtocolClaims: true,\r\n\t\t\tloadUserInfo: true,\r\n\t\t},\r\n\t},\r\n};\r\n\r\nexport default new Vuex.Store({\r\n\tstate,\r\n\tmutations,\r\n\tactions,\r\n\tgetters,\r\n});\r\n","import './class-component-hooks' // needs to be imported before any components\r\nimport Vue from 'vue';\r\nimport './assets/main.css';\r\n// @ts-ignore\r\nimport vuetify from './plugins/vuetify';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport store from './store/store';\r\nimport Moment from 'moment';\r\nimport VueGtm from '@gtm-support/vue2-gtm';\r\nimport './log.js';\r\nimport FloatingVue, { VTooltip } from 'floating-vue'\r\nimport 'floating-vue/dist/style.css'\r\n\r\nVue.filter('formatDate', (value: any) => {\r\n if (value) {\r\n return Moment(String(value)).format('DD.MM.YYYY');\r\n }\r\n});\r\n\r\nVue.filter('formatDateTime', (value: any) => {\r\n if (value) {\r\n return Moment(String(value)).format('DD.MM.YYYY HH:mm');\r\n }\r\n});\r\n\r\nVue.filter('formatTimespan', (value: any) => {\r\n if (value) {\r\n return Moment(String(value)).format('hh:mm:ss');\r\n }\r\n});\r\n\r\nVue.filter('round2Decimal', (value: number) => {\r\n if (value !== undefined && value !== null) {\r\n value = Math.round(value * 100) / 100;\r\n return value.toFixed(2);\r\n }\r\n});\r\n\r\nVue.filter('round3Decimal', (value: number) => {\r\n if (value !== undefined && value !== null) {\r\n value = Math.round(value * 1000) / 1000;\r\n return value.toFixed(3);\r\n }\r\n});\r\n\r\nVue.filter('format2Digits', (value: number) => {\r\n if (value !== undefined && value !== null) {\r\n return value.toLocaleString(undefined, {minimumIntegerDigits: 2});\r\n }\r\n});\r\n\r\nVue.filter('format2Decimal', (value: number) => {\r\n if (value !== undefined && value !== null) {\r\n return value.toFixed(2);\r\n }\r\n});\r\n\r\nVue.config.productionTip = false;\r\nconsole.log('running: ' + process.env.VUE_APP_MODE);\r\n\r\nVue.use(VueGtm, {\r\n id: 'GTM-KV2VNTX', // Your GTM single container ID or array of container ids ['GTM-xxxxxx', 'GTM-yyyyyy'] or array of objects [{id: 'GTM-xxxxxx', queryPararms: { gtm_auth: 'abc123', gtm_preview: 'env-4', gtm_cookies_win: 'x'}}, {id: 'GTM-yyyyyy', queryParams: {gtm_auth: 'abc234', gtm_preview: 'env-5', gtm_cookies_win: 'x'}}]\r\n defer: true, // defaults to false. Script can be set to `defer` to increase page-load-time at the cost of less accurate results (in case visitor leaves before script is loaded, which is unlikely but possible)\r\n enabled: true, // defaults to true. Plugin can be disabled by setting this to false for Ex: enabled: !!GDPR_Cookie (optional)\r\n debug: false, // Whether or not display console logs debugs (optional)\r\n loadScript: true, // Whether or not to load the GTM Script (Helpful if you are including GTM manually, but need the dataLayer functionality in your components) (optional)\r\n vueRouter: router, // Pass the router instance to automatically sync with router (optional)\r\n trackOnNextTick: false // Whether or not call trackView in Vue.nextTick\r\n });\r\n\r\n// Floating Vue used for hint tooltips\r\n// https://floating-vue.starpad.dev/\r\nVue.use(FloatingVue);\r\n\r\n// Checking if this request is a logout request\r\n// eg. if the user changes their email address they are\r\n// routed to a shop-logout.\r\n// If they are not logged in, they must be routed to the login mask.\r\nconst urlHash = window.location.hash;\r\nlet isLogoutRedirect = false;\r\nconsole.log(window.location.hash);\r\nif (urlHash === '#/Logout' || urlHash === '#/Logout/') {\r\n isLogoutRedirect = true;\r\n}\r\n\r\n// Setup main page\r\nstore.dispatch('bootstrap')\r\n .then(async () => {\r\n console.log('Successfully bootstrapt application');\r\n if (isLogoutRedirect) {\r\n store.dispatch('logout'); \r\n } else {\r\n store.dispatch('checkAccess')\r\n .then(async () => {\r\n store.dispatch('setupSignalR')\r\n .then(() => {\r\n const app = new Vue({\r\n router,\r\n store,\r\n vuetify,\r\n render: h => h(App)\r\n }).$mount('#app');\r\n })\r\n })\r\n .catch((e) => {\r\n console.log('Keine Berechtigung');\r\n store.dispatch('logout');\r\n });\r\n }\r\n }).catch((e) => console.log(e));\r\n\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CancellationConfirmation.vue?vue&type=style&index=0&id=06198ff6&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Catalogue.vue?vue&type=style&index=0&id=b3676b94&prod&scoped=true&lang=css\""],"sourceRoot":""}